0

0

如何解决docker-machine无法启动的问题

藏色散人

藏色散人

发布时间:2022-01-04 16:07:36

|

4311人浏览过

|

来源于php中文网

原创

docker-machine无法启动的解决办法:1、使用“docker-machine ls”查看主机状态;2、卸载现有docker,并重新安装;3、启动docker,并查看docker服务状态即可。

如何解决docker-machine无法启动的问题

本文操作环境:centos7系统、Docker 19.03.9版、Dell G3电脑。

如何解决docker-machine无法启动的问题?

Centos7 docker-machine 部署docker主机 docker服务启动失败

背景:

        计划使用Centos7 Core 作为 docker host,搭建测试平台,只有4台主机,就使用Swarm方案。

环境:

主机名称 系统 IP地址 前置工作
docker-host1 CentOS7 Core xxx.xxx.xxx.80

更新yum源,使用aliyun镜像,更新到最新状态

配置docker-machine 使用的用户,sudo免密码

docker-host2 CentOS7 Core xxx.xxx.xxx.81

更新yum源,使用aliyun镜像,更新到最新状态

配置docker-machine 使用的用户,sudo免密码

docker-host3 CentOS7 Core xxx.xxx.xxx.82

更新yum源,使用aliyun镜像,更新到最新状态

配置docker-machine 使用的用户,sudo免密码

docker-host4 CentOS7 Core xxx.xxx.xxx.83

更新yum源,使用aliyun镜像,更新到最新状态

配置docker-machine 使用的用户,sudo免密码

desktop ubuntu-18.04lts   配置免秘钥登录到docker-host

安装:

在工作desktop(Ubuntu)主机上安装 docker-machine,可以参考https://docs.docker.com/machine/install-machine/

首先安装 docker-host1:

docker-machine --debug create --driver generic --generic-ip-address=xxx.xxx.xxx.80   --generic-ssh-key=/home/sleeber/.ssh/id_rsa --generic-ssh-port=22 --generic-ssh-user=wntime docker-host1

Pascal基础教程 Pascal入门必备基础教程 CHM版
Pascal基础教程 Pascal入门必备基础教程 CHM版

无论做任何事情,都要有一定的方式方法与处理步骤。计算机程序设计比日常生活中的事务处理更具有严谨性、规范性、可行性。为了使计算机有效地解决某些问题,须将处理步骤编排好,用计算机语言组成“序列”,让计算机自动识别并执行这个用计算机语言组成的“序列”,完成预定的任务。将处理问题的步骤编排好,用计算机语言组成序列,也就是常说的编写程序。在Pascal语言中,执行每条语句都是由计算机完成相应的操作。编写Pascal程序,是利用Pasca

下载

安装最后输出,显示docker 服务无法启动:

sudo systemctl -f start docker
SSH cmd err, output: exit status 1: Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

Error creating machine: Error running provisioning: something went wrong running an SSH command
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.

notifying bugsnag: [Error creating machine: Error running provisioning: something went wrong running an SSH command
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.
]

使用docker-machine ls 查看主机状态:

:~/docker-test-env$ docker-machine ls
NAME         ACTIVE   DRIVER    STATE     URL                      SWARM   DOCKER    ERRORS
docker-host1   -        generic   Running   tcp://xxx.xxx.xxx.80:2376           Unknown   Unable to query docker version: Cannot connect to the docker engine endpoint

SSH到docker-host1 主机,手动启动docker服务

sudo systemctl start docker
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

按照提示查看状态

 systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/docker.service.d
           └─10-machine.conf
   Active: failed (Result: start-limit) since Thu 2020-05-28 20:41:39 EDT; 581ms ago
     Docs: https://docs.docker.com
  Process: 30463 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver overlay2 --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic (code=exited, status=1/FAILURE)
 Main PID: 30463 (code=exited, status=1/FAILURE)
谷歌一下:
https://github.com/moby/moby/issues/33931
https://www.jianshu.com/p/bd395fdf7611
https://www.jianshu.com/p/93518610eea1

按照搜索结果看,应该是10-machine.conf引起;但是删除了10-machine.conf文件,及文件夹还是无法启动

$ sudo rm /etc/systemd/system/docker.service.d/10-machine.conf
$ sudo systemctl start docker
Failed to start docker.service: Unit is not loaded properly: Invalid argument.
See system logs and 'systemctl status docker.service' for details.
$ sudo rm -rf /etc/systemd/system/docker.service.d/
$ sudo systemctl start docker
Failed to start docker.service: Unit is not loaded properly: Invalid argument.
See system logs and 'systemctl status docker.service' for details.

使用dockerd 直接能启动

$ sudo nohup dockerd &
[1] 31419
$ nohup: ignoring input and appending output to ‘nohup.out’

$ ll
total 4
-rw-------. 1 root root 2638 May 28 20:52 nohup.out
$ tail -f nohup.out
tail: cannot open ‘nohup.out’ for reading: Permission denied
tail: no files remaining
$ sudo tail -f nohup.out
time="2020-05-28T20:52:56.409646032-04:00" level=warning msg="Base device already exists and has filesystem xfs on it. User specified filesystem  will be ignored." storage-driver=devicemapper
time="2020-05-28T20:52:56.430282474-04:00" level=info msg="[graphdriver] using prior storage driver: devicemapper"
time="2020-05-28T20:52:56.430326847-04:00" level=warning msg="[graphdriver] WARNING: the devicemapper storage-driver is deprecated, and will be removed in a future release"
time="2020-05-28T20:52:56.433336530-04:00" level=warning msg="mountpoint for pids not found"
time="2020-05-28T20:52:56.433595847-04:00" level=info msg="Loading containers: start."
time="2020-05-28T20:52:56.529329426-04:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
time="2020-05-28T20:52:56.558933143-04:00" level=info msg="Loading containers: done."
time="2020-05-28T20:52:56.570819898-04:00" level=info msg="Docker daemon" commit=9d988398e7 graphdriver(s)=devicemapper version=19.03.9
time="2020-05-28T20:52:56.570873940-04:00" level=info msg="Daemon has completed initialization"
time="2020-05-28T20:52:56.585131361-04:00" level=info msg="API listen on /var/run/docker.sock"
^C
$ sudo docker version
Client: Docker Engine - Community
 Version:           19.03.9
 API version:       1.40
 Go version:        go1.13.10
 Git commit:        9d988398e7
 Built:             Fri May 15 00:25:27 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.9
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.10
  Git commit:       9d988398e7
  Built:            Fri May 15 00:24:05 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

使用systemctl 查看docker服务状态还是显示失败

$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/docker.service.d
           └─10-machine.conf
   Active: failed (Result: start-limit) since Thu 2020-05-28 20:49:52 EDT; 4min 59s ago
     Docs: https://docs.docker.com
  Process: 31051 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver overlay2 --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic (code=exited, status=1/FAILURE)
 Main PID: 31051 (code=exited, status=1/FAILURE)

May 28 20:49:50 test-java2 systemd[1]: docker.service failed.
May 28 20:49:52 test-java2 systemd[1]: docker.service holdoff time over, scheduling restart.
May 28 20:49:52 test-java2 systemd[1]: Stopped Docker Application Container Engine.
May 28 20:49:52 test-java2 systemd[1]: start request repeated too quickly for docker.service
May 28 20:49:52 test-java2 systemd[1]: Failed to start Docker Application Container Engine.
May 28 20:49:52 test-java2 systemd[1]: Unit docker.service entered failed state.
May 28 20:49:52 test-java2 systemd[1]: docker.service failed.
May 28 20:50:45 test-java2 systemd[1]: start request repeated too quickly for docker.service
May 28 20:50:45 test-java2 systemd[1]: Failed to start Docker Application Container Engine.
May 28 20:50:45 test-java2 systemd[1]: docker.service failed.

推断 docker-machine 安装docker还是有些问题,只能手动安装

注意:卸载docker后,需要手动删除/etc/systemd/system/docker.service.d/ 文件夹,否则新安装的docker也是不能启动的。

卸载现有docker,并重新安装

sudo yum remove docker* \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

sudo rm -rf /etc/systemd/system/docker.service.d/

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install -y docker-ce docker-ce-cli containerd.io

启动docker,并查看docker服务状态

$ sudo docker version
Client: Docker Engine - Community
 Version:           19.03.10
 API version:       1.40
 Go version:        go1.13.10
 Git commit:        9424aeaee9
 Built:             Thu May 28 22:18:06 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.10
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.10
  Git commit:       9424aeaee9
  Built:            Thu May 28 22:16:43 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

可以正常启动了

推荐学习:《docker视频教程

相关专题

更多
k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

249

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

494

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

399

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

436

2024.04.08

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1976

2024.08.16

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

800

2023.10.27

ubunt上安装和配置vnc
ubunt上安装和配置vnc

安装方法:安装VNC服务器、启动VNC服务器、设置VNC密码等等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

409

2023.12.28

ubuntu启动黑屏解决方法
ubuntu启动黑屏解决方法

ubuntu启动黑屏解决方法:检查是否是电源问题、检查内存是否接触不良、检查显卡问题等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

656

2023.12.28

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
光速学会docker容器
光速学会docker容器

共33课时 | 1.9万人学习

Docker 17 中文开发手册
Docker 17 中文开发手册

共0课时 | 0人学习

极客学院Docker视频教程
极客学院Docker视频教程

共33课时 | 17.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号