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

如何开放2375和2376端口供Docker daemon监听

Linux (以 Ubuntu 为例)

1. 修改 Docker 配置文件

  • 打开 Docker 的配置文件 /etc/docker/daemon.json。如果该文件不存在,则可以创建一个新的。

bash

sudo nano /etc/docker/daemon.json

  • 在配置文件中添加以下内容:

json

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

  • 这里,"unix:///var/run/docker.sock" 表示使用 Unix 套接字,"tcp://0.0.0.0:2375" 和 "tcp://0.0.0.0:2376" 表示让 Docker daemon 监听 2375 和 2376 端口,并允许来自任何 IP 地址(0.0.0.0)的连接。

2. 重启 Docker 服务

  • 保存配置文件后,需要重启 Docker 服务以使配置生效:

bash

sudo systemctl restart docker

3. 检查端口是否开放

  • 你可以使用 netstat 命令检查 Docker daemon 是否正在监听这些端口:

bash

sudo netstat -tuln | grep 2375
sudo netstat -tuln | grep 2376

Windows

1. 打开 Docker Desktop 设置

  • 右键点击 Docker Desktop 图标,选择 Settings

2. 进入 Docker Engine 配置

  • 在左侧导航栏中,点击 Docker Engine

3. 配置监听端口

  • 在配置文件中添加或修改以下内容:

json

{"hosts": ["npipe://", "tcp://0.0.0.0:2375", "tcp://0.0.0.0:2376"]
}

  • 确保使用双引号将配置项括起来,并且每个配置项之间使用逗号分隔。

4. 应用并重启 Docker

  • 点击 Apply & Restart 按钮,让 Docker 应用新的配置并重启。

安全考虑

  • 2375 端口:该端口通常用于未加密的 Docker 远程 API 访问。开放该端口可能会带来安全风险,因为它允许未加密的连接,攻击者可能会在网络上窃取信息或执行未经授权的操作。
  • 2376 端口:这个端口通常用于安全的 Docker 远程 API 访问,需要配置 TLS 证书以确保安全通信。如果要使用 2376 端口,你需要生成并使用 TLS 证书,以下是基本步骤:
    1. 生成证书和密钥:

bash

openssl genrsa -aes256 -out ca-key.pem 4096
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=localhost" -sha256 -new -key server-key.pem -out server.csr
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem

  1. 将生成的证书和密钥添加到 /etc/docker/daemon.json 中:

json

{"hosts": ["tcp://0.0.0.0:2376"],"tlsverify": true,"tlscacert": "/path/to/ca.pem","tlscert": "/path/to/server-cert.pem","tlskey": "/path/to/server-key.pem"
}

  1. 重启 Docker 服务。

注意事项

  • 对于生产环境,强烈建议使用 2376 端口并配置 TLS 证书,以确保 Docker 远程 API 的安全性。
  • 开放这些端口可能会将 Docker 守护进程暴露在网络上,要确保你的网络环境是安全的,或者使用防火墙规则来限制对这些端口的访问。

通过上述步骤,你可以在不同操作系统上配置 Docker daemon 监听 2375 和 2376 端口,并根据需要进行安全加固。

扩展阅读:

【容器技术系列】探索篇: 探索多方式创建容器的神奇之旅

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

相关文章:

  • RabbitMQ确保消息可靠性
  • 前端常见的设计模式之【单例模式】
  • 【React】脚手架进阶
  • win32汇编环境,窗口程序中单选框的一般操作示例
  • 如何移除git中被跟踪的commit文件
  • 结合night compute分析 利用tensor core 优化K值较大的矩阵乘(超过cublas50%)
  • Docker 部署 Typecho
  • 【大数据】机器学习-----模型的评估方法
  • 【Excel笔记_3】execl的单元格是#DIV/0!,判断如果是这个,则该单元格等于空
  • FPGA EDA软件的位流验证
  • 信号与系统初识---信号的分类
  • 信号量机制之苹果-橘子问题
  • 三相无刷电机控制|FOC理论04 - 克拉克变换 + 帕克变换的最终目标
  • Nacos: 一个动态服务发现与配置管理平台
  • 认识机器学习中的结构风险最小化准则
  • 计算机网络 (35)TCP报文段的首部格式
  • ubuntu24.04安装docker显卡工具包nvidia-container-toolkit
  • rknn环境搭建之docker篇
  • OpenCV相机标定与3D重建(56)估计物体姿态(即旋转和平移)的函数solvePnPRansac()的使用
  • vue倒计时组件封装,根据每个循环项的倒计时是否结束添加新类名。
  • 缩放 对内外参的影响
  • SQL面试题2:留存率问题
  • 晨辉面试抽签和评分管理系统之九:随机编排考生的分组(以教师资格考试面试为例)
  • 【EtherCATBridge】- KRTS C++示例精讲(9)
  • C++实现设计模式--- 观察者模式 (Observer)
  • iOS 解决两个tableView.嵌套滚动手势冲突
  • Lianwei 安全周报|2025.1.13
  • rtthread学习笔记系列(2) -- 宏
  • 美摄科技PC端视频编辑解决方案,为企业打造专属的高效创作平台
  • 服务端开发模式-thinkphp-重新整理workman