在 Debian 上通过 Docker 实现“远程连接”,通常有几种常见场景。下面按最常见需求给你说明,并给出可操作方案。
场景:在 A 机器操作 B 机器的 Docker(如本地电脑连服务器 Docker)
编辑 Docker 配置:
sudo nano /etc/docker/daemon.json
内容:
{
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
}
重启 Docker:
sudo systemctl restart docker
远程连接:
docker -H tcp://服务器IP:2375 ps
⚠️ 2375 是明文,必须配合防火墙或内网使用
无需改 Docker 配置:
docker -H ssh://user@服务器IP ps
或本地配置:
export DOCKER_HOST=ssh://user@服务器IP
✅ 安全、简单、生产推荐
场景:像远程服务器一样进容器
docker exec -it 容器名 /bin/bash
远程机器:
ssh user@服务器
docker exec -it 容器名 bash
容器内安装:
apt update && apt install openssh-server
映射端口:
docker run -d -p 2222:22 myimage
连接:
ssh root@服务器IP -p 2222
场景:访问容器里的 Nginx、MySQL
运行容器时映射端口:
docker run -d -p 8080:80 nginx
远程访问:
http://服务器IP:8080
DOCKER_HOST=ssh://user@服务器 docker compose up -d
如果你能告诉我:
我可以直接给你一套最适合你的命令。