我不确定我是否正确理解了“重启”选项在 docker 中的工作原理。
下面是一个来自 docker compose 文件的例子。发生的事情是:
我希望 Docker 会尝试重新启动 linuxserver-deluge,直到它设法连接到网络。
我的问题是,为什么 Docker 不重启 linuxserver-deluge 容器。我该怎么做才能让第二个容器等待第一个容器,或者强制 Docker 在循环中重新启动第二个容器。
如果重要的话,整个事情都在 Synology DSM 7.1 上运行并由 Portainer 管理。
version: "3"
services:
** gluetun:**
image: qmcgaw/gluetun
container_name: gluetun_vpn
cap_add:
- NET_ADMIN
environment:
- VPN_SERVICE_PROVIDER=some provider
- ... other variables
ports: #uncomment ports below for additional applications
- ... port mapping
volumes:
- /volume1/docker/gluetun:/gluetun
network_mode: bridge
restart: unless-stopped
linuxserver-deluge:
image: ghcr.io/linuxserver/deluge
container_name: deluge_gluetun
** network_mode: service:gluetun # run on the vpn network**
environment:
- ... env variables
volumes:
- ... folder mapping
** restart: always **
我试过用 depend_on 选项调整 compose 文件,但似乎对问题没有影响。
这里
version: "3"
services:
gluetun:
image: qmcgaw/gluetun
container_name: gluetun_vpn
cap_add:
- NET_ADMIN
environment:
- VPN_SERVICE_PROVIDER=some provider
- ... other variables
ports: #uncomment ports below for additional applications
- ... port mapping
volumes:
- /volume1/docker/gluetun:/gluetun
network_mode: bridge
restart: unless-stopped
linuxserver-deluge:
image: ghcr.io/linuxserver/deluge
container_name: deluge_gluetun
network_mode: service:gluetun # run on the vpn network
environment:
- ... env variables
volumes:
- /volume1/docker/deluge:/config
- /volume1/Downloads:/data/torrents
** depends_on:
- gluetun**
restart: always
depend_on
不重启依赖服务。这不是它的目的。它的目的是等待依赖的服务开始启动,所以满足依赖的条件
depends_on 表示服务之间的启动和关闭依赖关系。
Compose 实现必须保证依赖服务在启动依赖服务之前已经启动。 Compose 实现可以在启动依赖服务之前等待依赖服务“准备好”。
来自https://docs.docker.com/compose/compose-file/05-services/#depends_on