在Linux中设置自动启动Docker容器的方法

在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
在Linux中设置自动启动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 映像的容器名称。

查找 Docker 容器名称

5:启动并启用容器服务

现在,让我们启动并启用您为容器创建的服务文件,以便它可以在系统启动时自动启动。

笔记: 代替 ”我的容器” 与您创建的容器服务文件名。

sudo systemctl enable mycontainer.service
sudo systemctl start mycontainer.service

检查状态:

systemctl status mycontainer.service --no-pager -l
开始启用Docker容器服务

6:验证容器自动启动

如果您想确认容器是否自动启动,只需重新启动计算机或系统即可。

sudo reboot

之后,一旦您再次上线,请运行给定的命令以查看容器是否处于活动状态。

sudo docker ps

因此,这是在 Linux 系统上创建服务文件的最快方法,该文件将在系统重新启动时自动启动 Docker 容器。 如果需要,您还可以自定义服务以提供具体说明。

推荐:TikTok增加帖子标题的字符数有用吗


发表评论