当前位置: 首页 > news >正文

【Docker】Docker配置远程访问

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

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

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

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

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

sudo vim /usr/lib/systemd/system/docker.service


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

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375


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

sudo systemctl daemon-reload
sudo systemctl restart docker


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

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

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

sudo vim /etc/docker/daemon.json


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

{"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}


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

sudo systemctl restart docker

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

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

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

sudo ufw allow 2375/tcp
sudo ufw reload


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

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

【Docker】windows环境下的docker如何开放远程2375端口icon-default.png?t=O83Ahttps://blog.csdn.net/ET1131429439/article/details/126541568

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

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

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

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

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

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

docker -H tcp://<宿主机IP>:2375 ps


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

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

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

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

docker -H tcp://<宿主机IP>:2375 pull hello-world


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

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

http://www.lryc.cn/news/494840.html

相关文章:

  • 网络安全入门之网络安全工具分享-含初期所有工具(附百度网盘链接)
  • 玩转 uni-app 静态资源 static 目录的条件编译
  • Docker 容器隔离关键技术:Seccomp
  • 【大模型】深度解析 NLP 模型5大评估指标及 应用案例:从 BLEU、ROUGE、PPL 到METEOR、BERTScore
  • LinuxC高级
  • 实现PDF文档加密,访问需要密码
  • LangChain——加载知识库文本文档 PDF文档
  • 深度学习2:从零开始掌握PyTorch:数据操作不再是难题
  • MyBatis的if标签的基本使用
  • 【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成
  • 【微服务】Nacos
  • 5、定义与调用函数
  • Linux 网络编程之TCP套接字
  • 前海湾地铁的腾通数码大厦背后的临时免费停车点探寻
  • OpenCV相机标定与3D重建(7)鱼眼镜头立体校正的函数stereoRectify()的使用
  • 前端如何获取unpkg的资源链接
  • Flink 离线计算
  • Git | 理解团队合作中Git分支的合并操作
  • C++多态的实现原理
  • [极客大挑战 2019]PHP--详细解析
  • map用于leetcode
  • CommonJS 和 ES Modules 的 区别
  • 科技为翼 助残向新 高德地图无障碍导航规划突破1.5亿次
  • Flink四大基石之Time (时间语义) 的使用详解
  • Spring WebFlux与Spring MVC
  • 【深度学习基础】一篇入门模型评估指标(分类篇)
  • D80【 python 接口自动化学习】- python基础之HTTP
  • ⽂件操作详解
  • 双高(高比例新能源发电和高比例电力电子设备)系统宽频振荡研究现状
  • TorchMoji使用教程/环境配置(2024)