Docker compose:是否可以将本地文件挂载到远程守护进程?

Cui*_*崔鹏飞 5 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
Run Code Online (Sandbox Code Playgroud)

如果我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
Run Code Online (Sandbox Code Playgroud)

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

我试过在远程机器同目录下创建这样的文件,可以用,但是感觉不对……

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

Elt*_*man 1

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

 docker-machine scp ~/my/local/nginx.tmpl machine-name:/home/ubuntu/nginx.tmpl
Run Code Online (Sandbox Code Playgroud)

这是参考文档