Как использовать docker-машину на частном сервере?


Я хочу установить Docker hosts на сервере под управлением CentOS7 (который работает в Virtualbox на моем компьютере, если это имеет значение).

Я знаю, что существуют драйверы для нескольких облачных провайдеров (Amazon, Google, DigitalOcean и т. д.), Но я не могу понять, что делать, если я хочу использовать свой собственный частный сервер.

Я пробовал использовать --driver generic с IP гостевой ОС и SSH-ключ, который я создал и скопировал с помощью ssh-keygen и ssh-copy-id, но я получил

$ docker-machine create -d generic --generic-ip-address=<IP> --generic-ssh-key ~/.ss
h/id_rsa --generic-ssh-user <user> centos

Running pre-create checks...
Creating machine...
(centos) Importing SSH key...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with centos...
Error creating machine: Error running provisioning: exit status 1

Что я делаю не так?

Может ли он иметь что-то связанное с тем, что я установил CentOS в Virtualbox?

1 3

1 ответ:

Да вы можете использовать docker-machine для обеспечения и управления docker-engine на сервере linux, то есть импортировать существующий сервер linux как Docker Machine. Для этого существует несколько требований:

  1. поддерживаются только некоторые ОС, см. https://docs.docker.com/machine/drivers/os-base / . поддержка CentOS на данный момент является экспериментальной
  2. Ваш SSH-ключ должен быть либо без пароля, либо управляться с помощью ssh-agent.
  3. ваша учетная запись пользователя на сервере должна иметь возможность запускать sudo без пароль (смотрите эту ссылку https://stackoverflow.com/a/24648413/4190526 о том, как это сделать)

Как только требования будут выполнены, вы можете импортировать ваш сервер как Докер-машину, используя один из следующих методов

  1. Если ваш SSH-ключ не имеет пароля

    docker-machine create -d generic --generic-ip-address server-ip --generic-ssh-key key-file --generic-ssh-user username machine-name
    
  2. Если вы используете ssh-agent для управления ключом

    docker-machine create -d generic --generic-ip-address server-ip --generic-ssh-user username machine-name
    

Тогда вы сможете использовать команды docker-machine на вашем локальном компьютере для управления этим удаленным сервером. это означает что вы можете запустить, остановить, убить, перезапустить сервер, так что используйте его с особой осторожностью

Также, В общем, из-за требований, перечисленных в начале, и того, что вы сможете остановить или убить сервер, я бы не рекомендовал этого делать. Гораздо безопаснее использовать SSH на вашем сервере и делать все оттуда.