如何将docker命令发送到另一台机器上的容器?

时间:2017-07-26 15:00:13

标签: docker

请注意,我的本地计算机名为mylocal,远程计算机名为myremote1myremote2myremote3myremote4。我需要将docker命令发送到远程机器来管理容器。有没有办法可以从本地机器轻松管理这些容器?

1 个答案:

答案 0 :(得分:0)

通过使用端口侦听公开docker服务器可以轻松实现这一点。有两种方法可以做到这一点

检查以下网址

https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-socket-option

聆听所有界面

通过添加-H tcp://0.0.0.0:2376更新docker服务以侦听所有接口。在这种情况下,您可以通过设置DOCKER_HOST

从系统执行命令到远程机器
export DOCKER_HOST=tcp://<remotemachine1ip>:2376
docker run -it busybox

这将运行远程计算机上的busybox容器并为您打开一个shell。这不是一种建议的方法,因为如果IP是可公开访问的,那么有些人可以直接访问您的系统并获得对它的完全访问权。

聆听本地界面

更好的方法是侦听本地接口。因此,您将-H tcp://127.0.0.1:2376添加到服务命令。现在,docker守护程序仅侦听localhost并且不会公开。

因此,要在我们的系统上公开该端口,我们使用ssh隧道代理

ssh -L 2376:127.0.0.1:2376 <user>@remoteip1

上面的命令将远程计算机的2376端口映射到我们的本地2376端口,直到ssh连接打开。关闭ssh连接后,隧道也会关闭。因此,您可以使用DOCKER_HOST

访问远程计算机
export DOCKER_HOST=tcp://127.0.0.1:2376
docker run -it busybox

与以前方法的不同之处在于我们指定的IP和我们创建的隧道。一点点工作,但更安全