要在Ubuntu上设置Docker的远程访问,可以按照以下步骤进行:
首先,确保在Ubuntu系统上安装了Docker。可以使用以下命令进行安装:
sudo apt update
sudo apt install docker-ce
编辑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 端口上接受远程连接。
如果你的系统使用了防火墙(如 UFW),需要允许 2375 端口的访问。使用以下命令进行配置:
sudo ufw allow 2375/tcp
修改完配置文件后,需要重新加载 systemd 并重启 Docker 服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
在另一台计算机上使用以下命令测试是否成功连接到远程 Docker Host:
docker -H tcp://<你的Ubuntu服务器的IP>:2375 info
如果一切正常,这条命令应该会返回 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。
出于安全考虑,建议启用 Transport Layer Security (TLS),以便加密客户端与服务端之间的通讯。具体操作涉及生成证书以及调整 Docker 客户端和服务端的相关参数。
通过以上步骤,你就可以在Ubuntu上成功配置Docker的远程访问。请注意,远程访问时需谨慎处理安全问题。在生产环境中,使用加密连接(例如2376端口)是非常重要的,确保不被攻击者恶意访问。