【发布时间】:2021-03-28 21:19:36
【问题描述】:
我有一个我无法理解的问题。我正在使用 docker 来运行某些容器,但我至少有一个卷有问题,我不想问是否有人可以给我提示我做错了什么。我以 Nifi-Ingestion 为例,但它会影响更多的容器体积。
首先说一下我使用的版本:
- Docker 版本 19.03.8,构建 afacb8b7f0
- docker-compose 版本 1.27.4,构建 40524192
- Ubuntu 20.04.1 LTS
现在,让我们在我的工作 docker-compose-file 中显示卷:
在我的容器中,配置如下:
volumes:
- nifi-ingestion-conf:/opt/nifi/nifi-current/conf
在我的 docker-compose 文件下面,它被定义为一个普通的命名卷:
volumes:
nifi-ingestion-conf:
这是我想要开始工作的 docker-compose 的 sn-p
在我的容器中,在这种情况下配置如下(我的 STORAGE_VOLUME_PATH 定义为 /mnt/storage/docker_data):
volumes:
- ${STORAGE_VOLUME_PATH}/nifi-ingestion-conf:/opt/nifi/nifi-current/conf
在底部,我想有一些事情要做,但我不知道我需要在这里做什么。在这种情况下,它与工作中的 docker-compose 相同:
volumes:
nifi-ingestion-conf:
那么,现在我的问题是什么?
我有两个 docker-compose 文件。一个使用普通的命名卷,一个使用我的额外挂载路径中的卷。当我运行容器时,卷的工作方式似乎有所不同,因为文件是用第一种风格编写的,而不是第二种风格。我的挂载路径是在第二个版本中生成的,所以我在 .env 文件中的环境变量没有任何问题。
提示:/mnt/storage/docker_data 是 NFS 挂载,但我的机器拥有该共享的全部权限。
这是我挂载该卷的 fstab 条目(也许我必须设置其他选项):
10.1.0.2:/docker/data /mnt/storage/docker_data nfs auto,rw
更大的 sn-ps
如果 docker-compose(我需要剪切和删除有信心的数据,我的问题不是它不起作用,只是卷的行为不同。这一卷的所有内容都在代码。):
version: "3"
services:
nifi-ingestion:
image: my image on my personal repo
container_name: nifi-ingestion
ports:
- 0000
labels:
- app-specivic
volumes:
- ${STORAGE_VOLUME_PATH}/nifi-ingestion-conf:/opt/nifi/nifi-current/conf
#working: - nifi-ingestion-conf:/opt/nifi/nifi-current/conf
environment:
- app-specivic
networks:
- cnetwork
volumes:
nifi-ingestion-conf:
networks:
cnetwork:
external: false
ipam:
driver: default
config:
- subnet: 192.168.1.0/24
这里的 env (只有我们正在使用的值)
STORAGE_VOLUME_PATH=/mnt/storage/docker_data
【问题讨论】:
标签: docker docker-compose volumes