运行 docker 通过 ssh 在远程机器上执行命令
Running docker commands on remote machine through ssh
我有两台机器:
- Ubuntu工作站运行宁docker
- Mac书 Mac OS
我希望能够在我的 Ubuntu 工作站上通过 ssh 从 MacOS 运行 docker 命令。
Docker 在 Ubuntu 上执行 运行ning 命令时工作正常。
SSH 工作正常(基于实体保存的密钥)。
我试过创建上下文:
docker context create ubuntu --docker "host=ssh://myuser@192.168.1.100"
docker context use ubuntu
docker run -it alpine sh
我得到:
docker: Cannot connect to the Docker daemon at http://docker. Is the docker daemon running?.
我在尝试时遇到同样的错误:
docker -H ssh://myuser@192.168.1.100 run -it alpine sh
我发现的解决方案似乎没有任何帮助。
PS: 192.168.1.100 仅用于提问。当 运行ning 命令时,我使用真实 IP,这是正确的,不会与任何东西冲突。直接 SSH 运行良好。
您确定 Ubuntu 上的 ip 是 192.168.1.1
吗?
因为我认为这是你的路由器 ip :)
你可以 post ip a
来自你的 Ubuntu 吗?
对于您的情况,您可以使用 docker-machine
:
安装:
base=https://github.com/docker/machine/releases/download/v0.16.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
sudo mv /tmp/docker-machine /usr/local/bin/docker-machine &&
chmod +x /usr/local/bin/docker-machine
Run/create:
docker-machine create \
--driver generic \
--generic-ip-address=put_here_ip_of_remote_docker \
--generic-ssh-key ~/.ssh/id_rsa \
vm_123
检查:
docker-machine ls
docker-machine ip vm_123
docker-machine inspect vm_123
使用:
docker-machine ssh vm_123
docker run -it alpine sh
exit
exit
eval $(docker-machine env -u)
额外提示:
您还可以通过以下命令将 vm_123
设置为活动 docker 机器:
eval $(docker-machine env vm_123)
docker run -it alpine sh
exit
eval $(docker-machine env -u)
并取消设置 docker 机器 vm_123
通过此命令激活:
eval $(docker-machine env -u)
https://docs.docker.com/machine/drivers/generic/
https://docs.docker.com/machine/examples/aws/
我有两台机器:
- Ubuntu工作站运行宁docker
- Mac书 Mac OS
我希望能够在我的 Ubuntu 工作站上通过 ssh 从 MacOS 运行 docker 命令。 Docker 在 Ubuntu 上执行 运行ning 命令时工作正常。 SSH 工作正常(基于实体保存的密钥)。
我试过创建上下文:
docker context create ubuntu --docker "host=ssh://myuser@192.168.1.100"
docker context use ubuntu
docker run -it alpine sh
我得到:
docker: Cannot connect to the Docker daemon at http://docker. Is the docker daemon running?.
我在尝试时遇到同样的错误:
docker -H ssh://myuser@192.168.1.100 run -it alpine sh
我发现的解决方案似乎没有任何帮助。
PS: 192.168.1.100 仅用于提问。当 运行ning 命令时,我使用真实 IP,这是正确的,不会与任何东西冲突。直接 SSH 运行良好。
您确定 Ubuntu 上的 ip 是 192.168.1.1
吗?
因为我认为这是你的路由器 ip :)
你可以 post ip a
来自你的 Ubuntu 吗?
对于您的情况,您可以使用 docker-machine
:
安装:
base=https://github.com/docker/machine/releases/download/v0.16.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
sudo mv /tmp/docker-machine /usr/local/bin/docker-machine &&
chmod +x /usr/local/bin/docker-machine
Run/create:
docker-machine create \
--driver generic \
--generic-ip-address=put_here_ip_of_remote_docker \
--generic-ssh-key ~/.ssh/id_rsa \
vm_123
检查:
docker-machine ls
docker-machine ip vm_123
docker-machine inspect vm_123
使用:
docker-machine ssh vm_123
docker run -it alpine sh
exit
exit
eval $(docker-machine env -u)
额外提示:
您还可以通过以下命令将 vm_123
设置为活动 docker 机器:
eval $(docker-machine env vm_123)
docker run -it alpine sh
exit
eval $(docker-machine env -u)
并取消设置 docker 机器 vm_123
通过此命令激活:
eval $(docker-machine env -u)
https://docs.docker.com/machine/drivers/generic/
https://docs.docker.com/machine/examples/aws/