# Github仓库示例地址: https://github.com/moby/moby/blob/master/contrib/init/systemd/docker.service # 文件位置: /usr/lib/systemd/system/docker.service [Unit] # 描述这个单元的作用是管理 Docker 应用容器引擎 Description=Docker Application Container Engine # 提供文档链接,指向 Docker 的官方文档 Documentation=https://docs.docker.com # 指定单元的启动顺序和依赖关系[网卡,防火墙,时间同步] After=network-online.target firewalld.service time-set.target # 在启动时需要网络已启动 Wants=network-online.target [Service] # 指定服务的类型为通知类型 Type=notify # 指定 Docker 守护进程的启动命令和参数 ExecStart=/usr/local/bin/dockerd # 指定在执行重载时的命令 ExecReload=/bin/kill -s HUP $MAINPID # 设置启动超时时间为 0,重启时间为 2 秒 TimeoutStartSec=0 # 用于指定服务重新启动之间的延迟时间 RestartSec=100ms # 当服务以非零(非成功)的退出状态结束时,Systemd 将自动尝试重新启动该服务 Restart=on-failure # 用于设置在 Systemd 尝试启动服务时允许的最大连续启动次数 StartLimitBurst=3 # 指定了在 StartLimitBurst 尝试次数内重新启动服务的时间间隔限制 StartLimitInterval=60s # 限制一个服务进程可以打开的文件描述符(File Descriptor)的数量 LimitNOFILE=infinity # 限制一个服务进程可以创建的子进程数量 LimitNPROC=infinity # 限制一个服务进程可以使用的核心转储(core dump)文件的大小 LimitCORE=infinity # 限制一个单元内的任务数量(即线程和进程总数) TasksMax=infinity # 指定使用委托,让 systemd 不重置 docker 容器的 cgroups Delegate=yes # 设置 KillMode 为 process,只杀死 Docker 进程,不影响 cgroup 中的其他进程 KillMode=process # 设置 OOMScoreAdjust 为 -500,降低容器进程被 OOM 杀死的概率 # OOMScoreAdjust=-500 # 安装目标为多用户模式 [Install] WantedBy=multi-user.target