Как использовать 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 ответ:
Да вы можете использовать
docker-machine
для обеспечения и управленияdocker-engine
на сервере linux, то есть импортировать существующий сервер linux какDocker Machine
. Для этого существует несколько требований:
- поддерживаются только некоторые ОС, см. https://docs.docker.com/machine/drivers/os-base / . поддержка CentOS на данный момент является экспериментальной
Ваш SSH-ключ должен быть либо без пароля, либо управляться с помощьюssh-agent
.- ваша учетная запись пользователя на сервере должна иметь возможность запускать sudo без пароль (смотрите эту ссылку https://stackoverflow.com/a/24648413/4190526 о том, как это сделать)
Как только требования будут выполнены, вы можете импортировать ваш сервер как Докер-машину, используя один из следующих методов
Если ваш SSH-ключ не имеет пароля
docker-machine create -d generic --generic-ip-address server-ip --generic-ssh-key key-file --generic-ssh-user username machine-name
Если вы используете
ssh-agent
для управления ключомdocker-machine create -d generic --generic-ip-address server-ip --generic-ssh-user username machine-name
Тогда вы сможете использовать команды
docker-machine
на вашем локальном компьютере для управления этим удаленным сервером. это означает что вы можете запустить, остановить, убить, перезапустить сервер, так что используйте его с особой осторожностьюТакже, В общем, из-за требований, перечисленных в начале, и того, что вы сможете остановить или убить сервер, я бы не рекомендовал этого делать. Гораздо безопаснее использовать SSH на вашем сервере и делать все оттуда.