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

docker详解介绍+基础操作 (三)

1.docker 存储引擎

Overlay: 一种Union FS文件系统,Linux 内核3.18后支持

Overlay2:Overlay的升级版,docker的默认存储引擎,需要磁盘分区支持d-type功能,因此需要系统磁盘的额外支持。

关于 d-type 传送门 docker详解介绍+基础操作 (二)-CSDN博客

由于centos8及ubuntu1604版本均支持,其他引擎就不展开说明了

2.docker优化配置

注:新建容器有效,优化前的容器不生效

1)docker优化

优化 Docker 的配置文件(通常是 `/etc/docker/daemon.json`)可以显著提高 Docker 的性能和安全性。以下是一些详细的配置选项和解释,帮助你根据具体需求进行优化。

 ①. 存储驱动优化

 选择合适的存储驱动

Docker 使用存储驱动来管理容器的文件系统。选择合适的存储驱动可以提高性能。

 overlay2:这是默认的存储驱动,适用于大多数情况。它提供了良好的性能和较低的磁盘使用率。

{"storage-driver": "overlay2"}

devicemapper:适用于某些特定的存储设备,但性能可能不如 overlay2。

  {"storage-driver": "devicemapper"}

配置存储选项

对于 `overlay2`,可以配置一些高级选项,例如 `size` 和 `mountopt`。
 

{"storage-driver": "overlay2","storage-opts": ["overlay2.size=10G","overlay2.mountopt=nodev"]
}

overlay2.size:设置每个容器的文件系统大小限制。
overlay2.mountopt:设置挂载选项,例如 nodev可以禁用设备文件的挂载。

②. 日志驱动和日志大小限制

限制容器的日志大小可以防止日志文件占用过多磁盘空间。

{"log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "3"}
}

log-driver:指定日志驱动,默认是 `json-file`。
max-size:设置每个日志文件的最大大小。
max-file:设置日志文件的最大数量。

③. DNS 配置

优化 DNS 配置可以提高容器的网络性能。

{"dns": ["8.8.8.8", "8.8.4.4"],"dns-opts": ["ndots:2", "timeout:2", "attempts:2"]
}

dns:指定 DNS 服务器地址。
dns-opts:设置 DNS 查询选项,例如 `ndots`、`timeout` 和 `attempts`。

 ④. 网络配置

优化网络配置可以提高容器的网络性能和安全性。
 

{"iptables": true,"ip-forward": true,"ip-masq": true,"userland-proxy": false,"bridge": "docker0","fixed-cidr": "172.17.0.0/16","mtu": 1500
}

iptables:启用或禁用 `iptables` 规则。
ip-forward:启用 IP 转发。
ip-masq:启用 NAT 转发。
userland-proxy:禁用用户态代理,使用内核态代理。
bridge:指定默认的网桥接口。
fixed-cidr:指定固定的 CIDR 范围。
mtu:设置最大传输单元(MTU)。

⑤. 安全配置

启用安全选项可以提高容器的安全性。

{"security-opt": ["apparmor=unconfined","seccomp=unconfined"],"cgroup-parent": "/docker-cgroups"
}

apparmor:配置 AppArmor 安全策略。
seccomp:配置 Seccomp 安全策略。
cgroup-parent:指定 cgroup 的父目录。

⑥. 资源限制

限制 Docker 守护进程的资源使用可以防止其占用过多系统资源。
 

{"default-ulimits": {"nofile": {"Name": "nofile","Hard": 65536,"Soft": 65536}},"live-restore": true
}

default-ulimits:设置默认的资源限制。
live-restore:启用实时恢复,以便在 Docker 守护进程重启时保持容器运行。

⑦. 实验性功能

启用实验性功能可以尝试新的特性和改进,但需要注意这些功能可能不稳定。
 

{"experimental": true
}

⑧. 镜像加速

使用镜像加速器可以加快镜像的下载速度。

{"registry-mirrors": ["https://mirror.example.com"]
}

registry-mirrors:指定镜像加速器的 URL。

 ⑨. 高级配置

数据根目录

指定 Docker 数据的根目录,可以提高磁盘性能。
 

{"data-root": "/mnt/docker-data"
}

data-root:指定 Docker 数据的根目录。

代理配置

配置 HTTP 和 HTTPS 代理,以便 Docker 守护进程可以通过代理访问互联网。

{"http-proxy": "http://proxy.example.com:8080","https-proxy": "https://proxy.example.com:8080","no-proxy": "localhost,127.0.0.1,.example.com"
}

http-proxy:HTTP 代理的 URL。
https-proxy:HTTPS 代理的 URL。
no-proxy:不需要通过代理访问的主机列表。

保存配置文件后,重启 Docker 服务以使更改生效。

sudo systemctl daemon-reload && systemctl restart docker

⑩开启远程连接

开启 Docker 的远程连接功能可以让你从其他机器上通过 API 或 CLI 管理 Docker 守护进程。以下是如何配置 Docker 以允许远程连接的详细步骤。

1. 修改 Docker 配置文件

Docker 的配置文件通常是 `/etc/docker/daemon.json`。你需要在这个文件中添加或修改 `hosts` 配置项,以允许远程连接。

1.1 打开配置文件

使用你喜欢的文本编辑器打开 `/etc/docker/daemon.json` 文件:

sudo vim /etc/docker/daemon.json

 1.2 添加或修改 hosts 配置

在 daemon.json 文件中添加或修改 hosts 配置项,以允许远程连接。例如,如果你想允许所有 IP 地址通过 TCP 连接到 Docker 守护进程,可以使用以下配置:
 

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

unix:///var/run/docker.sock:本地 Unix 套接字,用于本地连接。
-tcp://0.0.0.0:2375:允许所有 IP 地址通过 TCP 端口 2375 连接到 Docker 守护进程。

如果你只想允许特定的 IP 地址连接,可以使用以下配置:
 

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

这里 192.168.1.100 是你希望允许连接的 IP 地址。

2. 重启 Docker 服务

保存配置文件后,重启 Docker 服务以使更改生效:

sudo systemctl daemon-reload && systemctl restart docker

 3. 配置防火墙

确保防火墙允许 TCP 端口 2375 的流量。你可以使用 ufw(Uncomplicated Firewall)或其他防火墙工具来配置。

 3.1 使用 ufw

如果你使用ufw,可以运行以下命令允许端口 2375:
 

sudo ufw allow 2375/tcp

 3.2 使用 iptables

如果你使用 iptables,可以运行以下命令允许端口 2375:
 

sudo iptables -A INPUT -p tcp --dport 2375 -j ACCEPT
sudo service iptables save

4. 验证远程连接

从另一台机器上,使用 docker CLI 连接到远程 Docker 守护进程。例如,假设远程 Docker 守护进程的 IP 地址是 192.168.1.100,你可以运行以下命令:
 

docker -H tcp://192.168.1.100:2375 version

如果连接成功,你应该会看到 Docker 守护进程的版本信息。

5. 安全性考虑

开启远程连接会增加安全风险,因此建议采取以下措施:

使用 TLS 加密:配置 TLS 以加密通信,防止中间人攻击。
限制访问:只允许信任的 IP 地址访问 Docker 守护进程。
使用防火墙:配置防火墙规则,仅允许特定 IP 地址访问端口 2375。
使用认证:配置 Docker 守护进程使用认证机制,例如 HTTP 基本认证或 OAuth。

5.1 配置 TLS

1. 生成 TLS 证书和密钥:

   你可以使用 openssl`生成自签名证书和密钥:

   openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca-key.pem -x509 -days 365 -out ca.pemopenssl req -newkey rsa:4096 -nodes -sha256 -keyout server-key.pem -out server.csropenssl x509 -req -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -days 365openssl req -newkey rsa:4096 -nodes -sha256 -keyout client-key.pem -out client.csropenssl x509 -req -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -days 365

2. 配置 Docker 守护进程:

   在 /etc/docker/daemon.json 文件中添加 TLS 相关配置:

{"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"],"tls": true,"tlscacert": "/path/to/ca.pem","tlscert": "/path/to/server-cert.pem","tlskey": "/path/to/server-key.pem","tlsverify": true}

3. 重启 Docker 服务:

sudo systemctl daemon-reload && systemctl restart docker

4. 从客户端连接:

   从客户端机器上,使用 TLS 连接到 Docker 守护进程:
 

 docker -H tcp://192.168.1.100:2375 --tlsverify --tlscacert=/path/to/ca.pem --tlscert=/path/to/client-cert.pem --tlskey=/path/to/client-key.pem version

相关文章:

docker详解介绍+基础操作 (三)

1.docker 存储引擎 Overlay: 一种Union FS文件系统,Linux 内核3.18后支持 Overlay2:Overlay的升级版,docker的默认存储引擎,需要磁盘分区支持d-type功能,因此需要系统磁盘的额外支持。 关于 d-type 传送…...

【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers

【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers 目录 文章目录 【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers目录0. 引言1. 简介2 相关工作2.1 基于特征的无监督方法2.2 无监督微调方法2.3…...

【Java】集合中单列集合详解(一):Collection与List

目录 引言 一、Collection接口 1.1 主要方法 1.1.1 添加元素 1.1.2 删除元素 1.1.3 清空元素 1.1.4 判断元素是否存在 1.1.5 判断是否为空 1.1.6 求取元素个数 1.2 遍历方法 1.2.1 迭代器遍历 1.2.2 增强for遍历 1.2.3 Lambda表达式遍历 1.2.4 应用场景 二、…...

【Fine-Tuning】大模型微调理论及方法, PytorchHuggingFace微调实战

Fine-Tuning: 大模型微调理论及方法, Pytorch&HuggingFace微调实战 文章目录 Fine-Tuning: 大模型微调理论及方法, Pytorch&HuggingFace微调实战1. 什么是微调(1) 为什么要进行微调(2) 经典简单例子:情感分析任务背景微调 (3) 为什么微调work, 理论解释下 2…...

清华系“仓颉”来袭:图形起源:用AI颠覆字体设计,推动大模型商业化落地

大模型如何落地?又该如何实现商业化?这一议题已成为今年科技领域的焦点话题。 在一个鲜为人知的字体设计赛道上,清华创业公司“图形起源”悄然实现了商业变现:他们帮助字体公司将成本降低了80%,生产速度提升了10倍以上…...

分布式一致性协议的深度解析:Paxos与Raft

分布式系统的复杂性源于节点失效、网络分区、消息丢失等诸多不确定性。在这种背景下,分布式一致性问题应运而生,成为解决这些问题的核心。本文将从理论到实践,深入探讨两种经典的一致性协议:Paxos与Raft。文章适合有一定分布式系统…...

ai写作,五款软件助你快速写作!

在这个信息爆炸的时代,内容创作成为了连接用户、传递价值的桥梁。然而,面对日益增长的创作需求,如何在保证质量的同时提升效率,成为了每位创作者面临的难题。幸运的是,随着人工智能技术的飞速发展,AI写作软…...

解决JavaScript 数学运算精度丢失的问题

JavaScript 中执行浮点数运算时可能会遇到精度丢失的问题。这通常是因为浮点数的表示遵循IEEE 754标准,而这种表示法只能精确地表示有限的数字。对于大多数程序员来说,这不是一个问题,因为它允许计算机处理超出精度范围之外的数字。然而&…...

mysql学习教程,从入门到精通,SQL窗口函数(38)

1、SQL窗口函数 SQL窗口函数(Window Functions)是一种强大的数据分析工具,它们允许你在结果集的行上执行计算,而不需要将这些行分组到单独的输出行中。窗口函数通常与OVER()子句一起使用,该子句定义了窗口或分区&…...

gbase8s数据库实现黑白名单的几种方案

1、借用操作系统的黑白名单 2、使用数据库 TRUSTED CONTEXT 机制 CREATE TRUSTED CONTEXT tcx1USER rootATTRIBUTES (ADDRESS 172.16.39.162)ATTRIBUTES (ADDRESS 172.16.39.163)ENABLEWITH USE FOR wangyx WITHOUT AUTHENTICATION; 如上创建 可信任上下文对象 tcx1 在 jdb…...

Qt-窗口布局按钮输入类

1. 窗口布局 Qt 提供了很多摆放控件的辅助工具(又称布局管理器或者布局控件),它们可以完成两件事: 自动调整控件的位置,包括控件之间的间距、对齐等; 当用户调整窗口大小时,位于布局管理器内的…...

Apache DolphinScheduler社区9月进展记录

各位热爱 Apache DolphinScheduler 的小伙伴们,社区 9 月月报更新啦!这里将记录 Apache DolphinScheduler 社区每月的重要更新,欢迎关注! 月度 Merge Star 感谢以下小伙伴上个月为 Apache DolphinScheduler 做的精彩贡献&#x…...

在docker中安装并运行mysql8.0.31

第一步:命令行拉取mysql镜像 docker pull mysql:8.0.31查看是否拉取成功 docker images mysql:latest第二步:运行mysql镜像,启动mysql实例 docker run -p 3307:3307 -e MYSQL_ROOT_PASSWORD"123456" -d mysql:8.0.313307:3307前…...

C++ | Leetcode C++题解之第458题可怜的小猪

题目&#xff1a; 题解&#xff1a; class Solution { public:int poorPigs(int buckets, int minutesToDie, int minutesToTest) {if (buckets 1) {return 0;}vector<vector<int>> combinations(buckets 1,vector<int>(buckets 1));combinations[0][0] …...

【万字长文】Word2Vec计算详解(三)分层Softmax与负采样

【万字长文】Word2Vec计算详解&#xff08;三&#xff09;分层Softmax与负采样 写在前面 第三部分介绍Word2Vec模型的两种优化方案。 【万字长文】Word2Vec计算详解&#xff08;一&#xff09;CBOW模型 markdown行 9000 【万字长文】Word2Vec计算详解&#xff08;二&#xff0…...

【分布式微服务云原生】探索Dubbo:接口定义语言的多样性与选择

目录 探索Dubbo&#xff1a;接口定义语言的多样性与选择引言Dubbo的接口定义语言&#xff08;IDL&#xff09;1. Java接口2. XML配置3. 注解4. Protobuf IDL 流程图&#xff1a;Dubbo服务定义流程表格&#xff1a;Dubbo IDL方式比较结论呼吁行动Excel表格&#xff1a;Dubbo IDL…...

SAP将假脱机(Spool requests)内容转换为PDF文档[RSTXPDFT4]

将假脱机(Spool requests)内容转换为PDF文档[RSTXPDFT4] 有时需要将Spool中的内容导出成PDF文件&#xff0c;sap提供了一个标准程序RSTXPDFT4可以实现此功能。 1, Tcode:SP01, 进入spool requests list 2, SE38 运行程序RSTXPDFT4 输入spool reqeust号码18680&#xff0c;然后…...

DNS能加速游戏吗?

在游戏玩家追求极致游戏体验的今天&#xff0c;任何可能提升游戏性能的因素都备受关注&#xff0c;DNS&#xff08;域名系统&#xff09;便是其中一个被探讨的对象。那么&#xff0c;DNS能加速游戏吗&#xff1f; 首先&#xff0c;我们需要了解DNS的基本功能。DNS就像是互联网…...

Raspberry Pi3B+之C/C++开发环境搭建

Raspberry Pi3B之C/C开发环境搭建 1. 源由2. 环境搭建2.1 搭建C语言开发环境2.2 工程目录结构2.3 Makefile2.4 Demo (main.c) 3. 测试工程3.1 编译3.2 运行 4. 总结5. 参考资料 1. 源由 为了配合《Ardupilot开源飞控之FollowMe验证平台搭建》&#xff0c;以及VINS-Fusion对于图…...

[笔记] 仿射变换性质的代数证明

Title: [笔记] 仿射变换性质的代数证明 文章目录 I. 仿射变换的代数表示II. 仿射变换的性质III. 同素性的代数证明1. 点变换为点2. 直线变换为直线 IV. 结合性的代数证明1. 直线上一点映射为直线上一点2. 直线外一点映射为直线外一点 V. 保持单比的代数证明VI. 平行性的代数证明…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面&#xff0c;接口成功记录日志&#xff0c;失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...