docker环境迁移后启动过程中遇到的报错

背景

  在客户现场支持的时候,将本地的虚拟机(开启docker)导出后直接导入到客户的服务器中,由于客户网络环境不能连外网,我们本地的虚拟机配置都是按照能连外网来配置的,导入后启动docker的时候出现多个报错,现将错误记录如下

问题1:  Process: 2934 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock (code=exited, status=1/FAILURE
     Main PID: 2934 (code=exited, status=1/FAILURE)

 问题原因:根据错误提示,docker的启动配置文件里有错误,因为之前在测试网里该虚拟机的docker配置过可视化图形工具Portainer的客户端,启动配置项里的ExecStart修改过,导致无法启动,在/lib/systemd/system/docker.service将该参数改回默认即可:ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

 

问题2:配置的公司内部的docker镜像源没生效,拉取镜像时报错:Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

问题原因:执行systemctl daemon-reload systemctl restart docker都不能生效,这个没找到原因,但是有规避办法,可以在pull的时候直接指定docker镜像源,如docker pull mirrors.sangfor.org/feltsecure/owasp-bwapp

 

问题3:拉取镜像过程中报Error response from daemon: Get https://mirrors.sangfor.org/v2/: x509: certificate signed by unknow

问题原因:该客户公司把https证书换成了他们自己的证书

解决办法:把替换后的证书直接用openssl拉下来,然后加入到系统(我是Ubuntu)系统证书中,然后使用update-ca-certificates更新,最后重启docker服务


$ echo -n | openssl s_client -showcerts -connect mirrors.sangfor.org:443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /usr/local/share/ca-certificates/cloudfront.crt

update-ca-certificates

 

目前共就遇到这三个问题,解决后导入的docker已可正常使用

 

 

posted on 2021-04-29 10:21  隔壁家的大白菜  阅读(1028)  评论(0编辑  收藏  举报