Подключитесь к Docker Daemon в Vagrant VM с хоста через Docker Client - PullRequest
0 голосов
/ 24 августа 2018

Я установил Vagrant VM, которая содержит Docker

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 на свой хост-компьютер, и оттуда мне нравится вызывать 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 на моем хосте, чтобы я мог подключиться к демону Docker в моей Vagrant VM?

1 Ответ

0 голосов
/ 25 августа 2018

Я рад, что понял это.Может быть, ответ полезен для кого-то еще.

  1. Поиск пути к private_key через

    vagrant ssh-config
    
  2. Создание файла pem из private_key

    openssl rsa -in path/private_key -outform pem > key.pem
    chmod 600 key.pem
    
  3. Добавить пользователя в группу Docker:

    sudo usermod -aG docker $USER
    sudo su vagrant
    
  4. Открыть туннель 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
    
  5. Докер вызовов

    docker -H 127.0.0.1:2375 info
    
...