远程连接docker控制器
2026/9/14 2:46:46 网站建设 项目流程

前言

在当今云原生和分布式开发的时代,Docker 已成为构建、分发和运行应用程序的标准工具。它通过容器化技术,将应用及其依赖打包在一个轻量级、可移植的单元中,极大地简化了环境一致性和部署流程。

然而,随着应用架构的复杂化,我们经常需要从本地开发机或远程服务器连接并管理运行在其他主机上的 Docker 容器或守护进程。无论是为了调试容器内的应用、查看日志、执行命令,还是进行集群管理,掌握远程连接 Docker 的技能都变得至关重要。

本文将带你深入了解远程连接 Docker 的几种核心方式:从最基础的配置 Docker 守护进程监听 TCP 端口,到通过 SSH 隧道安全地连接,再到利用 Docker Context 实现无缝的多环境切换。我们将探讨每种方法的原理、配置步骤、安全考量以及适用场景,帮助你根据实际需求构建高效、安全的远程 Docker 工作流。

操作过程

修改docker服务

远程连接docker,首先需要为docker服务提供可远程访问的接口,修改/usr/lib/systemd/system/docker.service文件:

ExecStart=/usr/bin/dockerd-Htcp://0.0.0.0:2375-Hfd://--containerd=/run/containerd/containerd.sock

重启docker服务:

systemctl daemon-reload systemctl restart docker.service

此时已经可以实现远程访问。但是此时远程访问并没有提供任何安全认证,使用

dockerinfo

有如下结果:

开启TLS双向认证

为了避免这种无限制的访问导致的安全问题,需要对服务端添加TLS认证访问。

生成TLS证书

Docker宿主机上创建一个脚本gen-certs.sh

#!/bin/bashset-e# 设置你的服务器 IP 或域名HOST="192.168.5.80"# 替换为你服务器的真实 IPmkdir-p/etc/docker/certs&&cd/etc/docker/certs# 1. 生成 CA 私钥和证书openssl genrsa-aes256-outca-key.pem4096openssl req-new-x509-days3650-keyca-key.pem-sha256-outca.pem-subj"/CN=$HOST"# 2. 生成服务端私钥和证书请求 (CSR)openssl genrsa-outserver-key.pem4096openssl req-subj"/CN=$HOST"-sha256-new-keyserver-key.pem-outserver.csr# 允许通过 IP 和 localhost 访问echo"subjectAltName = IP:$HOST,IP:127.0.0.1">extfile.cnfecho"extendedKeyUsage = serverAuth">>extfile.cnf# 3. 签署服务端证书openssl x509-req-days3650-sha256-inserver.csr-CAca.pem-CAkeyca-key.pem\-CAcreateserial-outserver-cert.pem-extfileextfile.cnf# 4. 生成客户端私钥和证书请求openssl genrsa-outkey.pem4096openssl req-subj'/CN=client'-new-keykey.pem-outclient.csrecho"extendedKeyUsage = clientAuth">extfile_client.cnf# 5. 签署客户端证书openssl x509-req-days3650-sha256-inclient.csr-CAca.pem-CAkeyca-key.pem\-CAcreateserial-outcert.pem-extfileextfile_client.cnf# 6. 修改文件权限chmod-v0400 ca-key.pem key.pem server-key.pemchmod-v0444 ca.pem server-cert.pem cert.pem

然后执行

bashgen-certs.sh

创建证书过程中需要输入密码。该脚本生成了服务端和客户端通信所需的证书文件。

配置docker服务

编辑docker配置文件/etc/docker/daemon.json,添加或修改以下内容:

{"tlsverify":true,"tlscacert":"/etc/docker/certs/ca.pem","tlscert":"/etc/docker/certs/server-cert.pem","tlskey":"/etc/docker/certs/server-key.pem","registry-mirrors":["https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"],"dns":["8.8.8.8","223.5.5.5"]}

重启docker服务

systemctl daemon-reload systemctl restart docker.service
客户端安全连接验证

将生成的客户端证书(ca.pem, cert.pem, key.pem)下载到本地客户端机器,使用以下方式连接:

docker--tlsverify--tlscacert=/etc/docker/certs/ca.pem--tlscert=/etc/docker/certs/cert.pem--tlskey=/etc/docker/certs/key.pem-Htcp://192.168.5.80:2375 image list

测试结果如图所示。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询