📅  最后修改于: 2023-12-03 14:51:25.259000             🧑  作者: Mango
当你使用 Docker 作为你的应用程序运行平台时,你可能希望在服务器启动时自动启动 Docker。这样,如果服务器重新启动或崩溃,Docker 将自动重新启动并恢复你的应用程序。
在 Linux/MacOS 的操作系统中,你可以使用 Shell/Bash 脚本来实现自动启动 Docker。以下是在启动时启动 Docker 的步骤:
docker.service
的文件:$ sudo nano /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket
[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitInterval=60s
StartLimitBurst=3
[Install]
WantedBy=multi-user.target
此文件包含了 Docker 服务的配置信息。你可以根据自己的需要进行修改。
$ sudo systemctl daemon-reload
$ sudo systemctl start docker
现在,每次服务器启动时,Docker 将自动启动。
$ sudo systemctl status docker
你将看到类似下面的输出:
● docker.service - Docker Application Container Engine
Loaded: loaded (/etc/systemd/system/docker.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2021-05-30 13:07:47 UTC; 3s ago
Docs: https://docs.docker.com
Main PID: 16929 (dockerd)
Tasks: 15
Memory: 107.8M
CPU: 820ms
CGroup: /system.slice/docker.service
├─16929 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
├─16947 containerd --config /var/run/containerd/containerd.toml --log-level info
├─19712 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.17.0.2 -container-port 80
├─19826 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 32772 -container-ip 172.17.0.2 -container-port 22
├─19838 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 32771 -container-ip 172.17.0.2 -container-port 80
└─19856 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 32770 -container-ip 172.17.0.2 -container-port 8080
现在,你已经成功在启动时启动了 Docker。
总结:
在 Linux/MacOS 系统中,你可以使用 Shell/Bash 脚本来实现自动启动 Docker。使用 systemd
配置文件可以方便地配置 Docker 服务。通过上述步骤,你可以在服务器启动时自动启动 Docker,并保证你的应用程序一直运行。