Centos Linux 系统docker和docker-compose的安装配置
前言
docker是一种虚拟化容器技术,这种技术可以极大的提高软硬件的执行效率,让服务器可以做更多的事情。 docker-compose是一种容器编排技术,做好相关配置后,可以极大的提高程序在容器内部署的效率。
安装前检测
在安装前,先执行命令查看是否已安装。
[root@localhost ~]# docker-compose -v
/usr/local/lib/python3.6/site-packages/paramiko/transport.py:32: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography. The next release of cryptography will remove support for Python 3.6.
from cryptography.hazmat.backends import default_backend
docker-compose version 1.29.2, build unknown
我这边是已安装,因此要先卸载,卸载操作如下:
卸载 docker-compose
[root@localhost ~]# whereis docker-compose
docker-compose: /usr/local/bin/docker-compose
[root@localhost ~]# rm -rf /usr/local/bin/docker-compose
卸载docker
[root@localhost ~]# docker stop $(docker ps -aq)
0804be533eb7
82e3ab13bc41
c05d4f14d285
cdc48c51ddb6
3bcca65015f6
[root@localhost ~]# docker rm $(docker ps -aq)
0804be533eb7
82e3ab13bc41
c05d4f14d285
cdc48c51ddb6
3bcca65015f6
[root@localhost ~]# systemctl stop docker
Warning: Stopping docker.service, but it can still be activated by:
docker.socket
[root@localhost ~]# systemctl stop docker.socket
[root@localhost ~]# rm -rf /var/lib/docker/
[root@localhost ~]# rm -rf /etc/docker/
#查看已安装的docker及相关插件
[root@localhost dockerRoot]# yum list installed|grep docker
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
containerd.io.x86_64 1.6.24-3.1.el7 @docker-ce-stable
docker-buildx-plugin.x86_64 0.11.2-1.el7 @docker-ce-stable
docker-ce.x86_64 3:24.0.6-1.el7 @docker-ce-stable
docker-ce-cli.x86_64 1:24.0.6-1.el7 @docker-ce-stable
docker-ce-rootless-extras.x86_64 24.0.6-1.el7 @docker-ce-stable
docker-compose-plugin.x86_64 2.21.0-1.el7 @docker-ce-stable
再逐个卸载,以下是示例:
[root@localhost dockerRoot]# yum remove containerd.io.x86_64
已加载插件:fastestmirror
正在解决依赖关系
--> 正在检查事务
---> 软件包 containerd.io.x86_64.0.1.6.24-3.1.el7 将被 删除
--> 正在处理依赖关系 containerd.io >= 1.6.4,它被软件包 3:docker-ce-24.0.6-1.el7.x86_64 需要
--> 正在检查事务
---> 软件包 docker-ce.x86_64.3.24.0.6-1.el7 将被 删除
--> 正在处理依赖关系 docker-ce,它被软件包 docker-ce-rootless-extras-24.0.6-1.el7.x86_64 需要
--> 正在检查事务
---> 软件包 docker-ce-rootless-extras.x86_64.0.24.0.6-1.el7 将被 删除
--> 解决依赖关系完成
依赖关系解决
==================================================================================================================================================================
Package 架构 版本 源 大小
==================================================================================================================================================================
正在删除:
containerd.io x86_64 1.6.24-3.1.el7 @docker-ce-stable 114 M
为依赖而移除:
docker-ce x86_64 3:24.0.6-1.el7 @docker-ce-stable 92 M
docker-ce-rootless-extras x86_64 24.0.6-1.el7 @docker-ce-stable 19 M
事务概要
==================================================================================================================================================================
移除 1 软件包 (+2 依赖软件包)
安装大小:226 M
是否继续?[y/N]:y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在删除 : 3:docker-ce-24.0.6-1.el7.x86_64 1/3
警告:文件 /etc/docker: 移除失败: 没有那个文件或目录
正在删除 : docker-ce-rootless-extras-24.0.6-1.el7.x86_64 2/3
正在删除 : containerd.io-1.6.24-3.1.el7.x86_64 3/3
验证中 : docker-ce-rootless-extras-24.0.6-1.el7.x86_64 1/3
验证中 : 3:docker-ce-24.0.6-1.el7.x86_64 2/3
验证中 : containerd.io-1.6.24-3.1.el7.x86_64 3/3
删除:
containerd.io.x86_64 0:1.6.24-3.1.el7
作为依赖被删除:
docker-ce.x86_64 3:24.0.6-1.el7 docker-ce-rootless-extras.x86_64 0:24.0.6-1.el7
完毕!
安装docker
安装docker,配置安装源
[root@localhost dockerRoot]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
已加载插件:fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
查看所有的Docker版本,根据自己的需要来安装
[root@localhost dockerRoot]# yum list docker-ce --showduplicates | sort -r
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
已加载插件:fastestmirror
可安装的软件包
* updates: mirrors.aliyun.com
Loading mirror speeds from cached hostfile
* extras: mirrors.huaweicloud.com
* epel: mirrors.xtom.hk
docker-ce.x86_64 3:24.0.6-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.5-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.4-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.3-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.2-1.el7 docker-ce-stable
我这里没有特殊要求,直接安装即可,命令如下
[root@localhost dockerRoot]# yum install docker-ce docker-ce-cli containerd docker-buildx-plugin docker-compose-plugin
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 6.7 kB 00:00:00
* base: mirrors.ustc.edu.cn
* epel: mirrors.xtom.hk
* extras: mirrors.huaweicloud.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
epel | 4.7 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): epel/x86_64/updateinfo | 1.0 MB 00:00:00
(2/4): docker-ce-stable/7/x86_64/primary_db | 118 kB 00:00:00
(3/4): epel/x86_64/primary_db | 7.0 MB 00:00:00
(4/4): updates/7/x86_64/primary_db | 24 MB 00:00:03
正在解决依赖关系
--> 正在检查事务
---> 软件包 containerd.io.x86_64.0.1.6.25-3.1.el7 将被 安装
---> 软件包 docker-buildx-plugin.x86_64.0.0.11.2-1.el7 将被 安装
---> 软件包 docker-ce.x86_64.3.24.0.7-1.el7 将被 安装
--> 正在处理依赖关系 docker-ce-rootless-extras,它被软件包 3:docker-ce-24.0.7-1.el7.x86_64 需要
---> 软件包 docker-ce-cli.x86_64.1.24.0.7-1.el7 将被 安装
---> 软件包 docker-compose-plugin.x86_64.0.2.21.0-1.el7 将被 安装
--> 正在检查事务
---> 软件包 docker-ce-rootless-extras.x86_64.0.24.0.7-1.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
==================================================================================================================================================================
Package 架构 版本 源 大小
==================================================================================================================================================================
正在安装:
containerd.io x86_64 1.6.25-3.1.el7 docker-ce-stable 34 M
docker-buildx-plugin x86_64 0.11.2-1.el7 docker-ce-stable 13 M
docker-ce x86_64 3:24.0.7-1.el7 docker-ce-stable 24 M
docker-ce-cli x86_64 1:24.0.7-1.el7 docker-ce-stable 13 M
docker-compose-plugin x86_64 2.21.0-1.el7 docker-ce-stable 13 M
为依赖而安装:
docker-ce-rootless-extras x86_64 24.0.7-1.el7 docker-ce-stable 9.1 M
事务概要
==================================================================================================================================================================
安装 5 软件包 (+1 依赖软件包)
总下载量:107 M
安装大小:378 M
Is this ok [y/d/N]: y
Downloading packages:
(1/6): docker-buildx-plugin-0.11.2-1.el7.x86_64.rpm | 13 MB 00:00:03
(2/6): containerd.io-1.6.25-3.1.el7.x86_64.rpm | 34 MB 00:00:06
(3/6): docker-ce-24.0.7-1.el7.x86_64.rpm | 24 MB 00:00:04
(4/6): docker-ce-cli-24.0.7-1.el7.x86_64.rpm | 13 MB 00:00:02
(5/6): docker-ce-rootless-extras-24.0.7-1.el7.x86_64.rpm | 9.1 MB 00:00:01
(6/6): docker-compose-plugin-2.21.0-1.el7.x86_64.rpm | 13 MB 00:00:01
------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计 9.8 MB/s | 107 MB 00:00:10
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : docker-buildx-plugin-0.11.2-1.el7.x86_64 1/6
正在安装 : docker-compose-plugin-2.21.0-1.el7.x86_64 2/6
正在安装 : 1:docker-ce-cli-24.0.7-1.el7.x86_64 3/6
正在安装 : containerd.io-1.6.25-3.1.el7.x86_64 4/6
正在安装 : docker-ce-rootless-extras-24.0.7-1.el7.x86_64 5/6
正在安装 : 3:docker-ce-24.0.7-1.el7.x86_64 6/6
验证中 : containerd.io-1.6.25-3.1.el7.x86_64 1/6
验证中 : 3:docker-ce-24.0.7-1.el7.x86_64 2/6
验证中 : docker-ce-rootless-extras-24.0.7-1.el7.x86_64 3/6
验证中 : docker-compose-plugin-2.21.0-1.el7.x86_64 4/6
验证中 : 1:docker-ce-cli-24.0.7-1.el7.x86_64 5/6
验证中 : docker-buildx-plugin-0.11.2-1.el7.x86_64 6/6
已安装:
containerd.io.x86_64 0:1.6.25-3.1.el7 docker-buildx-plugin.x86_64 0:0.11.2-1.el7 docker-ce.x86_64 3:24.0.7-1.el7 docker-ce-cli.x86_64 1:24.0.7-1.el7
docker-compose-plugin.x86_64 0:2.21.0-1.el7
作为依赖被安装:
docker-ce-rootless-extras.x86_64 0:24.0.7-1.el7
完毕!
验证docker
验证docker安装结果
[root@localhost dockerRoot]# docker --version
Docker version 24.0.7, build afdd53b
此时docker-compose并没有安装,需要进行安装操作
安装docker-compose
先查看一下安装列表是否能查询到,我这边能查到,可以直接安装
[root@localhost bin]# yum list |grep docker-compose
docker-compose-plugin.x86_64 2.21.0-1.el7 @docker-ce-stable
docker-compose.noarch 1.18.0-4.el7 epel
安装过程如下
[root@localhost bin]# yum install -y docker-compose.noarch
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* epel: mirrors.xtom.hk
* extras: mirrors.huaweicloud.com
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 docker-compose.noarch.0.1.18.0-4.el7 将被 安装
--> 正在处理依赖关系 python36-cached_property >= 1.2.0,它被软件包 docker-compose-1.18.0-4.el7.noarch 需要
--> 正在处理依赖关系 python36-docker >= 2.6.1,它被软件包 docker-compose-1.18.0-4.el7.noarch 需要
--> 正在处理依赖关系 python36-dockerpty >= 0.4.1,它被软件包 docker-compose-1.18.0-4.el7.noarch 需要
--> 正在处理依赖关系 python36-docopt >= 0.6.1,它被软件包 docker-compose-1.18.0-4.el7.noarch 需要
--> 正在处理依赖关系 python36-jsonschema >= 2.5.1,它被软件包 docker-compose-1.18.0-4.el7.noarch 需要
--> 正在处理依赖关系 python36-pysocks >= 1.5.6,它被软件包 docker-compose-1.18.0-4.el7.noarch 需要
--> 正在处理依赖关系 python36-requests >= 2.6.1,它被软件包 docker-compose-1.18.0-4.el7.noarch 需要
--> 正在处理依赖关系 python36-six >= 1.3.0,它被软件包 docker-compose-1.18.0-4.el7.noarch 需要
--> 正在处理依赖关系 python36-texttable >= 0.9.0,它被软件包 docker-compose-1.18.0-4.el7.noarch 需要
--> 正在处理依赖关系 python36-websocket-client >= 0.32.0,它被软件包 docker-compose-1.18.0-4.el7.noarch 需要
--> 正在处理依赖关系 python36-yaml >= 3.10,它被软件包 docker-compose-1.18.0-4.el7.noarch 需要
--> 正在检查事务
---> 软件包 python36-PyYAML.x86_64.0.3.13-1.el7 将被 安装
--> 正在处理依赖关系 libyaml-0.so.2()(64bit),它被软件包 python36-PyYAML-3.13-1.el7.x86_64 需要
---> 软件包 python36-cached_property.noarch.0.1.5.1-2.el7 将被 安装
---> 软件包 python36-docker.noarch.0.2.6.1-3.el7 将被 安装
--> 正在处理依赖关系 python36-docker-pycreds >= 0.2.1,它被软件包 python36-docker-2.6.1-3.el7.noarch 需要
---> 软件包 python36-dockerpty.noarch.0.0.4.1-18.el7 将被 安装
---> 软件包 python36-docopt.noarch.0.0.6.2-8.el7 将被 安装
---> 软件包 python36-jsonschema.noarch.0.2.5.1-4.el7 将被 安装
---> 软件包 python36-pysocks.noarch.0.1.6.8-7.el7 将被 安装
---> 软件包 python36-requests.noarch.0.2.14.2-2.el7 将被 安装
--> 正在处理依赖关系 python36-chardet,它被软件包 python36-requests-2.14.2-2.el7.noarch 需要
--> 正在处理依赖关系 python36-idna,它被软件包 python36-requests-2.14.2-2.el7.noarch 需要
--> 正在处理依赖关系 python36-urllib3,它被软件包 python36-requests-2.14.2-2.el7.noarch 需要
---> 软件包 python36-six.noarch.0.1.14.0-3.el7 将被 安装
---> 软件包 python36-texttable.noarch.0.1.6.2-1.el7 将被 安装
---> 软件包 python36-websocket-client.noarch.0.0.47.0-2.el7 将被 安装
--> 正在检查事务
---> 软件包 libyaml.x86_64.0.0.1.4-11.el7_0 将被 安装
---> 软件包 python36-chardet.noarch.0.3.0.4-1.el7 将被 安装
---> 软件包 python36-docker-pycreds.noarch.0.0.2.1-2.el7 将被 安装
---> 软件包 python36-idna.noarch.0.2.10-1.el7 将被 安装
---> 软件包 python36-urllib3.noarch.0.1.25.6-2.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
==================================================================================================================================================================
Package 架构 版本 源 大小
==================================================================================================================================================================
正在安装:
docker-compose noarch 1.18.0-4.el7 epel 222 k
为依赖而安装:
libyaml x86_64 0.1.4-11.el7_0 base 55 k
python36-PyYAML x86_64 3.13-1.el7 epel 149 k
python36-cached_property noarch 1.5.1-2.el7 epel 18 k
python36-chardet noarch 3.0.4-1.el7 epel 190 k
python36-docker noarch 2.6.1-3.el7 epel 180 k
python36-docker-pycreds noarch 0.2.1-2.el7 epel 15 k
python36-dockerpty noarch 0.4.1-18.el7 epel 30 k
python36-docopt noarch 0.6.2-8.el7 epel 29 k
python36-idna noarch 2.10-1.el7 epel 99 k
python36-jsonschema noarch 2.5.1-4.el7 epel 76 k
python36-pysocks noarch 1.6.8-7.el7 epel 30 k
python36-requests noarch 2.14.2-2.el7 epel 112 k
python36-six noarch 1.14.0-3.el7 epel 34 k
python36-texttable noarch 1.6.2-1.el7 epel 23 k
python36-urllib3 noarch 1.25.6-2.el7 epel 178 k
python36-websocket-client noarch 0.47.0-2.el7 epel 59 k
事务概要
==================================================================================================================================================================
安装 1 软件包 (+16 依赖软件包)
总下载量:1.5 M
安装大小:7.7 M
Downloading packages:
(1/17): libyaml-0.1.4-11.el7_0.x86_64.rpm | 55 kB 00:00:00
(2/17): docker-compose-1.18.0-4.el7.noarch.rpm | 222 kB 00:00:00
(3/17): python36-PyYAML-3.13-1.el7.x86_64.rpm | 149 kB 00:00:00
(4/17): python36-cached_property-1.5.1-2.el7.noarch.rpm | 18 kB 00:00:00
(5/17): python36-chardet-3.0.4-1.el7.noarch.rpm | 190 kB 00:00:00
(6/17): python36-docker-2.6.1-3.el7.noarch.rpm | 180 kB 00:00:00
(7/17): python36-docker-pycreds-0.2.1-2.el7.noarch.rpm | 15 kB 00:00:00
(8/17): python36-dockerpty-0.4.1-18.el7.noarch.rpm | 30 kB 00:00:00
(9/17): python36-docopt-0.6.2-8.el7.noarch.rpm | 29 kB 00:00:00
(10/17): python36-idna-2.10-1.el7.noarch.rpm | 99 kB 00:00:00
(11/17): python36-jsonschema-2.5.1-4.el7.noarch.rpm | 76 kB 00:00:00
(12/17): python36-pysocks-1.6.8-7.el7.noarch.rpm | 30 kB 00:00:00
(13/17): python36-requests-2.14.2-2.el7.noarch.rpm | 112 kB 00:00:00
(14/17): python36-six-1.14.0-3.el7.noarch.rpm | 34 kB 00:00:00
(15/17): python36-texttable-1.6.2-1.el7.noarch.rpm | 23 kB 00:00:00
(16/17): python36-urllib3-1.25.6-2.el7.noarch.rpm | 178 kB 00:00:00
(17/17): python36-websocket-client-0.47.0-2.el7.noarch.rpm | 59 kB 00:00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计 1.2 MB/s | 1.5 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : python36-six-1.14.0-3.el7.noarch 1/17
正在安装 : python36-websocket-client-0.47.0-2.el7.noarch 2/17
正在安装 : python36-pysocks-1.6.8-7.el7.noarch 3/17
正在安装 : python36-urllib3-1.25.6-2.el7.noarch 4/17
正在安装 : python36-dockerpty-0.4.1-18.el7.noarch 5/17
正在安装 : python36-docker-pycreds-0.2.1-2.el7.noarch 6/17
正在安装 : python36-cached_property-1.5.1-2.el7.noarch 7/17
正在安装 : python36-docopt-0.6.2-8.el7.noarch 8/17
正在安装 : python36-idna-2.10-1.el7.noarch 9/17
正在安装 : python36-chardet-3.0.4-1.el7.noarch 10/17
正在安装 : python36-requests-2.14.2-2.el7.noarch 11/17
正在安装 : python36-docker-2.6.1-3.el7.noarch 12/17
正在安装 : python36-jsonschema-2.5.1-4.el7.noarch 13/17
正在安装 : python36-texttable-1.6.2-1.el7.noarch 14/17
正在安装 : libyaml-0.1.4-11.el7_0.x86_64 15/17
正在安装 : python36-PyYAML-3.13-1.el7.x86_64 16/17
正在安装 : docker-compose-1.18.0-4.el7.noarch 17/17
验证中 : python36-requests-2.14.2-2.el7.noarch 1/17
验证中 : libyaml-0.1.4-11.el7_0.x86_64 2/17
验证中 : python36-PyYAML-3.13-1.el7.x86_64 3/17
验证中 : python36-texttable-1.6.2-1.el7.noarch 4/17
验证中 : python36-jsonschema-2.5.1-4.el7.noarch 5/17
验证中 : python36-pysocks-1.6.8-7.el7.noarch 6/17
验证中 : python36-dockerpty-0.4.1-18.el7.noarch 7/17
验证中 : python36-docker-2.6.1-3.el7.noarch 8/17
验证中 : python36-chardet-3.0.4-1.el7.noarch 9/17
验证中 : docker-compose-1.18.0-4.el7.noarch 10/17
验证中 : python36-idna-2.10-1.el7.noarch 11/17
验证中 : python36-docker-pycreds-0.2.1-2.el7.noarch 12/17
验证中 : python36-urllib3-1.25.6-2.el7.noarch 13/17
验证中 : python36-docopt-0.6.2-8.el7.noarch 14/17
验证中 : python36-cached_property-1.5.1-2.el7.noarch 15/17
验证中 : python36-six-1.14.0-3.el7.noarch 16/17
验证中 : python36-websocket-client-0.47.0-2.el7.noarch 17/17
已安装:
docker-compose.noarch 0:1.18.0-4.el7
作为依赖被安装:
libyaml.x86_64 0:0.1.4-11.el7_0 python36-PyYAML.x86_64 0:3.13-1.el7 python36-cached_property.noarch 0:1.5.1-2.el7
python36-chardet.noarch 0:3.0.4-1.el7 python36-docker.noarch 0:2.6.1-3.el7 python36-docker-pycreds.noarch 0:0.2.1-2.el7
python36-dockerpty.noarch 0:0.4.1-18.el7 python36-docopt.noarch 0:0.6.2-8.el7 python36-idna.noarch 0:2.10-1.el7
python36-jsonschema.noarch 0:2.5.1-4.el7 python36-pysocks.noarch 0:1.6.8-7.el7 python36-requests.noarch 0:2.14.2-2.el7
python36-six.noarch 0:1.14.0-3.el7 python36-texttable.noarch 0:1.6.2-1.el7 python36-urllib3.noarch 0:1.25.6-2.el7
python36-websocket-client.noarch 0:0.47.0-2.el7
完毕!
配置命令
此时执行命令docker-compose -v 会发现还没装好
[root@localhost bin]# docker-compose -v
-bash: /usr/local/bin/docker-compose: 没有那个文件或目录
那此时我们就要看已安装的docker-compose所在的路径,再通过软连接来指定执行文件。
[root@localhost bin]# whereis docker-compose
docker-compose: /usr/bin/docker-compose
[root@localhost bin]# ln -s /usr/bin/docker-compose /usr/local/bin/docker-compose
最后再次验证一下。
[root@localhost bin]# docker-compose -v
docker-compose version 1.18.0, build 8dd22a9
至此docker和docker-compose的安装就完成了,环境搭建就弄完了,容器部署就可以进入下一步编排和启动操作了。