如何在远程主机上运行docker-compose?
我在本地撰写文件。 如何在DOCKER_HOST=<some ip>
上运行远程主机上的容器包docker-compose up -d
用DOCKER_HOST=<some ip>
docker-compose up -d
?
如果您不需要在本地计算机上运行Docker容器,但仍然在同一台远程计算机上,则可以在泊坞窗设置中更改此设置。
在本地机器上:可以用-H参数控制远程主机
docker -H tcp://remote:2375 pull ubuntu
要使用docker-compose,你应该在/ etc / default / docker中添加这个参数
在远程机器上
您应该从外部地址更改监听,而不是只有unix套接字。
有关更多详细信息,请参阅将Dock Docker绑定到另一个主机/端口或Unix套接字 。
如果您需要在多个远程主机上运行容器,则应该configurationDocker Swarm
从撰写文件
撰写CLI环境variables
DOCKER_HOST
设置docker守护进程的URL。 和Docker客户端一样,默认是unix:///var/run/docker.sock。
所以我们可以做
export DOCKER_HOST=tcp://192.168.1.2:2375 docker-compose up
假设您能够在远程机器上login,另一种在该机器上运行docker-compose
命令的方法是使用SSH
。
通过scp
将docker-compose.yml
文件复制到远程主机,通过SSH
运行docker-compose.yml
docker-compose
命令,最后通过删除文件清理。 这可能如下所示:
scp ./docker-compose.yml SomeUser@RemoteHost:/tmp/docker-compose.yml ssh SomeUser@RemoteHost "docker-compose -f /tmp/docker-compose.yml up" ssh SomeUser@RemoteHost "rm -f /tmp/docker-compose.yml"
你甚至可以使它更短,并通过使用docker-compose.yml
的-f -
选项来省略发送和移除docker-compose.yml
文件,这将期望docker-compose.yml
文件从stdin
传送。 只需将其内容input到SSH
命令中:
cat docker-compose.yml | ssh SomeUser@RemoteHost "docker-compose -f - up"
如果在docker-compose.yml
文件中使用环境variablesreplace,则上述命令不会将其replace为远程主机上的本地值,并且由于variables未设置,您的命令可能会失败。 为了解决这个问题,在将内容传递给SSH
命令之前,可以使用envsubst实用程序用内存中的本地值replacevariables:
envsubst < docker-compose.yml | ssh SomeUser@RemoteHost "docker-compose up"
- 运行命令创build一个新的Docker容器
- 覆盖来自docker-compose的envvariables
- 连接Docker Swarm集群时出错 – wsarecv:现有连接被远程主机强制closures
- Alpine Linux的“–upgrade add”命令的解释
- 运行时Docker OSX端口映射错误:exec
- 是否有可能特定自定义规则在Kubernetes / Docker中运行新的容器?
- 如何在使用Docker Windows Beta时访问VM Linux主机上的shell
- 尝试login到ECR失败,出现-no-include-email错误
- 无法为COPY创builddocker镜像失败:stat / var / lib / docker / tmp / docker-builder错误