如何将文件挂载到docker / compose容器?

时间:2019-02-11 20:52:14

标签: google-cloud-platform docker-compose

我想使用我在GCP上的现有compose yaml文件,将一些容器部署到使用GCP Container-Optimized OS映像创建的GCE VM。容器之一需要来自主机的文件。对于容器优化的OS实例,基于https://cloud.google.com/community/tutorials/docker-compose-on-container-optimized-os的教程,我无法运行docker-compose,而必须使用docker/compse容器。我的容器之一是cloud-sql-proxy,它需要一个密钥json文件。到目前为止,我还没有找到将文件从主机传递到容器的解决方案。

我的问题是: 是否可以将卷从主机传递到Dockercompose文件中定义的容器?我不知道如何将文件添加到打击命令中的-v arg之一:

docker run --rm \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v "$PWD:/rootfs/$PWD" \
    -w="/rootfs/$PWD" \
    docker/compose:1.13.0 up

2 个答案:

答案 0 :(得分:0)

docs中所述,可以使用-v选项将docker卷安装在docker container run命令上。因此您只需指定自己的-v file/path/on/host:/file/path/in/container卷即可。

如果您在docker-compose文件中进行操作,则与其几乎相似-您指定一个volumes选项并定义音量:

version: "3.1"
services:
  someName:
    image: some/image
    volumes:
    - "file/path/on/host:/file/path/in/container"

答案 1 :(得分:0)

玩转之后,我猜想如果我使用docker / compose image而不是docker-compse二进制文件,那么最重要的部分是为撰写文件本身设置一个卷:

 docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock   -v /home/Documents/labs:$(pwd) -w "$(pwd)" docker/compose:1.23.2 -f ./docker-compose run service sh

在撰写文件中,卷是从主机挂载到容器的。没有虚拟Docker主机:只有一个Docker主机是我自己的。 docker/compose就像撰写文件中的任何服务一样。