Docker开启远程访问 -Centos/7

在作为docker远程服务的centos7机器中配置:

1、在/usr/lib/systemd/system/docker.service,配置远程访问。主要是在[Service]这个部分,加上下面两个参数

查找docker.service 位置

find / -name docker.service

 

# vim /usr/lib/systemd/system/docker.service
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

 

 

2、docker重新读取配置文件,重新启动docker服务

# systemctl daemon-reload

# systemctl restart docker

3、查看docker进程,发现docker守护进程在已经监听2375的tcp端口

# ps -ef|grep docker
root     26208     1  0 23:51 ?        00:00:00 /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

 

4、查看系统的网络端口,发现tcp的2375端口,的确是docker的守护进程在监听

 

# netstat -tulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      886/sshd            
tcp6       0      0 [::]:2375               [::]:*                  LISTEN      26208/dockerd

 

5、这里拿本地的ubuntu做客户端,来访问阿里云上centos7的docker服务,访问成功。139.129.130.123是阿里云上的centos7机器公网ip。

 

$ sudo docker -H tcp://139.129.130.123:2375 images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.6                 f8fe303bcac2        4 days ago          298MB

6、浏览器访问地址

http://139.129.130.123:2375/info

   http://192.168.128.162:2375/v1.38/images/json?filters={"reference":{"mysql":true}}

<think>好的,我现在需要帮助用户解决在安装Docker时遇到的Curl错误(35):SSL连接错误,具体是下载https://download.docker.com/linux/centos/docker-ce.repo时出现连接被重置的问题。用户之前已经遇到了未找到docker-ce等包的问题,现在又出现了SSL连接错误,导致仓库配置失败。 首先,我要回忆一下这个错误的常见原因。SSL连接错误通常和SSL协议版本、系统时间不正确、防火墙或代理设置、DNS问题以及网络连接问题有关。用户之前的问题是关于仓库配置的,现在又出现SSL问题,可能系统环境有一些特殊配置,或者网络访问受限。 接下来,我需要分步骤思考可能的解决方案。首先,考虑网络问题。用户可能处于网络受限的环境,比如企业网络,可能屏蔽了对Docker仓库的访问。或者DNS解析有问题,导致无法正确连接到下载地址。建议用户检查网络连接,尝试ping或curl其他网站确认网络是否正常。另外,可以尝试更换DNS服务器,比如使用Google的8.8.8.8或Cloudflare的1.1.1.1。 其次,SSL协议的问题。某些旧系统可能不支持最新的TLS协议,而目标服务器可能要求使用较新的协议。例如,如果用户的系统使用的是较旧的OpenSSL版本,可能无法建立安全连接。这时候可以尝试使用curl的--tlsv1.2选项强制使用TLS 1.2,或者更新系统的CA证书包。更新ca-certificates包可能解决证书信任问题。 另外,系统时间不正确也是一个常见原因。SSL证书验证依赖于正确的系统时间,如果时间偏差太大,会导致握手失败。建议用户检查日期和时间设置,使用date命令查看,并通过NTP同步时间。 防火墙或代理的影响也需要考虑。如果用户处于需要代理的环境,而终端没有配置代理,可能会导致连接被重置。需要用户检查是否使用了代理,并在curl命令中通过-x选项设置代理,或者在环境中配置http_proxy和https_proxy变量。此外,企业防火墙可能主动阻断了连接,可以尝试更换网络环境,比如使用手机热点测试。 如果以上方法都不奏效,可能需要更换下载源,比如使用国内镜像站点,如阿里云或腾讯云的镜像,替换Docker的官方仓库地址。例如,将下载地址改为https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo,然后重新配置仓库。 此外,用户可能使用的是较旧版本的CentOS,可能缺少必要的依赖包,如openssl或curl的版本过低。建议用户更新系统,并安装最新的软件包。也可以尝试手动下载docker-ce.repo文件,然后将其放入/etc/yum.repos.d/目录下,绕过curl下载的问题。 最后,如果所有方法都失败,可能需要使用离线安装方式,手动下载Docker的RPM包进行安装,或者使用Docker官方提供的一键安装脚本,但需要注意脚本可能同样需要访问网络资源,因此需要确保网络环境允许。 在整理这些思路时,要确保步骤清晰,从简单到复杂,帮助用户逐步排查问题。同时,提醒用户检查系统版本、网络设置,并提供具体的命令示例,方便用户直接复制执行。此外,考虑到用户可能在中国大陆,访问国外资源较慢或被阻断,推荐使用国内镜像加速安装,这也是常见的解决方案。</think>--- ### **Curl SSL 连接错误(错误 35)的解决方案** 当使用 `curl` 或 `yum` 访问 Docker 官方仓库时出现 **`SSL connect error`** 或 **`连接被对方重置`**,通常与 **网络环境、SSL 协议版本、系统时间** 或 **防火墙设置** 有关。以下是详细解决方法: --- ### **1. 原因分析** - **网络限制**:防火墙、代理或运营商阻断了与 Docker 服务器的连接(常见于企业网络或国内网络环境)。 - **SSL/TLS 协议不兼容**:系统使用的 OpenSSL 版本过低,无法与远程服务器协商安全连接。 - **系统时间错误**:SSL 证书验证依赖系统时间,时间偏差过大会导致握手失败。 - **DNS 污染或劫持**:域名解析异常,无法正确访问目标服务器。 --- ### **2. 解决方案** #### **方法 1:强制使用 TLS 1.2 协议** 某些旧系统默认使用低版本 TLS(如 TLS 1.0),而 Docker 服务器可能已禁用旧协议。通过 `curl` 强制指定 TLS 1.2: ```bash # 添加 --tlsv1.2 选项 sudo curl --tlsv1.2 -fsSL https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo ``` --- #### **方法 2:更新系统 CA 证书** 证书链过期或缺失会导致 SSL 验证失败: ```bash # CentOS/RHEL 更新证书 sudo yum update ca-certificates -y # 更新后清除缓存 sudo yum clean all ``` --- #### **方法 3:检查系统时间** 确保系统时间与当前时间一致(误差在几分钟内): ```bash # 查看当前时间 date # 安装 NTP 同步时间(CentOS 7) sudo yum install ntp -y sudo systemctl start ntpd sudo ntpdate pool.ntp.org ``` --- #### **方法 4:更换国内镜像源** 如果访问国外服务器不稳定,改用 **阿里云** 或 **腾讯云** 镜像: ```bash # 备份原有仓库文件 sudo mv /etc/yum.repos.d/docker-ce.repo /etc/yum.repos.d/docker-ce.repo.bak # 下载阿里云镜像的仓库配置(CentOS 示例) sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo # 更新仓库缓存 sudo yum clean all && sudo yum makecache ``` --- #### **方法 5:禁用 SSL 验证(临时应急)** **(仅限测试环境)** 跳过 SSL 证书验证(不推荐长期使用): ```bash # 添加 -k 选项忽略 SSL 错误 sudo curl -k -fsSL https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo ``` --- #### **方法 6:检查防火墙和代理** - **关闭防火墙**(临时测试): ```bash # CentOS 7+ sudo systemctl stop firewalld ``` - **配置代理**(如果处于代理环境): ```bash # 在终端中设置代理(替换 IP 和端口) export http_proxy="http://192.168.1.1:8080" export https_proxy="http://192.168.1.1:8080" ``` --- #### **方法 7:手动下载仓库文件** 如果网络完全不通,可手动下载 `.repo` 文件: 1. 通过浏览器访问 [Docker CentOS 仓库文件](https://download.docker.com/linux/centos/docker-ce.repo)。 2. 将内容保存到 `/etc/yum.repos.d/docker-ce.repo`。 3. 更新仓库缓存: ```bash sudo yum clean all && sudo yum makecache ``` --- ### **3. 验证 Docker 安装** 配置完成后,继续安装 Docker: ```bash # 安装 Docker sudo yum install docker-ce docker-ce-cli containerd.io # 启动服务 sudo systemctl start docker # 运行测试容器 sudo docker run hello-world ``` --- ### **4. 其他注意事项** - **系统兼容性**:确保 CentOS 版本支持 DockerDocker 官方要求 CentOS 7 或更高版本。 - **SELinux 干扰**:如遇权限问题,尝试临时禁用 SELinux: ```bash sudo setenforce 0 # 临时禁用 ``` - **查看完整错误日志**: ```bash curl -v https://download.docker.com/linux/centos/docker-ce.repo ``` --- ### **5. 替代方案:离线安装** 如果网络问题无法解决,可手动下载 RPM 包安装: 1. 从 [Docker CentOS 仓库](https://download.docker.com/linux/centos/7/x86_64/stable/Packages/) 下载以下包: - `docker-ce-*.rpm` - `docker-ce-cli-*.rpm` - `containerd.io-*.rpm` 2. 安装所有依赖: ```bash sudo rpm -ivh *.rpm ``` --- ### **6. 参考链接** - [Docker 官方 CentOS 安装指南](https://docs.docker.com/engine/install/centos/) - [阿里云 Docker CE 镜像](https://developer.aliyun.com/mirror/docker-ce) 如果问题仍未解决,请提供以下信息: 1. CentOS 版本(`cat /etc/redhat-release`)。 2. 防火墙状态(`sudo systemctl status firewalld`)。 3. 完整的错误日志(使用 `curl -v` 输出)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值