【Docker】Docker配置远程访问

配置Docker的远程访问,你需要按照以下步骤进行操作:

1. 在Docker宿主机上配置Docker守护进程监听TCP端口

Docker守护进程默认只监听UNIX套接字,要实现远程访问,需要修改配置以监听TCP端口。

‌方法一:修改Docker服务文件‌

编辑Docker的服务文件,通常位于/usr/lib/systemd/system/docker.service(路径可能因系统而异)。

bash 复制代码
sudo vim /usr/lib/systemd/system/docker.service

找到ExecStart行,并添加-H tcp://0.0.0.0:2375(或其他你希望监听的端口)。例如:

bash 复制代码
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

保存并退出后,重新加载systemd配置并重启Docker服务:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

‌方法二:修改daemon.json配置文件‌

如果Docker守护进程的配置是通过/etc/docker/daemon.json文件进行的,你可以在该文件中添加监听地址。

创建或编辑/etc/docker/daemon.json文件:

bash 复制代码
sudo vim /etc/docker/daemon.json

添加以下内容(如果文件已存在,则直接添加"hosts"键):

javascript 复制代码
{
  "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}

保存并退出后,重启Docker服务:

bash 复制代码
sudo systemctl restart docker

2. 在Docker宿主机上配置防火墙规则,允许远程访问Docker TCP端口

你需要确保防火墙允许外部访问Docker的TCP端口(默认为2375,但你可以自定义)。

例如,使用ufw(Uncomplicated Firewall)配置规则:

bash 复制代码
sudo ufw allow 2375/tcp
sudo ufw reload

如果你使用的是其他防火墙工具,如firewalld,请按照相应的命令配置规则。

注意:以上为linux系统上的操作,windows上的可参考我的另一篇文章

【Docker】windows环境下的docker如何开放远程2375端口https://blog.csdn.net/ET1131429439/article/details/126541568

3. 在远程机器上安装Docker客户端

在远程机器上安装Docker客户端,以便通过TCP连接访问Docker宿主机。

安装Docker客户端的步骤通常与在宿主机上安装Docker的步骤相同,但请注意,你不需要在远程机器上运行Docker守护进程。

4. 使用Docker客户端配置远程访问Docker宿主机的地址和端口

你可以通过Docker客户端的-H选项指定要连接的Docker宿主机地址和端口。

例如,在远程机器上运行以下命令来列出Docker宿主机上的容器:

bash 复制代码
docker -H tcp://<宿主机IP>:2375 ps

将<宿主机IP>替换为Docker宿主机的实际IP地址。

5. 测试远程访问Docker宿主机是否成功

你可以通过运行一些Docker命令来测试远程访问是否成功。

例如,在远程机器上运行以下命令来拉取一个镜像:

bash 复制代码
docker -H tcp://<宿主机IP>:2375 pull hello-world

如果命令成功执行并拉取了镜像,则说明远程访问配置成功。

请注意,出于安全考虑,建议不要在生产环境中使用未加密的TCP连接来访问Docker守护进程。你可以通过配置TLS加密来保护通信过程的安全性。有关如何配置TLS加密的详细信息,请参考Docker官方文档或其他相关资源。

相关推荐
huosenbulusi1 小时前
helm推送到harbor私有库--http: server gave HTTP response to HTTPS client
云原生·容器·k8s
不会飞的小龙人2 小时前
Docker Compose创建镜像服务
linux·运维·docker·容器·镜像
不会飞的小龙人2 小时前
Docker基础安装与使用
linux·运维·docker·容器
张3蜂2 小时前
docker Ubuntu实战
数据库·ubuntu·docker
元气满满的热码式7 小时前
K8S中Service详解(三)
云原生·容器·kubernetes
染诗7 小时前
docker部署flask项目后,请求时总是报拒绝连接错误
docker·容器·flask
张3蜂9 小时前
docker 部署.netcore应用优势在什么地方?
docker·容器·.netcore
心惠天意11 小时前
docker-compose篇---创建jupyter并可用sudo的创建方式
docker·jupyter·容器
huaweichenai12 小时前
windows下修改docker的镜像存储地址
运维·docker·容器
菠萝炒饭pineapple-boss12 小时前
Dockerfile另一种使用普通用户启动的方式
linux·docker·dockerfile