Docker撰写:是否可以将本地文件挂载到远程守护程序?

时间:2016-09-16 12:26:13

标签: docker docker-compose docker-machine docker-volume

使用场景如下:

我已经使用 docker-machine 配置了AWS EC2实例。

我想使用 docker-compose 远程在该EC2实例上启动一些容器。

撰写文件的部分如下:

  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "8888:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - /home/ubuntu/nginx.tmpl:/app/nginx.tmpl:ro

如果我在本地使用docker-compose up -d,那么它就会起作用,因为" /home/ubuntu/nginx.tmpl "文件存在于我的本地计算机上。

但是,如果我尝试使用 docker-compose 来控制AWS中的远程守护程序,请执行以下操作:

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://x.y:2376"
export DOCKER_CERT_PATH="somedir"
docker-compose up -d

它会失败,因为" /home/ubuntu/nginx.tmpl "文件在远程计算机中不存在。

我已经尝试在同一目录下的远程计算机上创建这样的文件,它可以工作,但感觉不对......

将本地文件挂载到远程docker守护程序的更好方法是什么?

1 个答案:

答案 0 :(得分:1)

Docker Machine有scp命令,因此您可以将本地文件复制到远程计算机,反之亦然:

 docker-machine scp ~/my/local/nginx.tmpl machine-name:/home/ubuntu/nginx.tmpl

这是reference docs