Linux Docker 容器开机启动 docker run

介绍

Docker 是一种开源的容器化平台,可以帮助我们构建、发布和运行应用程序。在使用 Docker 时,我们通常会通过 docker run 命令来启动一个容器。但是,当我们的系统重新启动时,容器并不会自动启动。为了让容器在系统开机时自动运行,我们需要进行一些配置。

本文将介绍如何在 Linux 系统中设置 Docker 容器开机启动的步骤,以及如何使用 docker run 命令启动容器。

步骤

1. 创建容器

首先,我们需要创建一个 Docker 容器。假设我们要创建一个运行 nginx 服务的容器。

使用以下命令创建一个新容器:

docker create --name my-nginx -p 80:80 nginx

以上命令创建了一个名为 my-nginx 的容器,映射主机的 80 端口到容器的 80 端口,并使用 nginx 镜像作为容器的基础镜像。

2. 设置容器开机启动

在 Linux 系统中,我们可以使用 systemd 来设置容器开机启动。下面是一个例子:

  1. 创建一个名为 my-nginx.service 的服务文件,位置应该在 /etc/systemd/system/ 目录下。
sudo nano /etc/systemd/system/my-nginx.service
  1. 在 my-nginx.service 文件中,添加以下内容:
[Unit]
Description=My NGINX Container
Requires=docker.service
After=docker.service

[Service]
ExecStart=/usr/bin/docker start -a my-nginx
ExecStop=/usr/bin/docker stop -t 2 my-nginx

[Install]
WantedBy=default.target

以上配置文件中,我们指定了容器的启动和停止命令,并将容器的启动和停止与 docker.service 相关联。

  1. 保存并退出文件。

  2. 启用并启动服务:

sudo systemctl enable my-nginx
sudo systemctl start my-nginx

现在,当系统重新启动时,my-nginx 容器将会自动启动。

3. 使用 docker run 启动容器

除了设置容器开机启动,我们还可以使用 docker run 命令手动启动容器。

使用以下命令启动之前创建的 my-nginx 容器:

docker run -d --name my-nginx -p 80:80 nginx

这将使用 nginx 镜像创建并启动一个新的容器,并将容器的 80 端口映射到主机的 80 端口。

总结

通过本文,我们学习了如何在 Linux 系统中设置 Docker 容器开机启动。我们创建了一个 NGINX 容器,并使用 systemd 配置了容器的开机启动。此外,我们还学习了如何使用 docker run 命令手动启动容器。

希望本文对你理解 Linux Docker 容器的开机启动过程有所帮助!

甘特图

下面是一个使用 mermaid 语法绘制的甘特图,展示了创建容器和设置容器开机启动的过程:

gantt
    dateFormat  MM-DD
    title       Docker 容器开机启动流程

    section 创建容器
    创建容器         :done, 01-01, 1h
    配置容器启动命令 :done, 01-01, 1h

    section 设置容器开机启动
    创建服务文件         :done, 01-02, 1h
    编辑服务文件         :done, 01-02, 1h
    启用并启动服务       :done, 01-03, 1h

    section 使用 docker run 启动容器
    手动启动容器         :done, 01-04, 1h

以上甘特图展示了创建容器和设置容器开机启动的过程以及使用 docker run 手动启动容器的步骤。

希望这个甘特图可以更直观地展示整个流程!

参考链接:

  • [Docker 官方文档](