在Linux中设置自动启动Docker容器的方法
容器化不再是一项新技术,数以百万计的应用程序正在使用它,在这方面,Docker 在提供管理和部署基于 Conatiner 的应用程序的平台方面发挥了相当重要的作用。 开发人员可以使用 Docker 创建自定义应用程序映像,并将所需的所有依赖项包含在单个包中。 因此,用户可以通过单个命令轻松安装它们,而无需手动配置每个元素。
但是,在 Docker 上创建与应用程序一起运行的容器后,如果系统重新启动怎么办? 在这种情况下,我确信您希望 Docker 通过系统启动来启动应用程序,自动为数百人服务,对吗?
如果是这样,那么本教程将围绕此展开,在这里我们学习如何配置 Linux 系统以在系统启动时使用 SystemD 自动启动 Docker 容器。
在学习本教程之前,我假设您已经在 Linux 系统上安装了 Docker。
推荐:如何在Windows上更改光标
1:打开命令终端
是的,您需要访问Linux系统的命令终端来创建一个将自动重新启动Docker容器的服务文件。 因此,如果您在某个远程服务器上安装了 Docker,则使用 SSH 并访问该服务器,而 GUI 桌面用户可以直接从应用程序菜单启动终端应用程序。
笔记:您必须拥有 sudo 权限。
2:检查Docker是否安装
当然,要自动运行容器,我们的系统上必须安装Docker。 要检查 Docker 的服务是否已启用并正在运行,请使用给定的命令:
sudo systemctl status docker
如果未启用,则使用:
sudo systemctl enable docker
而启动服务:
sudo systemctl start docker
3. 使用 Docker 选项重新启动容器
有两种方法可以让 Docker 容器随系统启动自动重启。 一种是使用Docker自带的命令,另一种是借助systemd单元文件,这里我们对两种方式都进行讨论。
第一种方式: 使用 Docker 命令 – 推荐之一
创建容器时您可以使用 –重新启动除非-停止 参数告诉 Docker 总是重新启动容器,除非它没有手动停止。
笔记:将container-nam替换为您的容器。
docker run -d --restart unless-stopped container-name
然而,如果您已经有一个 积极的 然后您可以更新其策略并使其随系统启动自动重新启动。
docker update --restart unless-stopped container-name
您甚至可以使用给定的命令更新所有现有容器的策略,使它们自动重新启动:
docker update --restart unless-stopped $(docker ps -q)
#第二种方式: 使用 SystemD 单元文件
4:创建Systemd单元文件
现在,在终端中切换到通常保存系统服务文件的目录。
cd /etc/systemd/system
接下来,创建一个新的服务文件,以下是执行此操作的命令:
sudo nano mycontainer.service
您可以根据需要更改服务名称,例如,我们在这里给出它 我的容器您可以定义其他一些以轻松识别服务文件。
文件打开后,将以下代码粘贴到其中。
[Unit]
Description=My Docker Container
Requires=docker.service
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a linuxshout
ExecStop=/usr/bin/docker stop -t 10 linuxshout
[Install]
WantedBy=multi-user.target
代替 “linux喊” 与您想要在系统启动时自动启动和运行的容器名称。
节省 通过按该文件 Ctrl+X, 类型 是 然后打 进入 钥匙。
好吧,如果您不知道应用程序容器的名称,请运行:
docker ps -a
在结果的末尾,您将看到用于创建它的特定 Docker 映像的容器名称。
5:启动并启用容器服务
现在,让我们启动并启用您为容器创建的服务文件,以便它可以在系统启动时自动启动。
笔记: 代替 ”我的容器” 与您创建的容器服务文件名。
sudo systemctl enable mycontainer.service
sudo systemctl start mycontainer.service
检查状态:
systemctl status mycontainer.service --no-pager -l
6:验证容器自动启动
如果您想确认容器是否自动启动,只需重新启动计算机或系统即可。
sudo reboot
之后,一旦您再次上线,请运行给定的命令以查看容器是否处于活动状态。
sudo docker ps
因此,这是在 Linux 系统上创建服务文件的最快方法,该文件将在系统重新启动时自动启动 Docker 容器。 如果需要,您还可以自定义服务以提供具体说明。