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