为了让容器在启动点自动启动,我尝试添加以下命令:
cd目录_has_docker-compose.yml
但是在我重新启动计算机后,容器无法正常工作。
如何在系统启动时运行
docker compose-up-d
?
如果您的泊坞窗服务
在系统启动时启用
$ sudo systemctl enable docker
以及您在docker组件中的服务。yml
具有
restart: always
如果只运行一次以下命令,则所有服务都会在重新启动系统时运行
docker-compose up -d
您应该能够添加:
restart: always
到docker-compose.yml
文件中要重新启动的每个服务。
请参见:https://github.com/compose-spec/compose-spec/blob/master/spec.md#restart
当我们使用crontab
或不推荐使用的/etc/rc时。本地
文件,我们需要一个延迟(例如sleep10systemd(或
upstart)用于管理系统启动时启动的服务。您可以尝试对此使用类似的配置:
# /etc/systemd/system/docker-compose-app.service
[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/srv/docker
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
或者,如果您想在没有
-d
标志的情况下运行:
# /etc/systemd/system/docker-compose-app.service
[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service
StartLimitIntervalSec=60
[Service]
WorkingDirectory=/srv/docker
ExecStart=/usr/local/bin/docker-compose up
ExecStop=/usr/local/bin/docker-compose down
TimeoutStartSec=0
Restart=on-failure
StartLimitBurst=3
[Install]
WantedBy=multi-user.target
用您的文档化项目路径更改< code>WorkingDirectory
参数。并使服务自动启动:
systemctl enable docker-compose-app
问题内容: 假设我有一个要运行的Docker容器,那么我可以调用 一切都很好。如果系统崩溃并重新启动,是否有内置的方式来运行容器,使其能够自动重新启动? 如果是这样,这在Docker Compose中也可用吗? 问题答案: 是的,docker具有重启策略,该策略可以处理此问题。这也可以在compose.yml配置文件中找到。
假设我有一个要运行的Docker容器,然后我可以调用 一切都很好。是否有一种内置方法可以运行容器,以便在系统崩溃并重新启动时自动重新启动容器? 如果是这样,这在 Docker Compose 中是否也可用?
我有一个Dockerfile来在容器中安装MySQL server,然后我这样开始: 但MySQL服务不会自动启动,我必须手动运行(从容器内): 如何在运行docker容器时自动启动MySQL服务?
问题内容: 我有一个Dockerfile将MySQL服务器安装在一个容器中,然后我开始像这样: 但是MySQL服务不会自动启动,我必须手动运行(从容器内部): 运行docker容器时如何自动启动MySQL服务? 问题答案: 首先,有一个 问题, 在您的: Docker映像不会保存正在运行的进程。因此,您的命令仅在阶段执行,并在构建完成后停止。相反,您需要使用或如下所示的命令在启动容器时指定命令:
我需要某种方式来启动我的Java应用程序,而不强制用户手动运行应用程序。我不完全确定我将如何做到这一点,有人能提供任何帮助吗?
问题内容: 在容器内运行服务时,假设使用mongodb命令 将立即退出,并返回容器ID。在我的CI脚本中,我在运行mongo容器之后立即运行客户端以测试mongodb连接。问题是:由于服务尚未启动,客户端无法连接。除了在脚本中添加大字体外,我看不到任何等待容器启动并运行的选项。 Docker的命令在这种情况下不起作用,因为该容器不存在。是docker的限制吗? 问题答案: 如在docker 1.1