Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker compose:是否可以将本地文件装载到远程守护进程?_Docker_Docker Compose_Docker Machine_Docker Volume - Fatal编程技术网

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

Docker compose:是否可以将本地文件装载到远程守护进程?,docker,docker-compose,docker-machine,docker-volume,Docker,Docker Compose,Docker Machine,Docker Volume,使用场景如下所示: 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 export DOCKER_TLS_V

使用场景如下所示:

  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
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://x.y:2376"
export DOCKER_CERT_PATH="somedir"
docker-compose up -d
我有一个AWS EC2实例已经配置了docker machine

我想使用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
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://x.y:2376"
export DOCKER_CERT_PATH="somedir"
docker-compose up -d
如果我在本地使用
docker compose up-d
,它会工作,因为本地机器上存在“/home/ubuntu/nginx.tmpl”文件

但是如果我尝试使用docker compose来控制AWS中的远程守护进程,如下所示:

  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
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守护程序的更好方法是什么?

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

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

以下是。

我已经回答了同样的问题,实际上我将从我的CI服务器运行该命令。我发现运行scp需要我的私钥,我不想上传到jenkins