【发布时间】:2020-07-09 08:31:09
【问题描述】:
使用独立容器运行 cronjob
docker run -name my_name --volumes-from container_name ...
我想在 Swarm 堆栈中做同样的事情,我的服务有多个副本,因此容器名称为 container_name.1.、container_name.2. 等。
如何指定容器的名称在每次容器重新启动后获得新的id时不更改?
【问题讨论】:
使用独立容器运行 cronjob
docker run -name my_name --volumes-from container_name ...
我想在 Swarm 堆栈中做同样的事情,我的服务有多个副本,因此容器名称为 container_name.1.、container_name.2. 等。
如何指定容器的名称在每次容器重新启动后获得新的id时不更改?
【问题讨论】:
Docker Swarm 使用命名服务创建堆栈,服务创建具有唯一名称的一次性容器。在堆栈中引用容器名称是不好的做法。服务名称在docker-stack.yaml 文件中。如果您希望创建具有持久卷的 docker 堆栈,最好创建一个持久的volume。 docker volume create [OPTIONS] [NAME]Docker volume create
您也可以在您的docker-stack.yaml 中开始您的堆栈时创建它。从 my-service 生成的所有容器都将使用相同的共享卷。
version: "3.8"
services:
my-service:
image: my-service:latest
volumes:
- my-data:/usr/share/mydata
volumes:
my-data
你也可以用这个来引用一个外部创建的卷(docker volume create my-data):
volumes:
my-data:
external: true
【讨论】: