我设置了一个包含Docker的Vagrant VM
Vagrant.configure("2") do |config|
config.vm.define "node1" do |node1|
node1.vm.box = "ubuntu/xenial64"
node1.vm.provision :shell, path: "../docker-installation.sh"
node1.vm.network "private_network", ip: "192.168.33.10"
end
end
我还在主机上安装了Docker,从那里我想在VM内调用Docker。
我的第一个尝试是这样做:
docker -H 192.168.33.10 info
但是,这将输出以下消息:
Cannot connect to the Docker daemon at tcp://192.168.33.10:2375. Is the docker daemon running?
我猜这是由于docker守护程序正在运行而导致连接本身存在问题。我认为必须配置SSH。
我必须如何在主机上配置Docker客户端,才能连接到Vagrant VM中的Docker守护程序?
答案 0 :(得分:1)
我很高兴知道了这一点。也许答案对其他人有帮助。
通过
查找private_key的路径vagrant ssh-config
从private_key生成pem文件
openssl rsa -in path/private_key -outform pem > key.pem
chmod 600 key.pem
将用户添加到docker组:
sudo usermod -aG docker $USER
sudo su vagrant
打开SSL隧道(有关详细信息:https://sysadmins.co.za/forwarding-the-docker-socket-via-a-ssh-tunnel-to-execute-docker-commands-locally/)
screen -S docker
sudo ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -i /path/key.pem -NL 127.0.0.1:2375:/var/run/docker.sock vagrant@192.168.33.10
致电Docker
docker -H 127.0.0.1:2375 info