Centos7.2上安装Docker

目录

一、概述

我们建议在linux环境下安装Docker,windows环境搭建比较复杂且容易出错,使用Centos7.x+yum来安装Docker环境非常方便。Docker软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,可以直接用yum命令来进行安装。

二、机器准备

服务器ip主机名系统版本
192.168.2.201myhostCentos7.2

三、系统环境

[root@myhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root@myhost ~]#  firewall-cmd --state							 #查看防火墙的状态
running
[root@myhost ~]#  firewall-cmd --list-ports                       #查看防火墙已经开放的端口
[root@myhost ~]#  firewall-cmd --list-services                    #查看防火墙开放的服务
dhcpv6-client ssh
#httpd服务默认的端口是80,防火墙允许80/tcp端口访问 
[root@myhost ~]#  firewall-cmd --zone=public --permanent --add-port=80/tcp
success
[root@myhost ~]#  firewall-cmd --reload                                       	#重新加载防火墙配置
success 
[root@myhost ~]#  setenforce 0  &&    getenforce
Permissive
[root@myhost ~]#  sed -i  "s/SELINUX=enforcing/SELINUX=disabled/g"  /etc/sysconfig/selinux 

四、查看系统是否已经安装docker服务

[root@myhost ~]#  rpm -qa |grep docker
[root@myhost ~]# echo $?
1

五、docker安装

[root@myhost ~]# yum install docker -y
[root@myhost ~]#  rpm -qa |grep docker
docker-1.13.1-204.git0be3e21.el7.x86_64
docker-client-1.13.1-204.git0be3e21.el7.x86_64
docker-common-1.13.1-204.git0be3e21.el7.x86_64
[root@myhost ~]# echo $?
0

六、docker开机自启动

[root@myhost ~]# /bin/systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@myhost ~]# echo $?
0

七、docker启动、停止、重新启动、查看运行状态

[root@myhost ~]# /bin/systemctl start docker.service
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
[root@myhost ~]# systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 一 2021-04-12 10:02:11 CST; 14s ago
     Docs: http://docs.docker.com
  Process: 13409 ExecStart=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY $REGISTRIES (code=exited, status=1/FAILURE)
 Main PID: 13409 (code=exited, status=1/FAILURE)

4月 12 10:02:10 myhost systemd[1]: Starting Docker Application Container Engine...
4月 12 10:02:10 myhost dockerd-current[13409]: time="2021-04-12T10:02:10.522075026+08:00" level=warning msg="could...ound"
4月 12 10:02:10 myhost dockerd-current[13409]: time="2021-04-12T10:02:10.525060026+08:00" level=info msg="libconta...3417"
4月 12 10:02:11 myhost dockerd-current[13409]: time="2021-04-12T10:02:11.535195726+08:00" level=warning msg="overlay2: ...
4月 12 10:02:11 myhost dockerd-current[13409]: Error starting daemon: SELinux is not supported with the overlay2 g...alse)  ###这个是错误原因###
4月 12 10:02:11 myhost systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
4月 12 10:02:11 myhost systemd[1]: Failed to start Docker Application Container Engine.
4月 12 10:02:11 myhost systemd[1]: Unit docker.service entered failed state.
4月 12 10:02:11 myhost systemd[1]: docker.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
[root@myhost ~]# getenforce
Permissive

注意:docker启动时,selinux的状态必须是Disabled,但是seliux设置之后都是需要重新启动才会由 Permissive 变成 Disabled ,所以这里我们需要重启一下虚拟机。

含义命令
启动/bin/systemctl start docker.service
停止/bin/systemctl stop docker.service
查看状态/bin/systemctl status docker.service
重新启动/bin/systemctl restart docker.service
[root@myhost ~]# getenforce
Disabled
[root@myhost ~]# /bin/systemctl start docker.service
[root@myhost ~]# systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since 一 2021-04-12 09:49:30 CST; 44s ago
     Docs: http://docs.docker.com
 Main PID: 1418 (dockerd-current)
   CGroup: /system.slice/docker.service
           ├─1418 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-run...
           └─1696 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metr...

4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.175063900+08:00" level=warning msg="Your k...ded."
4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.175795900+08:00" level=info msg="Loading c...art."
4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.186772200+08:00" level=info msg="Firewalld...true"
4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.363312200+08:00" level=info msg="Default b...ress"
4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.522761800+08:00" level=info msg="Loading c...one."
4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.524526300+08:00" level=warning msg="Not us... fix"
4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.544445800+08:00" level=info msg="Daemon ha...tion"
4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.544526200+08:00" level=info msg="Docker da....13.1
4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.553314600+08:00" level=info msg="API liste...sock"
4月 12 09:49:30 myhost systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

[root@myhost ~]# /bin/systemctl stop docker.service
[root@myhost ~]# systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since 一 2021-04-12 09:54:33 CST; 2s ago
     Docs: http://docs.docker.com
  Process: 1418 ExecStart=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY $REGISTRIES (code=exited, status=0/SUCCESS)
 Main PID: 1418 (code=exited, status=0/SUCCESS)

4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.524526300+08:00" level=warning msg="Not us... fix"
4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.544445800+08:00" level=info msg="Daemon ha...tion"
4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.544526200+08:00" level=info msg="Docker da....13.1
4月 12 09:49:30 myhost dockerd-current[1418]: time="2021-04-12T09:49:30.553314600+08:00" level=info msg="API liste...sock"
4月 12 09:49:30 myhost systemd[1]: Started Docker Application Container Engine.
4月 12 09:54:32 myhost systemd[1]: Stopping Docker Application Container Engine...
4月 12 09:54:32 myhost dockerd-current[1418]: time="2021-04-12T09:54:32.180067100+08:00" level=info msg="Processin...ted'"
4月 12 09:54:32 myhost dockerd-current[1418]: time="2021-04-12T09:54:32.1818142+08:00" level=info msg="stopping co...ated"
4月 12 09:54:32 myhost dockerd-current[1418]: time="2021-04-12T09:54:32.1819327+08:00" level=fatal msg="containerd...tion"
4月 12 09:54:33 myhost systemd[1]: Stopped Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

[root@myhost ~]# /bin/systemctl start docker.service
[root@myhost ~]# /bin/systemctl restart docker.service

八、查看当前系统docker版本以及其他信息

注意:docker version 命令和 docker info 命令在docker启动状态下或未启动情况下执行获得的结果是不一样的。

8.1 未启动docker时查看版本信息
[root@myhost ~]# docker version   ##未启动docker时查看版本信息##
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: 
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@myhost ~]# docker info  ##未启动docker时查看版本信息##
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
8.2 已经启动docker时查看版本信息
[root@myhost ~]# docker version   ##已经启动docker时查看版本信息##
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-204.git0be3e21.el7.x86_64
 Go version:      go1.10.3
 Git commit:      0be3e21/1.13.1
 Built:           Fri Mar 19 13:57:09 2021
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-204.git0be3e21.el7.x86_64
 Go version:      go1.10.3
 Git commit:      0be3e21/1.13.1
 Built:           Fri Mar 19 13:57:09 2021
 OS/Arch:         linux/amd64
 Experimental:    false

[root@myhost ~]# docker info  ##已经启动docker时查看版本信息##
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.13.1
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: false
 Native Overlay Diff: false
Logging Driver: journald
Cgroup Driver: systemd
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: docker-runc runc
Default Runtime: docker-runc
Init Binary: /usr/libexec/docker/docker-init-current
containerd version:  (expected: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1)
runc version: 66aedde759f33c190954815fb765eedc1d782dd9 (expected: 9df8b306d01f59d3a8029be411de015b7304dd8f)
init version: fec3683b971d9c3ef73f284f176672c44b448662 (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
 seccomp
  WARNING: You're not using the default seccomp profile
  Profile: /etc/docker/seccomp.json
Kernel Version: 3.10.0-327.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 4
Total Memory: 3.696 GiB
Name: myhost
ID: EL2W:SGAL:BMWM:PDJR:GTYA:L5HU:OY5I:RL5C:HZOT:4GJM:GOPD:XSDS
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Registries: docker.io (secure)
 

输入上述命令,返回docker版本以及其他信息,证明docker安装成功。

九、docker安装文件及重要目录

9.1 查看docker安装文件
[root@xzds-3 ~]# rpm -qa|grep docker
docker-1.13.1-204.git0be3e21.el7.x86_64
docker-client-1.13.1-204.git0be3e21.el7.x86_64
docker-common-1.13.1-204.git0be3e21.el7.x86_64

[root@xzds-3 ~]# rpm -ql docker|egrep -v usr
/etc/docker
/etc/docker/certs.d
/etc/docker/certs.d/redhat.com
/etc/docker/certs.d/redhat.com/redhat-ca.crt
/etc/docker/certs.d/redhat.io
/etc/docker/certs.d/redhat.io/redhat-ca.crt
/etc/docker/certs.d/registry.access.redhat.com
/etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt
/etc/docker/daemon.json
/etc/docker/seccomp.json
/etc/sysconfig/docker-network
/etc/sysconfig/docker-storage
/etc/sysconfig/docker-storage-setup
/var/lib/docker   ###重点:Docker默认的文件目录###
9.2 docker文件目录/var/lib/docker
[root@xzds-3 ~]# ll /var/lib/docker
总用量 4
drwx------. 3 root root   77 4月  13 09:30 containers  ##用于存储容器的信息,每每Docker run 一次,这里就会多一条记录##
drwx------. 3 root root   21 4月  12 10:02 image
drwxr-x---  3 root root   18 4月  12 09:49 network
drwx------. 6 root root 4096 4月  13 09:30 overlay2  ##这个目录比较重要,所有的docker pull image_name,都在这里存着##
drwx------. 4 root root   30 4月  12 10:02 plugins
drwx------  2 root root    6 4月  12 09:49 swarm
drwx------. 2 root root    6 4月  13 09:17 tmp
drwx------  2 root root    6 4月  12 09:49 trust
drwx------  2 root root   24 4月  12 09:49 volumes
9.2.1 /var/lib/docker/containers

此用于存储容器的信息,每当docker 运行镜像文件(docker run image_name)一次,这里就会多一条记录。

[root@xzds-3 containers]# ll
总用量 4
drwx------ 5 root root 4096 4月  13 09:30 4db8d1913eb6a55b0c056c22a770a10bf8492fb4763dec268a8ea41642ae4514
9.2.2 /var/lib/docker/image/overlay2

这个目录比较重要,所有拉取下载更新的镜像文件(docker pull image_name),都在这里存放着。

[root@xzds-3 overlay2]# pwd
/var/lib/docker/image/overlay2
[root@xzds-3 overlay2]# ll
总用量 4
drwx------  4 root root  56 4月  13 09:17 distribution
drwx------  4 root root  35 4月  12 09:49 imagedb
drwx------. 5 root root  42 4月  13 09:30 layerdb
-rw-------  1 root root 319 4月  13 09:17 repositories.json

十、拓展(修改配置docker中国官方加速镜像)

10.1 说明

国内连接 Docker 的官方仓库Docker hub很慢,因此我们在日常使用中会使用 Docker 中国加速器。通过 Docker 官方镜像加速,中国区用户能够快速访问最流行的 Docker 镜像。该镜像托管于中国大陆,本地用户现在将会享受到更快的下载速度和更强的稳定性,从而能够更敏捷地开发和交付 Docker 化应用。
Docker 中国官方镜像加速可通过 https://registry.docker-cn.com 访问。该镜像库只包含流行的公有镜像,私有镜像仍需要从美国镜像库中拉取。

10.2 修改配置docker中国官方加速镜像

docker配置镜像文件是/etc/docker/daemon.json

[root@myhost ~]# vi /etc/docker/daemon.json
[root@myhost ~]# cat /etc/docker/daemon.json
{
 "registry-mirrors": ["https://registry.docker-cn.com"],
 "live-restore": true
}
### 加载配置后重启:
[root@myhost ~]# /bin/systemctl daemon-reload 
[root@myhost ~]# /bin/systemctl restart docker.service
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值