【问题标题】:Docker compose: is it possible to mount a local file to a remote daemon?Docker compose:是否可以将本地文件挂载到远程守护进程?
【发布时间】:2016-09-16 12:26:12
【问题描述】:

使用场景是这样的:

我已经使用 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 daemon 的更好方法是什么?

【问题讨论】:

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


【解决方案1】:

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

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

这是reference docs

【讨论】:

  • 我实际上将在我的 CI 服务器上运行该命令。我发现运行 scp 需要我的私钥,我不想上传到 jenkins
猜你喜欢
  • 2018-12-20
  • 1970-01-01
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 2020-06-03
  • 2018-11-08
  • 1970-01-01
相关资源
最近更新 更多