一、环境准备
1台虚拟机,系统为centos7
二、安装 docker 17.09.0-ce
在 Docker17.03.0-ce 版本中,与在 Docker 1.12 中引入的实验版本相比,管理插件 API发生了变化。
在升级到 Docker17.03.0-ce之前,必须卸载使用 Docker 1.12 安装的插件,可通过 docker plugin rm 命令卸载插件。
如果有安装旧版dokcer,先卸载
# yum -y remove docker*
# yum -y remove container-selinux
下载官方Docker YUM源,
在下载页面选择对应的操作系统版本
https://www.docker.com/docker-community
https://docs.docker.com/install/linux/docker-ce/centos
# yum -y install yum-utils
# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# yum makecache fast
# yum list docker-ce.x86_64 --showduplicates |sort -r
# yum -y install docker-ce-17.09.0.ce
# systemctl start docker
# systemctl enable docker
# systemctl status docker
三、查看docker的启动参数
我们来稍微了解下17.09.0.ce的启动参数
# cat /usr/lib/systemd/system/docker.service
我们只要配置ExecStart这个对应项,当使用systemctl start docker 的时候执行。
Docker服务端默认不监听任何端口,客户端通过 /var/run/docker.sock连接 docker daemon
详细的配置参数可以使用 dockerd --help 查看
在没有特殊要求的情况下,我们很多启动配置参数是不需要用到,所以我把我自己的配置参数贴出来给大家看下。
########################
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd \
--bip=172.18.0.1/16 \
-H tcp://0.0.0.0:5257 \
-H unix:///var/run/docker.sock \
--pidfile=/var/run/docker.pid
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
######################################
--bip 指定桥接地址,即定义一个容器的私有网络
--H tcp://0.0.0.0:5257 将docker守护进程指定一个监听端口
--H unix:///var/run/docker.sock 将docker守护进程指定一个sock位置
--pidfile=/var/run/docker.pid 指定docker守护进程pid文件目录
配置好上述的参数时候,我们就可以来启动docker了
# systemctl stop docker
重新加载docker.service文件的配置,否则重启也是启动之前的配置
# systemctl daemon-reload
# systemctl start docker
四、参考
https://www.docker.com/docker-community