Centos7安装Docker

前提条件

要求系统为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) "
 指纹       : 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 [email protected] 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

你可能感兴趣的:(Linux)