docker容器开机自启(docker开机自启动命令)
简介:
Docker 是目前最火的开发、测试、部署应用程序的容器化平台,用户通过 Docker 可以快速地创造轻量化的可移植镜像。然而在实际使用过程中,很多人发现 Docker 容器无法自动开机自启动,需要手动启动,这给用户带来了很多不便。本文将介绍如何让 Docker 容器开机自启动。
多级标题:
一、利用Docker Compose实现容器开机自启
二、使用Systemd实现容器开机自启
三、使用RC Local实现容器开机自启
内容详细说明:
一、利用Docker Compose实现容器开机自启
Docker Compose 是一个工具,它能够让用户在 Docker 容器中进行多容器的部署,并帮助用户进行容器之间的链接。因此在容器开机自启时,我们也可以使用 Docker Compose 来实现。
1. 编写 Docker Compose 文件
使用 Docker Compose 实现容器开机自启时,需要在启动 Docker Compose 时,指定要使用的 Compose 文件。因此,我们需要先编写一个 Docker Compose 文件。此处以 Redis 容器为例,示例文件内容如下:
version: '3'
services:
redis:
image: redis
restart: always # 这一行可以让容器在重启后自动启动
ports:
- "6379:6379"
volumes:
- "./redis:/data"
2. 创建启动脚本
在上述 Docker Compose 文件中,我们指定了 restart: always 这个指令。当 Docker Compose 启动时,Docker 会根据这个指令对容器进行自动启动。但是为了让容器在开机时也能自动启动,我们还需要创建一个启动脚本。
假设我们希望把上述 Redis 容器作为一个系统服务,在开机时也能自动启动。此时,我们可以在 /etc/init.d/ 文件夹下创建一个脚本文件 redis.sh。该脚本文件内容如下:
#!/bin/bash
cd /path/to/compose/file
docker-compose up -d
3. 添加系统服务
完成启动脚本的编写之后,我们需要将其添加为系统服务。我们可以通过如下命令将提交的脚本文件添加为系统服务:
sudo update-rc.d redis.sh defaults 90
也可以使用下面的命令给脚本文件加上可执行权限,让其可以在开机时自动执行:
chmod +x /etc/init.d/redis.sh
至此,我们已经完成了使用 Docker Compose 实现容器开机自启的步骤。
二、使用Systemd实现容器开机自启
Systemd 是一个 Linux 系统下的服务管理工具,它的出现标志着 Linux 系统服务管理的一次革新。使用 Systemd,我们可以更加方便地管理 Linux 系统服务,也可以轻松地实现 Docker 容器开机自启。
1. 编写 Systemd Unit 文件
类似于上述 Docker Compose,使用 Systemd 实现容器开机自启时,我们首先需要编写一个配置文件。该文件通常被称为 Systemd Unit 文件,以下是一个 Redis 容器的示例文件:
[Unit]
Description=Redis service
Requires=docker.service
Requires=docker-compose.service
Requires=docker.socket
After=docker.service
After=docker-compose.service
After=docker.socket
[Service]
Restart=always
WorkingDirectory=/path/to/docker-compose
ExecStart=/usr/local/bin/docker-compose up
ExecStop=/usr/local/bin/docker-compose down
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
[Install]
WantedBy=multi-user.target
2. 启动系统服务
完成 Systemd Unit 文件的编写之后,我们需要使用以下命令来启动系统服务:
systemctl daemon-reload
systemctl start redis.service
systemctl enable redis.service
此时,Redis 容器就会在 Linux 开机时自动启动。
三、使用RC Local实现容器开机自启
还有一种实现 Docker 容器开机自启的方法就是使用 RC Local。RC Local 是 Linux 系统在启动时会自动执行的脚本,通过在其中添加 Docker 启动命令,能够实现 Docker 容器自动开机自启动。
1. 编写启动脚本
在 /etc/rc.local 文件中添加以下脚本代码:
#!/bin/bash
sudo docker start
2. 保存脚本并给其加上可执行权限
保存脚本文件后,需要给脚本文件授予可执行权限:
sudo chmod +x /etc/rc.local
3. 确认 RC Local 已启用
最后,我们还需要检查 RC Local 是否已启用。可以通过如下命令来确认:
sudo systemctl status rc-local.service
至此,我们已经介绍了三种实现 Docker 容器开机自启的方法。选择哪种方法,取决于具体的需求和方便程度。