请注意,我的本地计算机名为mylocal
,远程计算机名为myremote1
,myremote2
,myremote3
,myremote4
。我需要将docker命令发送到远程机器来管理容器。有没有办法可以从本地机器轻松管理这些容器?
答案 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和我们创建的隧道。一点点工作,但更安全