Docker安装
版本说明
OS : CentOS 7.8 x64
Linux内核 3.10.0-1127.10.1.el7.x86_64
Docker : 17.12.0-ce
Docker 要求 CentOS 系统的内核版本高于 3.10 ,通过 *uname -r* 命令查看你当前的内核版本。
卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装软件包
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置源地址
使用官方源地址(比较慢)
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
阿里云
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清华大学源
$ sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
查看存储库中docker版本
$ yum list docker-ce --showduplicates | sort -r
安装docker
这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度
yum 会把下载的软件包和header存储在cache中而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令清除缓存。
$ sudo yum makecache fast
下载最新版本
$ sudo yum install docker-ce docker-ce-cli containerd.io
或简写成
$ sudo yum install docker-ce
效果一样 , 如下图
指定版本安装
$ sudo yum install docker-ce-17.12.0.ce
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
说明: 低版本不会默认下载上图所述依赖
下载完成后启动
$ sudo systemctl start docker
加入开机启动
$ sudo systemctl enable docker
若此时查看docker状态(sudo systemctl status docker)如下
验证安装是否成功
$ docker version
至此Docker已成功安装
部署问题解决
因为之前已经安装过旧版本的docker,在安装的时候报错如下
Transaction check error:
file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package *docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64*
file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package *docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64*
file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package *docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64*
file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package *docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64*
解决办法
-
获取服务器已安装docker
$ yum list installed | grep docker
-
卸载旧版本的包
$ yum -y remove docker-ce.x86_64
-
再次安装docker
$ sudo yum install docker-ce
-
重新加载配置文件
$ systemctl daemon-reload
-
重启服务
$ systemctl restart docker
-
查看端口是否开启
$ netstat -nptl