尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

远程连接docker控制器

远程连接docker控制器 前言在当今云原生和分布式开发的时代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 或域名HOST192.168.5.80# 替换为你服务器的真实 IPmkdir-p/etc/docker/certscd/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 访问echosubjectAltName IP:$HOST,IP:127.0.0.1extfile.cnfechoextendedKeyUsage serverAuthextfile.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/CNclient-new-keykey.pem-outclient.csrechoextendedKeyUsage clientAuthextfile_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测试结果如图所示。
返回列表