Docker 远程访问完整配置教程以及核心参数理解
Docker 远程访问完整配置教程
以下是配置 Docker 支持远程访问的完整教程,包括参数说明、配置修改、云服务器安全组设置、主机防火墙配置,以及验证远程访问的详细步骤。
1. 理解 -H fd://
参数的作用(理解了以后容易理解后面的操作)
-H
参数用于指定 Docker 守护进程的监听方式(监听“门口”)。可以配置 Docker 监听:
- Unix 套接字:如
unix:///var/run/docker.sock
(本地通信)。 - TCP 地址:如
tcp://0.0.0.0:2375
(远程访问)。 - 文件描述符(
fd://
):让 Docker 通过 systemd 管理监听方式。
什么是 -H fd://
?
fd://
表示 File Descriptor(文件描述符)。- Docker 不直接监听具体地址或端口,而是通过 systemd 提供的文件描述符监听。
- systemd 通常默认让 Docker 使用本地 Unix 套接字
unix:///var/run/docker.sock
。
形象比喻
-
没有
-H fd://
时:
Docker 自己决定监听哪些“门”,比如监听本地套接字或远程端口。你明确告诉它:“去盯住这扇门,比如 2375 端口!”
-
使用
-H fd://
时:
Docker 把选择监听方式的任务交给 systemd。Docker 对 systemd 说:“systemd,你安排门,我负责听谁敲门!”
2. 修改 Docker 配置
2.1 修改 docker.service
文件
-
编辑 Docker 服务文件:
bashsudo nano /usr/lib/systemd/system/docker.service
-
查找以下行:
bashExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
-
修改为:
bashExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock
这里移除了
-H fd://
参数,让 Docker 不再依赖 systemd 的监听方式。 -
保存并退出。
2.2 配置 daemon.json
文件
通过 /etc/docker/daemon.json
配置 Docker 监听本地和远程连接。
-
编辑
daemon.json
文件:bashsudo nano /etc/docker/daemon.json
-
添加以下内容:(registry 是docker加速器,在国外可以不管这个)
json{"registry-mirrors": ["https://docker.1ms.run","https://docker.unsee.tech"],"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] }
-
保存并退出。
2.3 重新加载并重启 Docker 服务
bashsudo systemctl daemon-reload
sudo systemctl restart docker
3. 配置云服务器安全组
对于云服务器(如阿里云、AWS、腾讯云),需要在安全组中开放 Docker 的远程访问端口(TCP 2375)。
- 登录云服务提供商管理控制台。
- 找到实例的 安全组 配置。
- 添加一条规则:
- 协议:TCP
- 端口范围:2375
- 来源:根据需求设置(可选
0.0.0.0/0
或特定 IP 段)。
- 保存并应用规则。
4. 配置主机防火墙
如果服务器启用了防火墙(如 firewalld),需要显式开放 TCP 2375 端口。
4.1 检查防火墙状态
bashsudo systemctl status firewalld
如果防火墙未启用,可跳过本节。
4.2 开放 2375 端口
bashsudo firewall-cmd --zone=public --add-port=2375/tcp --permanent
4.3 重新加载防火墙
bashsudo firewall-cmd --reload
4.4 验证防火墙规则
bashsudo firewall-cmd --list-ports
确认 2375/tcp
端口已在列表中。
5. 验证远程访问
5.1 使用浏览器验证
在浏览器地址栏输入以下 URL:
http://<服务器IP>:2375/version
如果配置正确,会返回类似以下的 JSON 数据:
粘个图,嘿嘿
5.2 使用 Docker CLI 验证
在远程客户端执行以下命令:
bashdocker -H tcp://<服务器IP>:2375 info
如果配置正确,将返回 Docker 服务器的相关信息。
6. 安全性注意事项(没试过可选)
-
默认配置无加密或认证:
- Docker 的远程访问(TCP 2375)默认不启用加密或认证机制,存在安全隐患。
- 开放 2375 后,任何访问到该端口的用户都能完全控制 Docker 守护进程。
-
推荐的安全措施:
-
使用 SSH 隧道:不直接开放 2375,而是通过 SSH 隧道访问 Docker:
bashssh -L 2375:localhost:2375 user@<服务器IP>
然后本地访问:
bashdocker -H tcp://localhost:2375 info
-
启用 TLS 加密: 为 Docker 配置 TLS,确保通信加密且客户端必须认证。具体配置可以参考 Docker 官方文档。
-
限制来源 IP:通过安全组或防火墙仅允许可信 IP 访问 2375。
-
总结
通过本教程,完成 Docker 的远程访问配置,包括参数调整、安全组与防火墙配置,以及远程访问的验证。
相关文章:
Docker 远程访问完整配置教程以及核心参数理解
Docker 远程访问完整配置教程 以下是配置 Docker 支持远程访问的完整教程,包括参数说明、配置修改、云服务器安全组设置、主机防火墙配置,以及验证远程访问的详细步骤。 1. 理解 -H fd:// 参数的作用(理解了以后容易理解后面的操作ÿ…...
在ros2 jazzy和gazebo harmonic下的建图导航(cartographer和navigation)实现(基本)
我的github分支!!! 你可以在这里找到相对应的源码。 DWDROME的MOGI分支 来源于!! MOGI-ROS/Week-3-4-Gazebo-basics 学习分支整理日志 分支概述 这是一个用于个人学习的新分支,目的是扩展基本模型并添加…...
常见的显示器分辨率及其对应的像素数量
显示器的像素数量通常由其分辨率决定,分辨率表示为水平像素数乘以垂直像素数。 720P(1280720): 像素数量:约92.16万特点:这是高清标准的一个分辨率,通常用于手机、平板电脑或小型显示器。900P&…...
浅谈分布式共识算法
分布式共识算法 基础概念1、容错2、共识3、拜占庭将军问题4、多数派5、共识算法分类6、ACID&BASE&CAP Paxos1、相关概念2、三种角色3、运行阶段4、Multi Paxos5、总结6、演化 ZAB1、相关概念2、三种角色3、成员状态4、运行阶段5、ZooKeeper流程6、总结 Raft1、相关概念…...
[Linux]redis5.0.x升级至7.x完整操作流程
1. 从官网下载最新版redis: 官网地址:https://redis.io/download 注:下载需要的登录,如果选择使用github账号登录,那么需要提前在github账号中取消勾选“Keep my email addresses private”(隐藏我的邮箱…...
Vue项目中生成node_modules文件夹的两种常用方法及npm优势
在Vue项目中生成node_modules文件夹的过程非常简单,主要步骤如下: 1、使用 npm 安装依赖包; 2、使用 yarn 安装依赖包。其中,推荐使用npm安装依赖包,原因如下: 兼容性更广:npm是Node.js的默认包管理工具,具有更高的兼容性。社区支持:npm拥有更大的用户基础和社区支持,…...
(四)基于STM32通过Event Recoder实现时间测量功能
目录 1. 了解Event Recorder 2. 硬件和软件准备 硬件需求 软件需求 3. 配置STM32工程 使用STM32CubeMX初始化项目 配置Event Recorder 4. 实现时间记录功能 初始化Event Recorder 时间间隔计算 配置Debug选项 测量结果查看 5总结 在嵌入式系统开发中,精…...
【Linux】定时运行shell脚本
1、at命令 at命令允许指定Linux系统何时运行脚本,它会将作业提交到队列中,指定shell在什么时候运行该作业。 at 的守护进程 atd 在后台运行,在作业队列中检查待运行的作业。 at 守护进程会检查系统的一个特殊目录(一般位于/var/…...
ARM 汇编基础总结
GNU 汇编语法 编写汇编的过程中,其指令、寄存器名等可以全部使用大写,也可以全部使用小写,但是不能大小写混用。 1. 汇编语句的格式 label: instruction comment label即标号,表示地址位置,有些指令前面可能会有标…...
L27.【LeetCode笔记】2 的幂(五种解法)
目录 1.题目 2.自解 方法1:调用log函数 代码 提交结果 方法2:循环 提交结果 3.优解 方法3:位运算n & (n-1) 0 代码 提交结果 方法4:位运算lowbit 代码 提交结果 4.投机取巧的方法 代码 提交结果 1.题目 https://leetcode.cn/problems/power-of-two/?env…...
【MyBatis-Plus】让 MyBatis 更简单高效
如果你曾经使用过 MyBatis,你一定知道它的强大和灵活。然而,随着项目规模的增长,手写 SQL 成为了一件既繁琐又容易出错的事。这时,MyBatis-Plus(简称 MP)应运而生,它为 MyBatis 增强了许多功能&…...
如何使用OpenCV进行抓图-多线程
前言 需求: 1、如何使用OpenCV捕抓Windows电脑上USB摄像头的流、 2、采用多线程 3、获知当前摄像头的帧率。 这个需求,之前就有做了,但是由于出现了一个问题,人家摄像头的帧率目前都可以达到60帧/s 了,而我的程序…...
解决安装pynini和WeTextProcessing报错问题
点击这里,访问博客 0. 背景 最近在给别人有偿部署ASR-LLM-TTS项目时遇到安装pynini和WeTextProcessing依赖报错的问题,报错信息如下: IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files…...
数据中台与数据治理服务方案[50页PPT]
本文概述了数据中台与数据治理服务方案的核心要点。数据中台作为政务服务数据化的核心,通过整合各部门业务系统数据,进行建模与加工,以新数据驱动政府管理效率提升与政务服务能力增强。数据治理则聚焦于解决整体架构问题,确保数据…...
springCloud 脚手架项目功能模块:Java分布式锁
文章目录 引言分布式锁产生的原因:集群常用的分布式锁分布式锁的三种实现方式I ZooKeeper 简介zookeeper本质上是一个分布式的小文件存储系zookeeper特性:全局数据一致性II 基于ZooKeeper 实现一个排他锁创建锁获取锁释放锁Apache ZooKeeper客户端III 分布式锁方案非公平锁方…...
一文讲清楚HTTP常见的请求头和应用
文章目录 一文讲清楚HTTP常见的请求头和应用1. 啥是个HTTP请求头2. 常见的请求头,作用和示例3.协商缓存4.会话状态 一文讲清楚HTTP常见的请求头和应用 1. 啥是个HTTP请求头 一句话,说白了就是限定HTTP传输的一些规则参数,比如Accept…...
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32‘ not found
这个问题之前遇到过,没有记录,导致今天又花了2小时 原因是没有GLIBC——2.32 使用以下命令查一下有哪些版本: strings /lib/x86_64-linux-gnu/libm.so.6 | grep GLIBC_ 我已经安装好了,所有有2.32版本 原因是当前的ubuntu版本…...
如何安装适配pytorch版本的torchvision
一、对照版本 版本对照pytorch/vision: Datasets, Transforms and Models specific to Computer Vision 二、下载对应版本的torchvision 下载连接1download.pytorch.org/whl/torch_stable.html 下载连接2download.pytorch.org/whl/cu110/torch_stable.html 笔者认为1会比2更…...
UE4_用户控件_3_用户控件输入数据的方法
祝愿大美兰陵越来越好! 一、效果展示: 二、先制作一个角色 1、新建个父类为pawn的蓝图类。更名为BP_Image_Character。 2、这个角色只是用于观察场景,并与场景中的物体相碰撞用的,所以不需要骨骼网格体, 3、但是我们…...
以往博客的复习补充——part1
之前没更新是因为期末考试要复习,没空写博客。1月3号才考完,现在有空,打算从头看一遍,既是复习以前知识点,又是对原来的博客进行补充。刚好寒假,有大把时间。 一,希尔排序(Shell So…...
数据挖掘——决策树分类
数据挖掘——决策树分类 决策树分类Hunt算法信息增益增益比率基尼指数连续数据总结 决策树分类 树状结构,可以很好的对数据进行分类; 决策树的根节点到叶节点的每一条路径构建一条规则;具有互斥且完备的特点,即每一个样本均被且…...
Kafka 快速实战及基本原理详解解析-01
一、Kafka 介绍 1. MQ 的作用 消息队列(Message Queue,简称 MQ)是一种用于跨进程通信的技术,核心功能是通过异步消息的方式实现系统之间的解耦。它在现代分布式系统中有着广泛的应用,主要作用体现在以下三个方面&…...
大模型在自动驾驶领域的应用和存在的问题
大模型在自动驾驶领域的应用与挑战 大模型(如 GPT-4、BERT等)已经在多个领域取得了突破,自动驾驶是其中一个受益颇多的行业。随着人工智能和深度学习的快速发展,自动驾驶技术正在向更加智能化、自动化和安全的方向发展。大模型在…...
【0x0014】HCI_Read_Local_Name命令详解
目录 一、命令概述 二、命令格式 三、返回事件及参数说明 3.1. HCI_Command_Complete 事件 3.2. Status 3.3. Local_Name 四、命令执行流程 4.1. 命令发送 4.2. 控制器接收并处理命令 4.3. 控制器返回结果 4.4. 主机接收并解析事件包 4.5. 示例代码 五、应用场景 …...
理解Java领域中的 DTO、PO 和 VO
在 Java 开发中,DTO(Data Transfer Object)、PO(Persistent Object)和 VO(Value Object)是在不同层面用于数据处理和传递的概念,它们各自有着独特的作用: 一、DTO&#…...
成都和力九垠科技有限公司九垠赢系统Common存在任意文件上传漏洞
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...
框架模块说明 #09 日志模块_01
背景 日志模块是系统的重要组成部分,主要负责记录系统运行状态和定位错误问题的功能。通常,日志分为系统日志、操作日志和安全日志三类。虽然分布式数据平台是当前微服务架构中的重要部分,但本文的重点并不在此,而是聚焦于自定义…...
Unity热更文件比较工具类
打包出来的热更文件,如果每次都要全部上传到CDN文件服务器,不进耗费时间长,还浪费流量。 所以让AI写了个简单的文件比较工具类,然后修改了一下可用。记录一下。 路径可自行更改。校验算法这里使用的是MD5,如果使用SH…...
Python性能分析深度解析:从`cProfile`到`line_profiler`的优化之路
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在软件开发过程中,性能优化是提升应用质量和用户体验的关键环节。Python作为广泛应用的高级编程语言,其性能分析工具为开发者提供了强大的…...
EF Core配置及使用
Entity Framework Core是微软官方的ORM框架。 ORM:Object Relational Mapping。让开发者用对象操作的形式操作关系数据库。 EF Core是对于底层ADO.NET Core的封装,因此ADO.NET Core支持的数据库不一定被EF Core支持。 代码创建数据库Code First 建实…...
EPS32基础篇开发
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 开发 EPS32基础篇 前言一、GPIO输入输出GPIO可设置一下4种状态代码示例:检测按键,按下时:LED亮,松开时,LED灭 二、…...
【时时三省】(C语言基础)常见的动态内存错误2
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 对非动态开辟空间内存使用free释放 示例: 这个arr数组是在栈上的 *p指向的就是arr 对非动态空间也用了free ferr只能在动态开辟空间使用 使用free释放一块动态开辟空间的一部分…...
Harmony OS开发-ArkUI框架速成四
程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴!君志所向,一往无前! 1.图标库 1.1 图标库概述 HarmonyOS 图标库为 HarmonyOS 开发者提供丰富的在线图…...
vulnhub Earth靶机
搭建靶机直接拖进来就行 1.扫描靶机IP arp-scan -l 2.信息收集 nmap -sS -A -T4 192.168.47.132 得到两个DNS; 在443端口处会让我们加https dirb https://earth.local/ dirb https://terratest.earth.local/ #页面下有三行数值 37090b59030f11060b0a1b4e0000000000004312170a…...
ScheduledExecutorService详解
ScheduledExecutorService 是 Java 并发工具包 (java.util.concurrent) 中的一个接口,用于在指定的延迟后执行任务,或者以固定的时间间隔周期性执行任务。它是 ExecutorService 的子接口,提供了更强大的调度功能。 ScheduledExecutorService…...
logback日志文件多环境配置路径
项目中遇到问题,springboot项目 本地jar包部署到现场后,经常遇到现场的日志存放的路径会更改,经过查阅,有两种方式,下面简单说明一下。 一、第一种 启动jar包时 添加参数 --logging.configF:\hgtest\config\logback.x…...
判断一个变量是否为NaN
1. JS代码 NaN(不是一个数字,但数据类型为number)是执行数学运算没有成功,返回失败的结果。 另外,NaN 不等于 NaN 。 //利用 NaN 是唯一一个不等于自身的特点 function _isNaN(val) {if (val ! val) {return true;}ret…...
Flask 快速入门
1. Flask 简介 1.1 什么是 Flask Flask 是一个用 Python 编写的轻量级 Web 框架,被誉为 微框架。它提供基础功能,如路由、请求处理和模板引擎,但不强迫开发者使用特定库或工具,赋予开发人员高度的自由选择权,以满足不…...
性能测试03|JMeter:断言、关联、web脚本录制
目录 一、断言 1、响应断言 2、json断言 3、持续时间断言 二、关联 1、正则表达式介绍 2、正则表达式提取器 3、Xpath提取器 4、JSON提取器 5、JMeter属性 三、web脚本录制 一、断言 定义:让程序自动判断实际的返回结果是否与预期结果保持一致 自动校验…...
微信小程序调用 WebAssembly 烹饪指南
我们都是在夜里崩溃过的俗人,所幸终会天亮。明天就是新的开始,我们会变得与昨天不同。 一、Rust 导出 wasm 参考 wasm-bindgen 官方指南 https://wasm.rust-lang.net.cn/wasm-bindgen/introduction.html wasm-bindgen,这是一个 Rust 库和 CLI…...
java_配置使用nacos完整示例
参考:49 尚上优选项目-平台管理端-整合ESMQ实现商品上下架-流程分析_哔哩哔哩_bilibili 1. 下载安装nacos https://github.com/alibaba/nacos/releases 2. 解压,运行 PS D:\path/to\nacos-server-2.4.3\nacos\bin> .\startup.cmd -m standalone 3.…...
Go语言性能优化-字符串格式化优化
在 Go 语言中,格式化字符串(例如使用 fmt.Sprintf、fmt.Printf 等函数)确实可能对性能产生影响,尤其是当频繁执行格式化操作时。格式化字符串涉及对格式符的解析和数据类型的转换,这会增加额外的开销。为了减少格式化字符串带来的性能影响,可以采取以下一些优化策略: 1…...
Spring源码分析之事件机制——观察者模式(二)
目录 获取监听器的入口方法 实际检索监听器的核心方法 监听器类型检查方法 监听器的注册过程 监听器的存储结构 过程总结 Spring源码分析之事件机制——观察者模式(一)-CSDN博客 Spring源码分析之事件机制——观察者模式(二ÿ…...
机器学习和深度学习
机器学习(Machine Learning,简称 ML)和深度学习(Deep Learning,简称 DL)都是人工智能(AI)领域的重要技术,它们的目标是使计算机通过数据学习和自主改进,从而完…...
MetaGPT - 多Agent框架
文章目录 一、关于 MetaGPT功能介绍快速开始的演示视频教程 二、安装Pip安装Docker安装 一、关于 MetaGPT MetaGPT 为GPTs分配不同的角色,以形成一个协作实体来完成复杂的任务。 github : https://github.com/geekan/MetaGPTtwitter : https://twitter.com/MetaGP…...
Hyperbolic dynamics
http://www.scholarpedia.org/article/Hyperbolic_dynamics#:~:textAmong%20smooth%20dynamical%20systems%2C%20hyperbolic%20dynamics%20is%20characterized,semilocal%20or%20even%20global%20information%20about%20the%20dynamics. 什么是双曲动力系统? A hy…...
TIM的输入捕获
IC(Input Capture)输入捕获 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中 我们使用测周法测频率 void IC_Init(void) {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB1PeriphCl…...
SCAU期末笔记 - 数据库系统概念往年试卷解析
数据库搞得人一头雾水,题型太多太杂,已经准备摆烂了。就刷刷往年试卷,挂不挂听天由命。 2019年 Question 1 选择题 1. R ∩ S R∩S R∩S等于一下哪个选项? 画个文氏图秒了 所以选A. R ∩ S R − ( R − S ) R∩SR-(R-S) R∩…...
黑马跟学.苍穹外卖.Day01
黑马跟学.苍穹外卖.Day01 苍穹外卖-day01课程内容1. 软件开发整体介绍1.1 软件开发流程1.2 角色分工1.3 软件环境 2. 苍穹外卖项目介绍2.1 项目介绍2.2 产品原型2.3 技术选型 3. 开发环境搭建3.1 前端环境搭建3.2 后端环境搭建3.2.1 熟悉项目结构3.2.2 Git版本控制3.2.3 数据库…...
获取系统启动时间
获取系统启动时间 uptime命令 gbgb:~$ uptime09:29:41 up 2:21, 4 users, load average: 0.00, 0.00, 0.00 gbgb:~$ 这里的up 13 min表示系统已经运行了2个小时13分钟。 date 命令 /proc/uptime gbgb:~$ date -d "$(awk -F. {print $1} /proc/uptime) second ago&…...