Centos7安装Docker

本文详细介绍了在CentOS系统上安装Docker的步骤,包括前提条件检查、系统更新、安装必要工具、添加Docker源、安装Docker、配置镜像加速等,并演示了如何使用Docker进行镜像搜索、拉取、标签定义、容器启动、镜像创建及推送至远程仓库的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提条件

要求系统为64位、系统内核版本为 3.10 以上。

先查看系统内核是否支持:
$uname -a
Linux MiWiFi-R4-srv 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
更新:
$yum update
安装所需工具:
$yum install -y yum-utils device-mapper-persistent-data lvm2
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
软件包 device-mapper-persistent-data-0.7.3-3.el7.x86_64 已安装并且是最新版本
软件包 7:lvm2-2.02.180-10.el7_6.8.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 yum-utils.noarch.0.1.1.31-50.el7 将被 安装
--> 正在处理依赖关系 python-kitchen,它被软件包 yum-utils-1.1.31-50.el7.noarch 需要
--> 正在处理依赖关系 libxml2-python,它被软件包 yum-utils-1.1.31-50.el7.noarch 需要
--> 正在检查事务
---> 软件包 libxml2-python.x86_64.0.2.9.1-6.el7_2.3 将被 安装
---> 软件包 python-kitchen.noarch.0.1.1.1-5.el7 将被 安装
--> 正在处理依赖关系 python-chardet,它被软件包 python-kitchen-1.1.1-5.el7.noarch 需要
--> 正在检查事务
---> 软件包 python-chardet.noarch.0.2.2.1-1.el7_1 将被 安装
--> 解决依赖关系完成

依赖关系解决

================================================================================
 Package               架构          版本                     源           大小
================================================================================
正在安装:
 yum-utils             noarch        1.1.31-50.el7            base        121 k
为依赖而安装:
 libxml2-python        x86_64        2.9.1-6.el7_2.3          base        247 k
 python-chardet        noarch        2.2.1-1.el7_1            base        227 k
 python-kitchen        noarch        1.1.1-5.el7              base        267 k

事务概要
================================================================================
安装  1 软件包 (+3 依赖软件包)

总下载量:861 k
安装大小:4.3 M
Downloading packages:
(1/4): yum-utils-1.1.31-50.el7.noarch.rpm                  | 121 kB   00:00     
(2/4): python-chardet-2.2.1-1.el7_1.noarch.rpm             | 227 kB   00:00     
(3/4): python-kitchen-1.1.1-5.el7.noarch.rpm               | 267 kB   00:00     
(4/4): libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm           | 247 kB   00:00     
--------------------------------------------------------------------------------
总计                                               1.9 MB/s | 861 kB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : python-chardet-2.2.1-1.el7_1.noarch                         1/4 
  正在安装    : python-kitchen-1.1.1-5.el7.noarch                           2/4 
  正在安装    : libxml2-python-2.9.1-6.el7_2.3.x86_64                       3/4 
  正在安装    : yum-utils-1.1.31-50.el7.noarch                              4/4 
  验证中      : libxml2-python-2.9.1-6.el7_2.3.x86_64                       1/4 
  验证中      : python-kitchen-1.1.1-5.el7.noarch                           2/4 
  验证中      : yum-utils-1.1.31-50.el7.noarch                              3/4 
  验证中      : python-chardet-2.2.1-1.el7_1.noarch                         4/4 

已安装:
  yum-utils.noarch 0:1.1.31-50.el7                                              

作为依赖被安装:
  libxml2-python.x86_64 0:2.9.1-6.el7_2.3 python-chardet.noarch 0:2.2.1-1.el7_1
  python-kitchen.noarch 0:1.1.1-5.el7    

完毕!
添加源:
$yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
更新缓存:
$yum makecache fast
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                     | 3.6 kB     00:00     
docker-ce-stable                                         | 3.5 kB     00:00     
extras                                                   | 3.4 kB     00:00     
updates                                                  | 3.4 kB     00:00     
(1/2): docker-ce-stable/x86_64/updateinfo                  |   55 B   00:00     
(2/2): docker-ce-stable/x86_64/primary_db                  |  34 kB   00:00     
元数据缓存已建立
安装Docker:
$yum -y install docker-ce
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 docker-ce.x86_64.3.19.03.2-3.el7 将被 安装
--> 正在处理依赖关系 container-selinux >= 2:2.74,它被软件包 3:docker-ce-19.03.2-3.el7.x86_64 需要
--> 正在处理依赖关系 containerd.io >= 1.2.2-3,它被软件包 3:docker-ce-19.03.2-3.el7.x86_64 需要
--> 正在处理依赖关系 docker-ce-cli,它被软件包 3:docker-ce-19.03.2-3.el7.x86_64 需要
--> 正在处理依赖关系 libcgroup,它被软件包 3:docker-ce-19.03.2-3.el7.x86_64 需要
--> 正在检查事务
---> 软件包 container-selinux.noarch.2.2.107-1.el7_6 将被 安装
--> 正在处理依赖关系 policycoreutils-python,它被软件包 2:container-selinux-2.107-1.el7_6.noarch 需要
---> 软件包 containerd.io.x86_64.0.1.2.6-3.3.el7 将被 安装
---> 软件包 docker-ce-cli.x86_64.1.19.03.2-3.el7 将被 安装
---> 软件包 libcgroup.x86_64.0.0.41-20.el7 将被 安装
--> 正在检查事务
---> 软件包 policycoreutils-python.x86_64.0.2.5-29.el7_6.1 将被 安装
--> 正在处理依赖关系 setools-libs >= 3.3.8-4,它被软件包 policycoreutils-python-2.5-29.el7_6.1.x86_64 需要
--> 正在处理依赖关系 libsemanage-python >= 2.5-14,它被软件包 policycoreutils-python-2.5-29.el7_6.1.x86_64 需要
--> 正在处理依赖关系 audit-libs-python >= 2.1.3-4,它被软件包 policycoreutils-python-2.5-29.el7_6.1.x86_64 需要
--> 正在处理依赖关系 python-IPy,它被软件包 policycoreutils-python-2.5-29.el7_6.1.x86_64 需要
--> 正在处理依赖关系 libqpol.so.1(VERS_1.4)(64bit),它被软件包 policycoreutils-python-2.5-29.el7_6.1.x86_64 需要
--> 正在处理依赖关系 libqpol.so.1(VERS_1.2)(64bit),它被软件包 policycoreutils-python-2.5-29.el7_6.1.x86_64 需要
--> 正在处理依赖关系 libapol.so.4(VERS_4.0)(64bit),它被软件包 policycoreutils-python-2.5-29.el7_6.1.x86_64 需要
--> 正在处理依赖关系 checkpolicy,它被软件包 policycoreutils-python-2.5-29.el7_6.1.x86_64 需要
--> 正在处理依赖关系 libqpol.so.1()(64bit),它被软件包 policycoreutils-python-2.5-29.el7_6.1.x86_64 需要
--> 正在处理依赖关系 libapol.so.4()(64bit),它被软件包 policycoreutils-python-2.5-29.el7_6.1.x86_64 需要
--> 正在检查事务
---> 软件包 audit-libs-python.x86_64.0.2.8.4-4.el7 将被 安装
---> 软件包 checkpolicy.x86_64.0.2.5-8.el7 将被 安装
---> 软件包 libsemanage-python.x86_64.0.2.5-14.el7 将被 安装
---> 软件包 python-IPy.noarch.0.0.75-6.el7 将被 安装
---> 软件包 setools-libs.x86_64.0.3.3.8-4.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

================================================================================
 Package                  架构     版本                源                  大小
================================================================================
正在安装:
 docker-ce                x86_64   3:19.03.2-3.el7     docker-ce-stable    24 M
为依赖而安装:
 audit-libs-python        x86_64   2.8.4-4.el7         base                76 k
 checkpolicy              x86_64   2.5-8.el7           base               295 k
 container-selinux        noarch   2:2.107-1.el7_6     extras              39 k
 containerd.io            x86_64   1.2.6-3.3.el7       docker-ce-stable    26 M
 docker-ce-cli            x86_64   1:19.03.2-3.el7     docker-ce-stable    39 M
 libcgroup                x86_64   0.41-20.el7         base                66 k
 libsemanage-python       x86_64   2.5-14.el7          base               113 k
 policycoreutils-python   x86_64   2.5-29.el7_6.1      updates            456 k
 python-IPy               noarch   0.75-6.el7          base                32 k
 setools-libs             x86_64   3.3.8-4.el7         base               620 k

事务概要
================================================================================
安装  1 软件包 (+10 依赖软件包)

总下载量:91 M
安装大小:374 M
Downloading packages:
(1/11): container-selinux-2.107-1.el7_6.noarch.rpm         |  39 kB   00:00     
(2/11): audit-libs-python-2.8.4-4.el7.x86_64.rpm           |  76 kB   00:00     
(3/11): checkpolicy-2.5-8.el7.x86_64.rpm                   | 295 kB   00:00     
warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-19.03.2-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
docker-ce-19.03.2-3.el7.x86_64.rpm 的公钥尚未安装
(4/11): docker-ce-19.03.2-3.el7.x86_64.rpm                 |  24 MB   00:03     
(5/11): libcgroup-0.41-20.el7.x86_64.rpm                   |  66 kB   00:00     
(6/11): python-IPy-0.75-6.el7.noarch.rpm                   |  32 kB   00:00     
(7/11): libsemanage-python-2.5-14.el7.x86_64.rpm           | 113 kB   00:00     
(8/11): policycoreutils-python-2.5-29.el7_6.1.x86_64.rpm   | 456 kB   00:00     
(9/11): setools-libs-3.3.8-4.el7.x86_64.rpm                | 620 kB   00:00     
(10/11): containerd.io-1.2.6-3.3.el7.x86_64.rpm            |  26 MB   00:10     
(11/11): docker-ce-cli-19.03.2-3.el7.x86_64.rpm            |  39 MB   00:06     
--------------------------------------------------------------------------------
总计                                               8.4 MB/s |  91 MB  00:10     
从 https://mirrors.aliyun.com/docker-ce/linux/centos/gpg 检索密钥
导入 GPG key 0x621E9F35:
 用户ID     : "Docker Release (CE rpm) <docker@docker.com>"
 指纹       : 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
 来自       : https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : libcgroup-0.41-20.el7.x86_64                               1/11 
  正在安装    : setools-libs-3.3.8-4.el7.x86_64                            2/11 
  正在安装    : audit-libs-python-2.8.4-4.el7.x86_64                       3/11 
  正在安装    : python-IPy-0.75-6.el7.noarch                               4/11 
  正在安装    : 1:docker-ce-cli-19.03.2-3.el7.x86_64                       5/11 
  正在安装    : libsemanage-python-2.5-14.el7.x86_64                       6/11 
  正在安装    : checkpolicy-2.5-8.el7.x86_64                               7/11 
  正在安装    : policycoreutils-python-2.5-29.el7_6.1.x86_64               8/11 
  正在安装    : 2:container-selinux-2.107-1.el7_6.noarch                   9/11 
  正在安装    : containerd.io-1.2.6-3.3.el7.x86_64                        10/11 
  正在安装    : 3:docker-ce-19.03.2-3.el7.x86_64                          11/11 
  验证中      : libcgroup-0.41-20.el7.x86_64                               1/11 
  验证中      : checkpolicy-2.5-8.el7.x86_64                               2/11 
  验证中      : policycoreutils-python-2.5-29.el7_6.1.x86_64               3/11 
  验证中      : libsemanage-python-2.5-14.el7.x86_64                       4/11 
  验证中      : 2:container-selinux-2.107-1.el7_6.noarch                   5/11 
  验证中      : 1:docker-ce-cli-19.03.2-3.el7.x86_64                       6/11 
  验证中      : python-IPy-0.75-6.el7.noarch                               7/11 
  验证中      : 3:docker-ce-19.03.2-3.el7.x86_64                           8/11 
  验证中      : containerd.io-1.2.6-3.3.el7.x86_64                         9/11 
  验证中      : audit-libs-python-2.8.4-4.el7.x86_64                      10/11 
  验证中      : setools-libs-3.3.8-4.el7.x86_64                           11/11 

已安装:
  docker-ce.x86_64 3:19.03.2-3.el7                                              

作为依赖被安装:
  audit-libs-python.x86_64 0:2.8.4-4.el7                                        
  checkpolicy.x86_64 0:2.5-8.el7                                                
  container-selinux.noarch 2:2.107-1.el7_6                                      
  containerd.io.x86_64 0:1.2.6-3.3.el7                                          
  docker-ce-cli.x86_64 1:19.03.2-3.el7                                          
  libcgroup.x86_64 0:0.41-20.el7                                                
  libsemanage-python.x86_64 0:2.5-14.el7                                        
  policycoreutils-python.x86_64 0:2.5-29.el7_6.1                                
  python-IPy.noarch 0:0.75-6.el7                                                
  setools-libs.x86_64 0:3.3.8-4.el7                                             

完毕
加入开机启动:
$systemctl start docker
检查版本:
$docker version
Client: Docker Engine - Community
 Version:           19.03.2
 API version:       1.40
 Go version:        go1.12.8
 Git commit:        6a30dfc
 Built:             Thu Aug 29 05:28:55 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.2
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.8
  Git commit:       6a30dfc
  Built:            Thu Aug 29 05:27:34 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

配置镜像加速:

$mkdir -p /etc/docker
$tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://meab5smg.mirror.aliyuncs.com"]
}
EOF
$systemctl daemon-reload
$systemctl restart docker

创建自定义镜像:

$docker search centos
$docker pull centos
$docker image ls
#定义新标签
$docker tag centos centos7
#定义tag
$docker tag centos centos7:0.0.1
#删除
$docker rmi centos7:0.0.1
#把镜像启动为容器
$docker run --privileged -itd -p 88:22 -p 3306:3306 -p 80:80 -p 443:443 --name c7 centos7 /usr/sbin/init
$docker run --privileged -itd -p 3308:3306 --name c7  centos7 /usr/sbin/init
$docker run -itd --name c7 centos7
$docker ps
#进入容器命令行(Ctrl + d退出容器)
$docker exec -it a13h25104n29 bash
#生成镜像
$docker commit -m "install lnmp image" -a "peakchao" a13h25104n29 peakblog

创建自定义系统镜像:

网易云copy一份 CentOS 镜像

$mkdir build
$vi Dockerfile
FROM hub.c.163.com/public/centos:7.2.1511
RUN yum clean all
RUN yum install -y yum-plugin-ovl || true
RUN yum install -y vim tar wget curl rsync bzip2 iptables tcpdump less telnet net-tools lsof sysstat cronie python-setuptools
RUN yum clean all
RUN easy_install supervisor
RUN cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
EXPOSE 22
RUN mkdir -p /etc/supervisor/conf.d/
RUN /usr/bin/echo_supervisord_conf > /etc/supervisord.conf
RUN echo [include] >> /etc/supervisord.conf
RUN echo 'files = /etc/supervisor/conf.d/*.conf' >> /etc/supervisord.conf
COPY sshd.conf /etc/supervisor/conf.d/sshd.conf
CMD ["/usr/bin/supervisord"]
$docker build -t docker-whale . 

推送到远程仓库:

#登陆镜像仓库
$docker login --username=zhangzhichao@qq.com registry.cn-chengdu.aliyuncs.com
#修改仓库tag
$docker tag [ImageId] registry.cn-chengdu.aliyuncs.com/peakchao/docker:[镜像版本号]
#推送到远程仓库
$docker push registry.cn-chengdu.aliyuncs.com/peakchao/docker:[镜像版本号]
#从远程仓库拉取镜像
$docker pull registry.cn-chengdu.aliyuncs.com/peakchao/docker:[镜像版本号]

遇到的错误:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

$systemctl daemon-reload
$systemctl restart docker.service

docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused “process_linux.go:430: container init caused “write /proc/self/attr/keycreate: permission denied””: unknown.

$vi /etc/selinux/config
SELINUX=disabled

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:MJiGJG2ovfIHnsjRA4WFpvPab5/TvjTvaOYyOkPYMrI.
Please contact your system administrator.
Add correct host key in /Users/zhangzhichao/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/zhangzhichao/.ssh/known_hosts:8
ECDSA host key for [192.168.31.55]:88 has changed and you have requested strict checking.
Host key verification failed.

#移除对应密钥
$vi ~/.ssh/known_hosts

其他命令:

#移除旧版本
$yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
#删除docker-ce
$yum remove docker-ce
$rm -rf /var/lib/docker
#查看仓库中docker版本
$yum list docker-ce --showduplicates | sort -r
#安装指定版本
$yum install docker-ce-18.06.3.ce
#重启docker
$systemctl restart docker
#查看镜像
$docker image ls
#启动镜像
$docker run -d -p 8080:8080 a13b21104229
#查看进程
$docker ps -a
#关闭镜像
$docker stop a13b21104229
# 1、下载rpm源文件 * rpm下载不了的文件可以到[rpm官方](http://rpm.pbone.net/)进行下载 # 2、执行rpm文件 * 1、以下的rpm文件是有依赖,需要安装顺序进行执行. * 2、执行policycoreutils-python-2.5-29.el7.x86_64.rpm发现报 错误:依赖检测失败: policycoreutils = 2.5-22.el7policycoreutils-python-2.5-22.el7.x86_64 需要 去rpm官方网找了一个`policycoreutils-python-2.5-29.el7_6.1.x86_64.rpm`最新的安装包执行安装 * 3、python-kitchen-1.1.1-5.el7.noarch.rpm可以不需要安装 ``` rpm -ivh libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm rpm -ivh audit-libs-python-2.8.4-4.el7.x86_64.rpm rpm -ivh libcgroup-0.41-20.el7.x86_64.rpm rpm -ivh libsemanage-python-2.5-14.el7.x86_64.rpm rpm -ivh checkpolicy-2.5-8.el7.x86_64.rpm rpm -ivh python-IPy-0.75-6.el7.noarch.rpm rpm -ivh setools-libs-3.3.8-4.el7.x86_64.rpm rpm -ivh policycoreutils-python-2.5-29.el7_6.1.x86_64.rpm rpm -ivh container-selinux-2.74-1.el7.noarch.rpm rpm -ivh libseccomp-2.3.1-3.el7.x86_64.rpm rpm -ivh containerd.io-1.2.0-3.el7.x86_64.rpm rpm -ivh docker-ce-cli-18.09.0-3.el7.x86_64.rpm rpm -ivh docker-ce-18.09.0-3.el7.x86_64.rpm ``` # 3、启动docker ``` systemctl daemon-reload && systemctl restart docker ``` # 4、设置开机启动 * Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. ``` systemctl enable docker.service ``` # 5、验证docker ``` docker version ``` # 参考文章 * [CentOS 7.5离线安装Docker 18.09.3软件](https://jingyan.baidu.com/article/fb48e8becf31a16e632e145f.html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值