在数字海洋中创build了Ubuntu 16.04 Droplet之后,我试图用Docker-machine从本地机器连接它,但是服务器的docker不会启动。 我实际上尝试了两种方式:第一个在服务器上安装了docker,第二个没有,因为它在执行命令时显示docker-machine create ...它会安装并覆盖服务器上的任何docker,最终创build一个失败的实例那边的docker工人 我在防火墙中启用了端口22,80,443和2376。 机器是否创build了一个选项,不在主机上安装docker?
$ docker-machine create --driver=generic \ --generic-ip-address=XXX.XXX.XXX.XXX \ --generic-ssh-user=rinaldi \ --generic-ssh-key=C:/Users/[...]/id_rsa \ --generic-ssh-port=22 \ DigitalOcean Running pre-create checks... Creating machine... (DigitalOcean) 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 ubuntu(systemd)... Installing Docker... Copying certs to the local machine directory... Copying certs to the remote machine... Setting Docker configuration on the remote daemon... Error creating machine: Error running provisioning: ssh command error: command : sudo systemctl -f start docker err : exit status 1 output : Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
这是服务器上的systemctl -xe
-- Unit docker.service has finished shutting down. Sep 19 02:11:24 DigitalOcean systemd[1]: Closed Docker Socket for the API. -- Subject: Unit docker.socket has finished shutting down -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit docker.socket has finished shutting down. Sep 19 02:11:24 DigitalOcean systemd[1]: Stopping Docker Socket for the API. -- Subject: Unit docker.socket has begun shutting down -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit docker.socket has begun shutting down. Sep 19 02:11:24 DigitalOcean systemd[1]: Starting Docker Socket for the API. -- Subject: Unit docker.socket has begun start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit docker.socket has begun starting up. Sep 19 02:11:24 DigitalOcean systemd[1]: Listening on Docker Socket for the API. -- Subject: Unit docker.socket has finished start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit docker.socket has finished starting up. -- -- The start-up result is done. Sep 19 02:11:24 DigitalOcean systemd[1]: docker.service: Start request repeated too quickly. Sep 19 02:11:24 DigitalOcean systemd[1]: Failed to start Docker Application Container Engine. -- Subject: Unit docker.service has failed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit docker.service has failed. -- -- The result is failed. Sep 19 02:11:24 DigitalOcean systemd[1]: docker.socket: Unit entered failed state. Sep 19 02:11:40 DigitalOcean sshd[3898]: Did not receive identification string from [...] Sep 19 02:11:40 DigitalOcean sshd[6889]: Did not receive identification string from [...] Sep 19 02:12:32 DigitalOcean kernel: [UFW BLOCK] IN=eth0 OUT= MAC=[...] SRC=[...] DST=[...] LEN=40 TOS=0x00 PREC=0x0 Sep 19 02:12:40 DigitalOcean sudo[7183]: rinaldi : TTY=pts/0 ; PWD=/home/rinaldi ; USER=root ; COMMAND=/bin/journalctl -xe Sep 19 02:12:40 DigitalOcean sudo[7183]: pam_unix(sudo:session): session opened for user root by rinaldi(uid=0)
看起来这是docker-machine 0.11上的一个bug,但它固定在0.12上,如果你需要在0.11上工作,那么这里就是解决scheme。
replace/etc/systemd/system/docker.service.d/10-machine.conf这一行,然后运行systemctl守护进程 – 重新加载应该修复问题。
# ExecStart=/usr/bin/docker daemon -H ... ExecStart=/usr/bin/dockerd -H ...
资料来源: https : //github.com/docker/for-linux/issues/11#issuecomment-327441650