ZBLOG

如何配置docker容器开机自启动

在Docker中,你可以通过以下两种方式之一来配置容器开机自启动:

  1. 使用Docker Compose

使用Docker Compose可以轻松地管理和配置多个容器。你可以在Compose文件中指定需要开机自启动的容器。具体步骤如下:

a. 在宿主机上安装Docker Compose。

b. 创建一个名为docker-compose.yml的Compose文件,并在其中定义需要开机自启动的容器以及它们的配置信息。

例如,下面是一个简单的docker-compose.yml文件示例:

  1. version: '3'
  2. services:
  3. mysql:
  4. image: mysql:latest
  5. restart: always
  6. environment:
  7. MYSQL_ROOT_PASSWORD: your_password
  8. webapp:
  9. build: .
  10. ports:
  11. - "8080:80"
  12. depends_on:
  13. - mysql

该Compose文件定义了两个服务:mysql和webapp。mysql服务使用最新版MySQL镜像,并设置了管理员密码为“your_password”。webapp服务则构建了当前目录下的Dockerfile并将其映射到宿主机上的8080端口。此外,webapp服务还依赖于mysql服务。

c. 使用docker-compose up命令来启动这些容器并测试其是否能够正常运行。

d. 在宿主机上配置开机自启动(不同系统可能略有不同):

  • Linux:将docker-compose.yml文件拷贝到/etc/init.d/目录下,并使用chmod +x命令添加执行权限。
  • macOS:将docker-compose.yml文件拷贝到/Library/LaunchDaemons/目录下。
  • Windows:在Docker Desktop中打开Settings -> General,并勾选“Start Docker Desktop when you log in”。
  1. 使用systemd

如果你正在使用Linux系统,也可以使用systemd来配置容器的开机自启动。具体步骤如下:

a. 创建一个名为mycontainer.service的systemd服务文件(该文件需以“.service”结尾),并将其保存到/etc/systemd/system/目录下。

例如,下面是一个简单的mycontainer.service文件示例:

  1. [Unit]
  2. Description=My Container Service
  3. Requires=docker.service
  4. After=docker.service
  5. [Service]
  6. Restart=always
  7. ExecStart=/usr/bin/docker start -a mycontainer
  8. ExecStop=/usr/bin/docker stop -t 2 mycontainer
  9. [Install]
  10. WantedBy=default.target

该服务文件定义了一个名为“My Container Service”的服务,并指定它依赖于docker.service。在启动时,该服务会使用docker start命令来启动名为“mycontainer”的容器;在停止时,则使用docker stop命令来停止该容器。此外,该服务还设置了每次重启后自动重启。

b. 在宿主机上重新加载systemd配置:

  1. sudo systemctl daemon-reload

c. 启用并测试这个新的systemd服务:

  1. sudo systemctl enable mycontainer.service
  2. sudo systemctl start mycontainer.service
  3. sudo systemctl status mycontainer.service

通过以上两种方式之一配置完成后,当你重启宿主机时,对应的Docker容器就会自动开机启动。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=5981

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?