Docker compose 没有安装卷?
Docker compose not mounting volume?
如果我 运行 此命令,卷安装并且容器以初始化状态按预期启动:
docker run --name gogs --net mk1net --ip 203.0.113.3 -v gogs-data:/data -d gogs/gogs
但是,如果我 运行 相应的 docker-compose
脚本,卷不会挂载。容器仍在启动,但没有它在启动时读取的状态。
version: '3'
services:
gogs:
image: gogs/gogs
ports:
- "3000:3000"
volumes:
- gogs-data:/data
networks:
mk1net:
ipv4_address: 203.0.113.3
volumes:
gogs-data:
networks:
mk1net:
ipam:
config:
- subnet: 203.0.113.0/24
有什么想法吗?
查看您的命令,gogs-data
卷是在 docker 撰写文件之外定义的,可能使用类似的东西:
docker volume create gogs-data
如果是这样,那么您需要在 docker 撰写文件中将其指定为外部,如下所示:
volumes:
gogs-data:
external: true
您还可以为外部卷定义不同的名称,并在 docker 撰写文件中继续使用当前卷名称以避免命名冲突,例如,假设您的项目是关于销售汽车的,那么您想要调用外部卷 selling-cars-gogs-data
但希望在 docker 撰写文件中保持简单如 gogs-data
,那么您可以这样做:
volumes:
gogs-data:
external:
name: selling-cars-gogs-data
或者更好地使用环境变量来设置卷名称以获得更动态的 docker 组合设计,如下所示:
volumes:
gogs-data:
external:
name: "${MY_GOGS_DATA_VOLUME}"
然后像这样开始 docker 撰写:
env MY_GOGS_DATA_VOLUME='selling-cars-gogs-data' docker-compose up
希望这有帮助,如果您想了解更多信息,这里还有一个 link 到 docker 组合外部卷文档:https://docs.docker.com/compose/compose-file/#external
您几乎可以将所有东西都制作成外部的,包括容器 link 连接到其他 docker 组合容器。
如果我 运行 此命令,卷安装并且容器以初始化状态按预期启动:
docker run --name gogs --net mk1net --ip 203.0.113.3 -v gogs-data:/data -d gogs/gogs
但是,如果我 运行 相应的 docker-compose
脚本,卷不会挂载。容器仍在启动,但没有它在启动时读取的状态。
version: '3'
services:
gogs:
image: gogs/gogs
ports:
- "3000:3000"
volumes:
- gogs-data:/data
networks:
mk1net:
ipv4_address: 203.0.113.3
volumes:
gogs-data:
networks:
mk1net:
ipam:
config:
- subnet: 203.0.113.0/24
有什么想法吗?
查看您的命令,gogs-data
卷是在 docker 撰写文件之外定义的,可能使用类似的东西:
docker volume create gogs-data
如果是这样,那么您需要在 docker 撰写文件中将其指定为外部,如下所示:
volumes:
gogs-data:
external: true
您还可以为外部卷定义不同的名称,并在 docker 撰写文件中继续使用当前卷名称以避免命名冲突,例如,假设您的项目是关于销售汽车的,那么您想要调用外部卷 selling-cars-gogs-data
但希望在 docker 撰写文件中保持简单如 gogs-data
,那么您可以这样做:
volumes:
gogs-data:
external:
name: selling-cars-gogs-data
或者更好地使用环境变量来设置卷名称以获得更动态的 docker 组合设计,如下所示:
volumes:
gogs-data:
external:
name: "${MY_GOGS_DATA_VOLUME}"
然后像这样开始 docker 撰写:
env MY_GOGS_DATA_VOLUME='selling-cars-gogs-data' docker-compose up
希望这有帮助,如果您想了解更多信息,这里还有一个 link 到 docker 组合外部卷文档:https://docs.docker.com/compose/compose-file/#external
您几乎可以将所有东西都制作成外部的,包括容器 link 连接到其他 docker 组合容器。