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

【Docker】配置文件

问题

学习Docker期间会涉及到docker的很多配置文件,可能会涉及到的会有:

/usr/lib/systemd/system/docker.service  【docker用于被systemd管理的配置文件】

/etc/systemd/system/docker.service.d【覆盖配置文件的存放处】

/etc/systemd/system/multi-user.target.wants/docker.service【开机启动的配置文件软链接】

/etc/sysconfig/docker【这个配置文件是用来兼容老版本的linux的,一般不建议使用,而是用下面的daemon.json方式】

/etc/docker/daemon.json【这个配置文件是json格式,跨平台的,也是docker官方推荐的】

这么多配置文件,一开始也会有点蒙,到底应该配置那个文件才行。自己整理了一些,做下记录方便以后复习。

介绍

1、/usr/lib/systemd/system/docker.service

/usr/lib/systemd/system/docker.service 文件是 systemd 用来管理 Docker 服务的单元文件。systemd 【【Linux】Systemd介绍-网络整理-CSDN博客】是一个系统和服务管理器,用于 Linux 操作系统中启动和管理系统服务。这个 .service 文件定义了如何启动、停止以及管理 Docker 守护进程(daemon),简单说这个配置文件其实是在linux系统中已经使用了systemd 的情况下,各软件安装后形成的一个配置文件,比如docker.service配置文件里面的内容就是根据systemd规范来写的配置,告诉systemd 进程怎么管理和启动docker。内容如下:

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service containerd.service time-set.target
Wants=network-online.target containerd.service
Requires=docker.socket[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd '--config-file=/etc/docker/daemon.json 【这个是我自己后面加的】' -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=0
RestartSec=2
Restart=always# Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
# Both the old, and new location are accepted by systemd 229 and up, so using the old location
# to make them work for either version of systemd.
StartLimitBurst=3# Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
# Both the old, and new name are accepted by systemd 230 and up, so using the old name to make
# this option work for either version of systemd.
StartLimitInterval=60s# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity
# Older systemd versions default to a LimitNOFILE of 1024:1024, which is insufficient for many
# applications including dockerd itself and will be inherited. Raise the hard limit, while
# preserving the soft limit for select(2).
LimitNOFILE=1024:524288# Comment TasksMax if your systemd version does not support it.
# Only systemd 226 and above support this option.
TasksMax=infinity# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes# kill only the docker process, not all processes in the cgroup
KillMode=process
OOMScoreAdjust=-500[Install]
WantedBy=multi-user.target

一般不建议直接修改文件里面的内容,因为在版本升级时,会直接覆盖这个文件,到时自己的配置就会被覆盖,那么针对这种情况怎么办? 然后下面介绍第二个配置

2、/etc/systemd/system/docker.service.d/

/etc/systemd/system/docker.service.d/ 目录用于存放 Docker 服务单元文件【就是指/usr/lib/systemd/system/docker.service这个文件】的覆盖配置。这个目录允许系统管理员在不直接修改原始服务单元文件的情况下,对 Docker 服务进行自定义配置。这种方法的好处是,当你更新 Docker 包时,这些覆盖配置不会被新版本的默认配置文件所覆盖,从而保持了你所做的更改。意思就是说你可以在docker.service.d目录下新建xx.conf配置,然后里面指定[Service]或者[Unit]等,然后systemd启动docker时会用这个xx.conf配置文件中的[Service]配置项覆盖/usr/lib/systemd/system/docker.service文件中对应的[service]项中对应的配置

在这个目录下,你可以创建一个或多个以 .conf 结尾的文件,每个文件都可以包含 [Service][Unit][Install] 等节,用来覆盖 /usr/lib/systemd/system/docker.service 中相应的设置。

例如,如果你想添加一些环境变量或者修改 ExecStart 命令行参数,可以创建一个名为 override.conf 的文件:

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/override.conf

然后,在 override.conf 文件中添加如下内容:

[Service]
Environment="DOCKER_OPTS=--storage-driver=overlay2"
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

上面的例子中:

  • Environment 行添加了一个环境变量。
  • ExecStart= 清除了原来的 ExecStart 值。
  • 新的 ExecStart 指定了新的启动命令。

编辑完成后,你需要重新加载 systemd 配置并重启 Docker 服务来应用更改:

sudo systemctl daemon-reload
sudo systemctl restart docker

使用这种方式,你可以灵活地调整 Docker 服务的行为,而不需要担心未来的软件更新会破坏你的定制设置。同时,这也遵循了 systemd 的最佳实践,即尽量避免直接修改 /usr/lib/systemd/system/docker.service 的原版单元文件。

3、/etc/systemd/system/multi-user.target.wants/docker.service

这个文件是一个软链接,它指向:

[root@localhost ]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
这个配置文件指向的还是: /usr/lib/systemd/system/docker.service

4、/etc/sysconfig/docker

以下是 通义千问给出的答案:

/etc/sysconfig/docker 是一个配置文件,主要用于基于 System V init 或者与之兼容的初始化系统的 Linux 发行版(如一些较旧版本的 CentOS 和 RHEL)中。这个文件用来设置 Docker 守护进程(daemon)启动时的环境变量和其他一些选项。它允许系统管理员在不直接修改 Docker 服务单元文件的情况下定制 Docker 的行为。

主要用途
  • 设置环境变量:你可以在 /etc/sysconfig/docker 文件中定义环境变量,这些变量会在 Docker daemon 启动时被使用。例如,可以设置 DOCKER_OPTS 来传递额外的命令行参数给 Docker daemon。
  • 自定义 Docker 配置:除了环境变量,还可以设置其他配置项,比如日志级别、存储驱动等,具体取决于你的 Docker 版本和发行版的具体实现。

一个典型的 /etc/sysconfig/docker 文件可能看起来像这样:

# /etc/sysconfig/docker 示例
# 设置 Docker daemon 的选项
DOCKER_OPTS="--storage-driver=devicemapper --dns 8.8.8.8 --dns 8.8.4.4"# 其他可能的设置
# 日志级别
DOCKER_LOGLEVEL="info"

在这个例子中:

  • DOCKER_OPTS 变量用于指定 Docker daemon 的启动参数,比如指定了存储驱动为 devicemapper 并设置了 DNS 服务器。
  • DOCKER_LOGLEVEL 可以用来设定 Docker 的日志级别,这取决于 Docker 的具体实现和支持的选项。
使用场景

如果你的系统还在使用 System V init 脚本来管理服务,那么 /etc/sysconfig/docker 就是定制 Docker 守护进程配置的主要方式之一。然而,随着越来越多的现代 Linux 发行版采用 systemd 作为默认的服务管理系统,通常会推荐使用 /etc/docker/daemon.json 来进行 Docker daemon 的配置,并且可以通过创建覆盖文件(如 /etc/systemd/system/docker.service.d/override.conf)来进一步调整 systemd 服务单元的行为。

注意事项
  • 如果你正在使用的 Linux 发行版已经迁移到了 systemd,那么建议优先考虑使用 /etc/docker/daemon.json 和 systemd 的覆盖机制来配置 Docker。
  • 在修改任何配置文件之前,最好备份原始文件,以防出现问题时能够恢复。
  • 修改完配置文件后,需要重启 Docker 服务才能使更改生效。

5、/etc/docker/daemon.json

    一句话就是docker官方推荐使用这个跨平台的json格式文件来配置docker的 daemon进程。

所以除了/usr/lib/systemd/system/docker.service 其他的几种可以不关心.

看网络资料说:这个配置文件需要 docker 版本高于 1.12.6,没有测试过。

所以综合和上面的介绍,我个人认为笔记正确的配置是:

1、在/etc/systemd/system/docker.service.d/目录创建一个覆盖配置 ,我创建了一个override.conf文件,内容如下,

 

 然后:

systemctl daemon-reload

systemctl restart docker

: systemctl status docker 查看状态,可以看到Drop-In 指向了覆盖配置,说明覆盖配置使用了

然后我们可以在这个覆盖配置中的: ExecStart  启动命令项中加入: 其他配置文件记录

文件内容如下:

docker info 指令查看下:

说明配置起作用了。

网络参考:【docker配置参数详解---/etc/docker/daemon.json完整参数_docker daemon.json配置-CSDN博客】

相关文章:

【Docker】配置文件

问题 学习Docker期间会涉及到docker的很多配置文件,可能会涉及到的会有: /usr/lib/systemd/system/docker.service 【docker用于被systemd管理的配置文件】 /etc/systemd/system/docker.service.d【覆盖配置文件的存放处】 /etc/systemd/system/mul…...

坐标系变换总结

二维情况下的转换 1 缩放变换 形象理解就是图像在x方向和y方向上放大或者缩小。 代数形式: { x ′ k x x y ′ k y y \begin{cases} x k_x x \\ y k_y y \end{cases} {x′kx​xy′ky​y​ 矩阵形式: ( x ′ y ′ ) ( k x 0 0 k y ) ( x y ) \be…...

数据在内存中的存储【上】

一.整型在内存中的存储 在讲解操作符的时候,我们就讲过了下面的内容: 整数的2进制表示方法有三种,即 原码、反码和补码 有符号的整数,三种表示方法均有符号位和数值位两部分,符号位都是用0表示"正"&#xff…...

Prometheus之Pushgateway使用

Pushgateway属于整个架构图的这一部分 The Pushgateway is an intermediary service which allows you to push metrics from jobs which cannot be scraped. The Prometheus Pushgateway exists to allow ephemeral and batch jobs to expose their metrics to Prometheus. S…...

Rust Web开发常用库

本集合中所有库都是在开源项目中广泛使用且在2024年积极维护的库,排名靠前的库是当前使用比较广泛的,不全面但够用 Rust异步运行时 tokio:异步运行时 async_std:与标准库兼容性较强的运行时 monoio:字节开源 smol…...

ios内购支付-支付宝APP支付提现

文章目录 前言一、IOS内购支付(ios订单生成自己写逻辑即可)1.支付回调票据校验controller1.支付回调票据校验server 二、安卓APP支付宝支付1.生成订单返回支付宝字符串(用于app拉起支付宝,这里用的是证书模式)2.生成订…...

新课发布|鸿蒙HarmonyOS Next商城APP应用开发实战

2024年年初,鸿蒙HarmonyOS Next星河版强势发布,随着鸿蒙系统的普及和应用场景的拓展,市场需求将持续增加。鸿蒙系统已经应用于华为的智能手机、平板电脑、智能家居等多个领域,并有望在未来拓展到智能汽车、物联网等更多领域。这为…...

基于Java,SpringBoot,Vue智慧校园健康驿站体检论坛请假管理系统

摘要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差&#xf…...

【数据分享】2001-2023年我国省市县镇四级的逐月平均气温数据(免费获取/Shp/Excel格式)

之前我们分享过1901-2023年1km分辨率逐月平均气温栅格数据,该数据来源于国家青藏高原科学数据中心。为方便大家使用,我们还基于上述平均气温栅格数据将数据处理为Shp和Excel格式的省市县三级逐月平均气温数据(可查看之前的文章获悉详情&#…...

c#代码介绍23种设计模式_16迭代器模式

目录 1、迭代器模式的介绍 2、迭代器模式的定义 3、迭代器模式的结构 4、代器模式角色组成 5、迭代器实现 6、迭代器模式的适用场景 7、迭代器模式的优缺点 8、.NET中迭代器模式的应用 9、实现思路 1、迭代器模式的介绍 迭代器是针对集合对象而生的,对于集合对象而言…...

408算法题leetcode--第23天

236. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先\思路:递归,如注释时间和空间:O(n) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) …...

帝国CMS系统开启https后,无法登陆后台的原因和解决方法

今天本地配置好了帝国CMS7.5,传去服务器后,使用http访问一切正常。但是当开启了https(SSL)后,后台竟然无法登陆进去了。 输入账号密码后,点击登陆,跳转到/e/admin/ecmsadmin.php就变成页面一片…...

根据视频id查询播放量

声明:文章仅用于学习交流,如有侵权请联系删除 如何根据视频ID查询视频的播放数量 在数字化时代,视频内容的消费已成为人们日常生活的重要组成部分。无论是社交媒体平台上的短视频,还是视频分享网站上的长视频,了解视频的播放数量…...

初始爬虫11

1.斗鱼selenium爬取 # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By import timeclass Douyu(object):def __init__(self):self.url https://www.douyu.com/directory/allself.driver webdriver.Chrome()self.driver…...

SSY20241002提高组T4题解__纯数论

题面 题目描述 有一天 p e o p 1 e peop1e peop1e 学长梦到了一个丑陋的式子: ∑ i 1 n ( ∑ m 1 R F m ) ! i ! ∑ l 0 i ∑ j 0 ∑ t 1 R F t { K i − l } l ! { i ∑ w 1 R F w − j } j ! \sum_{i1}^n (\sum_{m1}^R F_m)!\times i!\times \sum_{l…...

Python:lambda 函数详解 以及使用

一、lambda 语法 lambda 函数的语法只包含一个语句,表现形式如下: lambda [arg1 [,arg2,.....argn]]:expression 其中,lambda 是 Python 预留的关键字,[arg…] 和 expression 由用户自定义。 具体如下: [arg…] 是参数列表&#…...

【C++】空指针和野指针

文章目录 1.空指针2.野指针总结 1.空指针 概念:指针变量指向内存中编号为0的空间。 用途:初始化指针变量。 注意:空指针指向的内存是不可以访问的。 示例: int main(){//指针变量p指向内存地址编号为0的空间int *PNULL&#…...

大模型提示词

纯输入版提示工程词 输出一个九九乘法口诀表 当然可以!以下是九九乘法口诀表: 1 x 1 1 1 x 2 2 2 x 2 4 1 x 3 3 2 x 3 6 3 x 3 9 1 x 4 4 2 x 4 8 3 x 4 12 4 x 4 16 1 x 5 5 2 x 5 10 3 x 5 15 4 x 5 20 5 …...

在线css像素px到Em的转换器

具体请前往:在线Px转Em工具--将绝对像素(px)长度单位转换为相对长度em...

回溯算法解决排列组合及子集问题

216. 组合总和 III39. 组合总和40. 组合总和 II46. 全排列47. 全排列 II77. 组合 78. 子集 90. 子集 II 以上是力扣设计相关问题的题目。排列组合还是子集问题无非就是从序列 nums 中以给定规则取若干元素,主要有以下几类: 元素无重不可复选&#xff0…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

多元隐函数 偏导公式

我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式&#xff0c;给定一个隐函数关系&#xff1a; F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 &#x1f9e0; 目标&#xff1a; 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z​、 …...