温馨提示×

Ubuntu Docker远程访问怎么设置

小樊
59
2025-07-01 12:32:38
栏目: 智能运维

要在Ubuntu上设置Docker的远程访问,可以按照以下步骤进行:

1. 安装Docker

首先,确保在Ubuntu系统上安装了Docker。可以使用以下命令进行安装:

sudo apt update
sudo apt install docker-ce

2. 配置Docker服务以监听远程请求

编辑Docker的服务文件 /lib/systemd/system/docker.service,添加 -H 参数以启用远程API。运行以下命令:

sudo nano /lib/systemd/system/docker.service

找到 ExecStart 行,并修改如下:

ExecStart=/usr/bin/dockerd -H unix:// -H tcp://0.0.0.0:2375

这条命令允许 Docker 服务通过 TCP(监听所有 IP),在 2375 端口上接受远程连接。

3. 配置防火墙以允许Docker端口通信

如果你的系统使用了防火墙(如 UFW),需要允许 2375 端口的访问。使用以下命令进行配置:

sudo ufw allow 2375/tcp

4. 重新加载系统服务并测试连接

修改完配置文件后,需要重新加载 systemd 并重启 Docker 服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

在另一台计算机上使用以下命令测试是否成功连接到远程 Docker Host:

docker -H tcp://<你的Ubuntu服务器的IP>:2375 info

如果一切正常,这条命令应该会返回 Docker 服务器的信息。

5. 使用SSH连接到Docker容器

为了安全起见,建议在容器中生成SSH密钥,并将公钥复制到容器的 ~/.ssh/authorized_keys 文件中。

在容器中生成SSH密钥:

ssh-keygen -t rsa -b 4096

将生成的公钥添加到 ~/.ssh/authorized_keys 文件中:

docker exec -it ubuntu-container sh -c 'cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys'

然后,在本地主机上配置SSH客户端,并使用以下命令连接到容器:

ssh -i ~/.ssh/id_rsa user@<容器IP地址>

这里,user 是 Docker 容器中 Ubuntu 用户的用户名,默认为 root

6. 使用TLS加密连接(推荐)

出于安全考虑,建议启用 Transport Layer Security (TLS),以便加密客户端与服务端之间的通讯。具体操作涉及生成证书以及调整 Docker 客户端和服务端的相关参数。

通过以上步骤,你就可以在Ubuntu上成功配置Docker的远程访问。请注意,远程访问时需谨慎处理安全问题。在生产环境中,使用加密连接(例如2376端口)是非常重要的,确保不被攻击者恶意访问。

0