- https://download.docker.com/linux/static/stable/x86_64/ 下载ce,社区版
- tar -zxvf docker-18.06.3-ce.tgz
- cp ./docker/* /usr/bin
- 创建docker.service文件
cd /etc/systemd/system/
touch docker.services
- 编辑docker.service文件
注意,将其中的ip地址,改成您的服务器地址,其它参数不用改。
–insecure-registry=192.168.205.230
[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 --selinux-enabled=false --insecure-registry=192.168.205.230
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
- 启动
chmod +x docker.service
systemctl daemon-reload
systemctl start docker
systemctl status docker
docker -v
# 设置开机自启动
systemctl enable docker.service
- 配置文件说明
[Unit]
# Docker应用容器引擎
Description=Docker应用容器引擎
# 官方文档地址
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# 默认情况下不使用systemd的cgroups,因为代理问题仍然存在,而且systemd目前不支持Docker所需的cgroup特性集运行的容器。
# 设置Docker daemon所需的参数,其中--insecure-registry选项用于允许Docker连接到非认证的私有镜像库。
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=192.168.205.230
ExecReload=/bin/kill -s HUP $MAINPID
# 当systemd收到SIGHUP信号时,重新加载配置文件并重新打开所有日志文件。
LimitNOFILE=infinity
# 限制进程可打开的最大文件描述符数,infinity表示无限制。
LimitNPROC=infinity
# 限制进程可以创建的最大子进程数,infinity表示无限制。
LimitCORE=infinity
# 设置core文件大小的软限制和硬限制,infinity表示无限制。
# 如果硬限制不是无限制,则需要相应的特权才能增加软限制。
# 可以使用ulimit命令查看和修改这些限制。
# 在系统的systemd版本支持时,可以取消注释TasksMax。TasksMax是一个systemd的选项,它限制了一个service(服务)的进程数量。在systemd 226及以上的版本中,可以使用TasksMax来控制该服务的进程数量,以避免服务运行过程中出现过多的进程导致系统资源耗尽。不过需要注意的是,如果您的systemd版本不支持TasksMax,那么取消注释将会导致启动失败。
#TasksMax=infinity
TimeoutStartSec=0
# 启动服务的超时时间,0表示无限制。
Delegate=yes
# 设置delegate=yes,以便systemd不会重置Docker容器的cgroups。
KillMode=process
# 杀死Docker进程而不是cgroup中的所有进程。
Restart=on-failure
# 如果Docker进程意外退出,则重新启动Docker进程。
StartLimitBurst=3
# 在StartLimitInterval秒内不允许超过StartLimitBurst次失败,否则将放弃重新启动服务。
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target