要在Ubuntu上远程管理Docker,您可以按照以下步骤进行配置:
首先,您需要修改Docker的配置文件以允许远程访问。
打开 /lib/systemd/system/docker.service
文件并备份:
sudo cp /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak
编辑Docker配置文件:
sudo nano /lib/systemd/system/docker.service
找到 ExecStart
这一行,将其替换为以下内容,以允许Docker监听在所有IP地址的2375端口(非加密,仅限内网使用):
ExecStart=/usr/bin/dockerd -H unix:// -H tcp://0.0.0.0:2375
保存并退出编辑器。
默认情况下,Docker使用2375端口。您需要确保防火墙允许外部访问该端口。
允许TCP访问2375端口:
sudo ufw allow 2375/tcp
重新加载防火墙规则:
sudo ufw reload
在配置完成后,您可以在一台远程设备上使用Docker客户端进行连接测试。
使用以下命令连接到远程Docker守护进程:
docker -H tcp://<你的Ubuntu服务器的IP>:2375 info
如果一切正常,这条命令应该会返回Docker服务器的信息。
为了提高安全性,建议使用TLS加密连接。
生成TLS证书:
mkdir -p /etc/docker/certs && cd /etc/docker/certs
openssl genrsa -aes256 -out ca-key.pem 4096
openssl req -new -x509 -days 3650 -key ca-key.pem -sha256 -out ca.pem
编辑Docker配置文件以启用TLS:
sudo nano /etc/docker/daemon.json
添加以下内容:
{
"debug": true,
"hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"],
"tlsverify": true,
"tlscacert": "/etc/docker/certs/ca.pem",
"tlskey": "/etc/docker/certs/ca-key.pem"
}
重启Docker守护进程:
sudo systemctl daemon-reload
sudo systemctl restart docker
客户端配置: 在客户端计算机上,设置环境变量以连接到远程Docker守护进程:
export DOCKER_HOST=tcp://<你的Ubuntu服务器的IP>:2376
使用以下命令测试连接:
docker info
通过上述步骤,您可以在Ubuntu上成功配置Docker的远程访问,并确保连接的安全性。请注意,在生产环境中,使用加密连接(例如2376端口)是非常重要的,以确保不被攻击者恶意访问。配置完成后,别忘了重启Docker服务以使更改生效。