CentOS安装Docker
参考官网:https://docs.docker.com/engine/install/centos/
卸载旧版本
如果之前安装过Docker,需要先卸载旧版本:
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
旧版本的Docker引擎包可能叫做:docker、docker-engine。
新版本的Docker引擎包叫做:docker-ce
配置yum资源库
安装yum-config-manager:
# yum-util提供yum-config-manager功能 sudo yum install -y yum-utils
配置docker的资源库地址:
官方地址:(比较慢,不推荐)
# 在yum资源库中添加docker资源库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
阿里云镜像地址:
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
阿里云官网提供了很多资源镜像,镜像地址:https://mirrors.aliyun.com,进入之后可以选择自己需要的资源进行配置
创建缓存(可选):
yum makecache fast
安装Docker引擎
安装最新版本的Docker引擎、Docker客户端:
# docker-ce是Docker引擎,docker-ce-cli是客户端 sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
此时,默认安装的docker引擎、客户端都是最新版本。
如果要安装指定版本:
# 查询版本列表 yum list docker-ce --showduplicates | sort -r # 指定版本安装17.09.0.ce版 # sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin sudo yum install docker-ce-17.09.0.ce docker-ce-cli-17.09.0.ce containerd.io docker-compose-plugin
启动docker引擎
如果没有启动Docker引擎,那么执行 docker version查看版本号时,只能看到 Client: Docker Engine(Docker引擎客户端)的版本号。
启动Docker引擎:
# 新版本的Docker就是一个系统服务,可以直接使用启动系统服务方式启动 systemctl start docker # 此时查看docker版本,可以看到Server: Docker Engine(Docker引擎)版本号 docker version
卸载Docker
卸载Docker步骤:
- 关闭服务
systemctl stop docker
- 使用
yum删除docker引擎
sudo yum remove docker-ce docker-ce-cli containerd.io
- 删除镜像、容器、卷、自定义配置等文件
sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
运行HelloWorld测试
运行HelloWorld:
docker run hello-world
Ubuntu安装Docker
卸载旧版本
卸载旧版本Docker(如果已经安装):
sudo apt-get remove docker docker-engine docker.io containerd runc
安装依赖
安装必要的依赖:
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
添加docker软件源
官网源:(不推荐,可能会连不上报错)
# 导入源仓库的 GPG key curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 将 Docker APT 软件源添加到你的系统 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
阿里云源(推荐):
# 添加Docker GPG密钥 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 添加Docker软件源信息 echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装docker
更新软件源并安装Docker:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
启动并测试Docker
sudo systemctl start docker sudo docker run hello-world
离线安装
下载安装
从docker官网(或者国内镜像站)下载对应linux版本的安装包,例如docker-27.0.3.tgz。
将安装包上传到服务器,解压:
tar -zxvf docker-27.0.3.tgz
解压出来的文件的所有者可能不是root,修改为root用户:
chown -R root:root docker/
将解压的文件移动到/usr/bin下:
\cp -f docker/* /usr/bin
启动测试:
dockerd
配置成系统服务
将docker添加到systemd:
编辑文件/usr/lib/systemd/system/docker.service。
文件内容参考:github的docker-ce官方文档
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target docker.socket firewalld.service Wants=network-online.target Requires=docker.socket [Service] Type=notify ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID TimeoutStartSec=0 RestartSec=2 Restart=always StartLimitBurst=3 StartLimitInterval=60s LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TasksMax=infinity Delegate=yes KillMode=process OOMScoreAdjust=-500 [Install] WantedBy=multi-user.target
为docker.service添加执行权限:
chmod +x /usr/lib/systemd/system/docker.service
配置docker
创建docker组:
groupadd docker
编辑daemon.json配置文件:
文件:/etc/docker/daemon.json
{ // 还可以在这个文件中配置加速器、镜像仓库地址等 "insecure-registries": [ // 配置不验证https证书、允许http连接 "192.168.xxx.xxx:8088" ], "data-root":"/data/docker", "log-driver":"json-file", "log-opts":{ "max-size":"200m","max-file":"3" } }
重载配置:
systemctl daemon-reload
启动docker并设置开机自启
启动docker:
systemctl start docker
设置开机自启:
systemctl enable docker
检验:
docker version
配置命令自动补全
从docker的github官方仓库获取命令补全的文件:docker
将该文件放到/usr/share/bash-completion/completions,启用该文件:
source /usr/share/bash-completion/completions/docker