使用主机中的目录挂载 docker 映像中目录中的文件
mount files present in a directory in docker image with the directory in the host
我有一个 docker 映像,其中目录 /opt/app/config
中几乎没有配置文件,现在我想将此目录挂载到主机目录,以便可以从主机访问配置文件.
我的docker撰写如下
web:
image: web:v1
container_name: web
volumes:
- ./config:/opt/app/config
command: ["tail","-f","/dev/null"]
ports:
- 5000:5000
如果我 运行 使用 docker run -it web:v1 bash
的个人网络图像并执行 ls /opt/app/config
我可以看到配置文件
但使用 docker-compose up
容器正在创建,但文件未反映在主机路径中。
当我执行 ls ./config
时,目录是空的。预期的行为是 /opt/app/config
的 docker 图像中存在的文件应该反映在我的主机 ./config
目录中。
当您将主机目录挂载到容器中时,主机目录的内容会影响容器的内容。
如果你想访问主机上容器中的文件,你可以按如下方式挂载命名卷。
services:
web:
image: web:v1
container_name: web
volumes:
- config:/opt/app/config
command: ["tail","-f","/dev/null"]
ports:
- 5000:5000
volumes:
config:
然后您可以使用docker inspect config
找到配置卷的路径并查看容器中的内容。
如果你想在主机上指定路径,你可以在撰写文件中指定命名卷的路径,如下所示。
volumes:
config:
driver_opts:
o: bind
device: /tmp/2 ------> Path on host machine
我有一个 docker 映像,其中目录 /opt/app/config
中几乎没有配置文件,现在我想将此目录挂载到主机目录,以便可以从主机访问配置文件.
我的docker撰写如下
web:
image: web:v1
container_name: web
volumes:
- ./config:/opt/app/config
command: ["tail","-f","/dev/null"]
ports:
- 5000:5000
如果我 运行 使用 docker run -it web:v1 bash
的个人网络图像并执行 ls /opt/app/config
我可以看到配置文件
但使用 docker-compose up
容器正在创建,但文件未反映在主机路径中。
当我执行 ls ./config
时,目录是空的。预期的行为是 /opt/app/config
的 docker 图像中存在的文件应该反映在我的主机 ./config
目录中。
当您将主机目录挂载到容器中时,主机目录的内容会影响容器的内容。
如果你想访问主机上容器中的文件,你可以按如下方式挂载命名卷。
services:
web:
image: web:v1
container_name: web
volumes:
- config:/opt/app/config
command: ["tail","-f","/dev/null"]
ports:
- 5000:5000
volumes:
config:
然后您可以使用docker inspect config
找到配置卷的路径并查看容器中的内容。
如果你想在主机上指定路径,你可以在撰写文件中指定命名卷的路径,如下所示。
volumes:
config:
driver_opts:
o: bind
device: /tmp/2 ------> Path on host machine