我有一些容器,它们都在docker-compose文件中具有始终重新启动的值,如下所示:
version: "3.7"
services:
container:
image: ghost:latest
container_name: some_container
restart: always
depends_on:
- ...
ports:
- ...
...一旦操作系统(平板车Linux / CoreOS)更新了自己,容器就没有重新启动。但是如果我只做$ sudo docker ps,所有的容器都会同时启动。如何修复它,以便在更新后自动重新启动容器?
编辑:
不知道我的问题是什么,restart: always被打开了。除非我在文档中遗漏了一些重要的东西,否则这个命令应该重新启动容器,即使重新启动了docker守护进程(在os重新启动之后)。
以下是我的一份评论:
好吧,那就帮帮我。正如您在我的问题中所看到的,我已经重新启动:始终打开。所有这些容器都已成功启动并运行良好。然后操作系统自动更新并重新启动自己。重新启动之后,将重新启动docker守护进程。但是,由于某些原因,我在打开
RESTART: ALWAYS时运行的容器没有启动。如果此时输入我的服务器,输入sudo docker ps列出正在运行的容器,突然所有容器都启动,我就会看到列表。那么,为什么即使守护进程正在运行,容器也没有启动呢?
发布于 2020-11-16 23:41:51
从注释中可以看出,停靠服务未配置为在启动时自动启动。Docker是一个客户端服务器应用程序,服务器从systemd运行,带有一个单独的服务,用于客户端与服务器对话时使用的docker套接字。因此,任何带有docker命令的调用都有可能通过点击docker套接字导致服务器启动。
系统d中的服务状态可以使用以下方法进行检查:
systemctl status docker或者你可以检查一下:
systemctl is-enabled docker它可以通过以下方式手动启动:
systemctl start docker它可以从以下几个方面开始:
systemctl enable docker以上所有命令都需要作为root运行。
发布于 2020-12-17 20:09:28
这要求Docker服务在启动时启动,而不是使用按需启动的默认套接字激活,就像执行"docker ps“一样。
以下是在禁用套接字激活的同时启用Docker服务所需的:
systemd:
units:
# Ensure docker starts automatically instead of being socket-activated
- name: docker.socket
enabled: false
- name: docker.service
enabled: true发布于 2020-11-16 17:45:43
如果容器停止,always总是重新启动它。如果它是手动停止的,则只在Docker守护进程重新启动或容器本身手动重新启动时才重新启动。
unless-stopped类似于always,只不过当容器停止(手动或其他方式)时,即使Docker守护进程重新启动,也不会重新启动它。
如果您有一个您想要更改重新启动策略的已在运行的容器,您可以使用docker update command来更改该策略,下面的命令将确保除非停止,否则将重新启动所有当前正在运行的容器
$ docker update --restart unless-stopped $(docker ps -q)注意:在使用重新启动策略时要记住以下几点
https://stackoverflow.com/questions/64644587
复制相似问题