报错:Docker-TLS远程连接失败

报错信息:

[root@client1 docker]# docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H tcp://master:2376 version
Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:03:45 2020
 OS/Arch:           linux/amd64
 Experimental:      false
error during connect: Get https://master:2376/v1.40/version: x509: certificate has expired or is not yet valid

提示证书不可用,检查后发现两台主机的时间不同步,导致证书失效。
解决:两台主机都同步阿里云的时间

#安装ntpdate服务
[root@client1 docker]# yum -y install ntpdate
[root@client1 docker]# ntpdate ntp.aliyun.com
 3 Dec 14:08:53 ntpdate[58308]: step time server 203.107.6.88 offset 246351.900684 sec

#查看两台主机当前时间是否同步
[root@client1 docker]# date
20201203日 星期四 14:08:59 CST

如果同步失败,检查虚拟机的时间设置,时区选择。

再进行连接,查看版本成功

[root@client1 docker]# docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H tcp://master:2376 version
Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:03:45 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46d9d
  Built:            Wed Sep 16 17:02:21 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.3.7
  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
### 解决方案 当尝试通过 `sudo docker run hello-world` 命令启动容器并遇到错误时,可能的原因包括网络连接问题、DNS解析失败Docker配置不当。以下是几种常见情况及其对应的解决方案。 #### DNS解析失败 如果收到类似于“no such host”的错误消息,则可能是由于本地计算机无法正确解析域名造成的。可以考虑修改系统的 `/etc/resolv.conf` 文件来指定可靠的公共DNS服务器地址,例如Google提供的8.8.8.8[^3]。 ```bash echo 'nameserver 8.8.8.8' | sudo tee /etc/resolv.conf > /dev/null ``` #### 网络超时 对于TLS握手超时的情况,这通常意味着客户端与远程主机之间的安全通信建立过程出现了延迟或者中断。一种方法是增加环境变量中的HTTP(S)_PROXY设置以改善对外部资源访问的速度和稳定性;另一种更简单的办法是在国内环境中利用加速器服务提供商所提供的镜像站点作为替代源[^2]。 按照以下步骤操作: 1. 打开终端窗口; 2. 编辑Docker守护程序的JSON配置文件(一般位于`/etc/docker/daemon.json`),如果没有该文件则创建它; 3. 添加如下内容到此文件内: ```json { "registry-mirrors": ["https://hub.atomgit.com"] } ``` 4. 使用命令重启Docker服务使更改生效: ```bash sudo systemctl restart docker ``` 以上措施应该能够有效缓解因网络状况不佳而导致的问题,并允许顺利拉取所需的Hello World测试镜像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值