Docker设置开机启动
Docker 是一个开源的容器化平台,通过使用 Docker,开发者可以快速构建、部署和运行应用程序。在一些场景下,我们可能需要将 Docker 设置为开机启动,以确保在服务器重启后,Docker 守护进程也能自动启动。
本文将介绍如何在不同操作系统上配置 Docker 开机启动,并提供相应的代码示例。
1. Ubuntu / Debian
在 Ubuntu 或 Debian 系统上,可以通过 systemd
来启用 Docker 开机启动。
首先,创建一个名为 docker.service
的文件,文件路径为 /etc/systemd/system/docker.service
:
[Unit]
Description=Docker Application Container Engine
Documentation=
After=network.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
然后,执行以下命令以重新加载 systemd 配置:
$ sudo systemctl daemon-reload
最后,启用 Docker 开机启动:
$ sudo systemctl enable docker
现在,Docker 将在服务器重启后自动启动。
2. CentOS / Red Hat
在 CentOS 或 Red Hat 系统上,可以使用 chkconfig
命令来启用 Docker 开机启动。
首先,创建一个名为 docker
的文件,文件路径为 /etc/init.d/docker
:
#!/bin/sh
#
# /etc/init.d/docker
#
# Docker daemon
#
# chkconfig: 2345 99 01
# description: Docker daemon
### BEGIN INIT INFO
# Provides: docker
# Required-Start: $local_fs $network $named $time
# Required-Stop: $local_fs $network $named $time
# Should-Start: $syslog $remote_fs
# Should-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
# Source function library
. /etc/rc.d/init.d/functions
# Path to the docker binary
DOCKER=/usr/bin/docker
# Options for the docker daemon
DOCKER_OPTS="-d"
# Check for missing binaries
test -x $DOCKER || exit 0
start() {
echo -n $"Starting docker: "
daemon $DOCKER $DOCKER_OPTS
retval=$?
echo
return $retval
}
stop() {
echo -n $"Stopping docker: "
killproc $DOCKER
retval=$?
echo
return $retval
}
restart() {
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart|force-reload}"
exit 2
esac
然后,将文件权限设置为可执行:
$ sudo chmod +x /etc/init.d/docker
最后,使用以下命令启用 Docker 开机启动:
$ sudo chkconfig --add docker
现在,Docker 将在服务器重启后自动启动。
3. macOS
在 macOS 上,可以使用 launchctl
命令来启用 Docker 开机启动。
首先,创建一个名为 docker.startup.plist
的文件,文件路径为 ~/Library/LaunchAgents/docker.startup.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "
<plist version="1.0">
<dict>
<key>Label</key>
<string>docker.startup</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/dockerd</string>
<string>-H</string>
<string>fd://</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
然后,使用以下命令启用 Docker 开机启动:
$ launchctl load -w ~/Library/LaunchAgents/docker.startup.plist
现在,Docker 将在 macOS 重启后自动启动。
以上