docker 远程连接设置

Docker为C/S架构,服务端为docker daemon,客户端为docker.service. 默认不会监听任何端口,只能在本地使用docker客户端或者使用Docker API进行操作。要支持远程客户端访问需要做如下设置(不安全,因为开了监听端口,任何人都可以远程连接到docker daemon服务器进行操作):

docker.service 中 dockerd 的 -H 参数不能与 daemon.json 中的 hosts 键值对冲突。(其他参数同理)
/etc/docker/daemon.json会被docker.service的配置文件覆盖,直接添加daemon.json不起作用;

方法1、

vim /lib/systemd/system/docker.service

将管理地址写入 /etc/profile  :  

echo 'export DOCKER_HOST=tcp://0.0.0.0:2375' >> /etc/profile

source /etc/profile

 

然后重启:

systemctl daemon-reload && systemctl restart docker

 

方法2、

systemctl edit docker.service  写入以下几行内容:

  [Service]
  ExecStart=
  ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

保存、退出;

重启: systemctl daemon-reload && systemctl restart docker

 

方法3、

新建 /etc/systemd/system/docker.service.d/docker.conf 文件,写入以下几行内容:
  [Service]
  ExecStart=
  ExecStart=/usr/bin/dockerd

在 /etc/docker/daemon.json 中写入以下内容:
{
"hosts":[
"unix:///var/run/docker.sock",
"tcp://0.0.0.0:2375"
]
}

然后重启: systemctl daemon-reload && systemctl restart docker

 

在另外一台docker服务器上远程连接测试:

docker -H tcp://192.168.3.201:2375 ps  #192.168.3.201:是开启允许远程连接的那一台服务器,2375:端口   ps:docker命令

 

posted @   米兰的小铁將  阅读(11918)  评论(3编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示