【Docker】专题五:Docker 配置文件详解

这篇具有很好参考价值的文章主要介绍了【Docker】专题五:Docker 配置文件详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!

docker容器的配置文件,Docker,docker,容器,运维


目录

一、docker.service 文件

二、docker.socket 文件

三、daemon.json 文件


一、docker.service 文件

1、基本介绍

docker.service 是 Docker 守护进程(Docker Daemon)在 Linux 系统上使用 systemd 作为初始化系统时的服务单元文件,它定义了 Docker 服务启动、停止和管理的方式。

docker.service 默认位于 /etc/systemd/system 目录或 /lib/systemd/system 目录。

2、配置示例

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service
Wants=network-online.target
Requires=docker.socket

[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd://
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

3、配置说明

[Unit]:定义了 Docker 服务的元数据信息,包括描述、文档链接、启动顺序等
[Service]:定义了 Docker 守护进程的行为和属性,包括启动命令、重新加载命令、资源限制等
[install]:定义了 Docker 服务的安装位置和所属目标

###########################################################################
# [Unit] 下配置说明
Description               # 对 Docker 服务的描述
Documentation             # Docker 在线文档链接
After                     # 指定 Docker 服务在哪些服务之后启动
Wants:                    # 指定 Docker 服务启动后,需要启动的服务
Requires                  # 指定 Docker 服务启动前,必须已启动的服务

# [Service] 下配置说明
Type                      # 指定 Docker 服务启动时的行为。notify 表示服务就绪后发送信号给 systemd
ExecStart                 # Docker 服务启动命令
ExecReload                # Docker 服务重载命令
LimitNOFILE               # 指定 Docker 服务最大文件句柄数,默认为 infinity 无限制
LimitNPROC                # 指定 Docker 服务最大进程数,默认为 infinity 无限制
LimitCORE                 # 指定 Docker 服务最大核心转存文件大小,默认为 infinity 无限制
TasksMax                  # 指定 Docker 服务最大任务数,默认为 infinity 无限制
TimeoutStartSec           # 指定启动 Docker 服务时等待的秒数
Delegate                  # 指定为 yes 时,systemd 不会重置容器的 cgroups
KillMode                  # 指定 Systemd 如何杀死 Docker 进程(control-group、process、mixed、none)
Restart                   # 指定 Docker 服务的重启策略,默认
StartLimitInterval        # 指定 Docker 服务启动失败计数的时间窗口
StartLimitBurst           # 指定 StartLimitInterval 时间内,Docker 服务可以启动失败的次数

# [Install] 下配置说明
WantedBy                  # 指定启动 Docker 服务的 target,默认为 multi-user.target


###########################################################################
🔔 ExecStart 指令示例说明:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

(1) /usr/bin/dockerd: 指定 Docker daemon(即 dockerd)的完整路径
(2) -H fd://: 指定 Docker daemon 监听的套接字类型
fd:// 表示 Docker daemon 将使用文件描述符传递(file descriptor passing)与 Docker Client 通信
(3) --containerd=/run/containerd/containerd.sock: 指定 Docker daemon 寻找 Containerd 套接字的位置

###########################################################################
🔔 Restart 指令取值说明:
no(默认值):服务不会被重启
on-success:仅当服务正常退出(退出码为0)时才会重启
on-failure:仅当服务异常退出(非零退出码)时才会重启
on-abnormal:仅当服务以异常信号退出或被终止时才会重启
on-abort:仅当服务因为接收到 SIGABRT 信号而退出时才会重启
on-watchdog:仅当服务超时(看门狗超时)时才会重启
always:无论服务是正常退出还是异常退出,都会重启

二、docker.socket 文件

1、基本介绍

docker.socket 是 Docker 守护进程(Docker Daemon)在 Linux 系统上使用 systemd 作为初始化系统时的 UNIX 套接字文件,是 Docker API 的主要入口,Docker Client 默认使用该套接字执行 Docker 命令。

docker.socket 默认位于 /etc/systemd/system 目录或 /lib/systemd/system 目录。

2、配置示例

[Unit]
Description=Docker Socket for the API
PartOf=docker.service

[Socket]
ListenStream=/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=root

[Install]
WantedBy=sockets.target

3、配置说明

# [Unit] 下配置说明
Description               # 对套接字的描述 
PartOf                    # 取值为 docker.service,表示是 docker.service 的一部分

# [Socket] 下配置说明
ListenStream              # 指定套接字的监听路径
SocketMode                # 指定套接字的访问权限
SocketUser                # 指定套接字的用户
SocketGroup               # 指定套接字的组

# [Install] 下配置说明
WantedBy                  # 指定当 sockets.target 启动时,本套接字被激活

三、daemon.json 文件

1、基本介绍

daemon.json 也是 Docker 守护进程(Docker Daemon)的配置文件,用于 Linux 系统管理员自定义 Docker 守护程序的行为。

daemon.json 默认位于 /etc/docker 目录。

2、配置示例

{
	"data-root": "/data/docker",
    "exec-root": "/var/run/docker",
    "bridge": "none",
    "iptables": true,
    "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:4243"],
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-level": "warn",
    "log-opts": {
        "max-size": "500m",
        "max-file": "3"
    },
    "insecure-registries" : ["demo.local.hub:5000"],
    "bip": "192.168.100.1/24",
    "default-address-pools": [
        {
            "scope": "local",
            "base": "172.17.0.0/16",
            "size": 24
        }
    ],
    "oom-score-adjust": -1000,
    "registry-mirrors": ["https://registry.docker-cn.com"],
    "storage-driver": "overlay2",
    "storage-opts":["overlay2.override_kernel_check=true"],
    "live-restore": true,
    "max-concurrent-downloads": 5
}

3、配置说明文章来源地址https://www.toymoban.com/news/detail-855403.html

data-root                  # 指定 Docker 数据目录,默认为 /var/lib/docker
exec-root                  # 指定 Docker 执行状态文件的存储路径,默认为 /var/run/docker
bridge                     # 指定 Docker 在启动时,是否自动创建默认网桥接口 docker0
iptables                   # 指定是否允许 Docker 修改 iptables 规则,true 允许,false 禁止
hosts                      # 指定 Docker 监听的套接字和端口
exec-opts                  # 指定 Docker 的 cgroup 驱动类型,可选 systemd(K8S 推荐这个)、cgroupfs
log-driver                 # 指定 Docker 日志驱动类型,默认为 json-file
log-level                  # 指定 Docker 日志记录级别,包括 debug、info、warn、error、fatal
log-opts                   # 指定 Docker 日志文件策略,max-size 指定每个日志文件大小,max-file 指定保留的日志文件数
insecure-registries        # 指定 Docker 可以通过 HTTP 连接的镜像仓库地址
bip                        # 指定 Docker 默认网桥接口 docker0 的 IP 地址和网络掩码
default-address-pools      # 指定 Docker 容器使用的子网地址池
oom-score-adjust           # 指定 Docker OOM 得分值
registry-mirrors           # 指定 Docker 拉取镜像时使用的镜像仓库加速地址
storage-driver             # 指定 Docker 存储驱动类型,推荐 overlay2
storage-opts               # 指定 Docker 额外的存储驱动选项
live-restore               # 指定 Docker 是否启用“实时恢复”功能,true 为启用(允许 Docker 在更新或重启时,不终止运行中的容器)
max-concurrent-downloads   # 指定 Docker 拉取镜像时同时运行的最大下载任务数

到了这里,关于【Docker】专题五:Docker 配置文件详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试|Docker cp命令详解:在Docker容器和主机之间复制文件/文件夹

    简介 Docker是一种流行的容器化平台,它允许开发人员在独立、可移植的环境中构建、打包和部署应用程序。在使用Docker时,常常需要在Docker容器和主机之间进行文件的复制和共享。Docker提供了一个名为 docker cp 的命令,可以轻松地在容器和主机之间复制文件和目录。本文将详

    2024年02月12日
    浏览(68)
  • 如何更改在Docker中运行容器的配置文件

    参照网上的一些方式,有的要么太麻烦,有的要么没成功。 第一种方法,就是在Docker里安装Vim,首先exec进入你的容器,进行安装(因为容器化隔离了,Linux里的Vim用不了,你得进入目标容器进行安装),按照原来的目录找到文件修改就行,但是我怎么也安装不上,无论是使用

    2024年02月11日
    浏览(41)
  • 环境配置 | win10上配置Docker,创建容器并运行【图文详解】

    本文利用图文,详解了在win10上如何配置Docker,创建容器并运行,超简单版~ 电脑环境:windows10家庭版 一定要确认好版本:查看自己的电脑版本,以下操作win10家庭版和专业版都可以。 点击右侧的getDocker 即可,可以看到按钮上面对操作系统的要求为win10专业版 或企业版64位,

    2024年02月07日
    浏览(59)
  • docker基本操作:安装部署、设置ssh远程登入、配置docker镜像文件并创建docker容器

    Docker 是一个流行的应用程序容器化和部署平台,允许开发人员轻松地创建、部署和管理容器中的应用程序。 请注意运行此命令需要 root 或 sudo 权限,因此可能需要在命令前加上 sudo 并输入密码。 一、更新系统工具(ubuntu) 安装docker 查看docker版本 启动docker服务 二、一些基本

    2024年02月04日
    浏览(67)
  • 【Docker】Docker挂载和修改容器中的目录及配置文件的若干种方式

    我们知道,Docker相当于提供了一个 独立于宿主机的运行环境。当我们使用Docker部署了中间件例如nginx的容器后,一般都是需要修改配置文件的。那么我们想到的第一个方法就是进入容器去修改[1]。 1.进入容器内修改 首先我们需要有一个已经启动的容器。pull image后通过run-d -

    2024年02月08日
    浏览(41)
  • Docker专题系列之十三:docker容器内安装vim编辑器

    在使用docker时,有时候我们需要编辑配置文件,需要使用vim或者vi命令,但是会发现: 这是因为vim没有安装,使用如下命令安装: 一般而言,又会出现如下问题: 此时需要更新一下apt-get命令,然后再执行vim安装命令就可以了: 如果apt不行,可以使用下面的方式: 1.输入rp

    2024年02月16日
    浏览(53)
  • 通过运行中的容器生成 Docker Compose 配置文件

    笔者之前有一次不小心删除了原始的 docker-compose.yml 文件,不过正在运行的 Docker 容器还在,找了许久,发现一个方法可以从这些容器中生成一个等效的 Docker Compose 配置文件。本文将介绍使用 autocompose 工具从正在运行的容器中反向生成 docker-compose.yml 文件。 首先,确保你已经

    2024年02月07日
    浏览(42)
  • docker 安装的mysql修改配置文件 一、先看一下容器绑定的配置文件目录在哪

    如图,mysql容器的配置文件映射在服务器  /opt/mysql_docker/conf目录下。所以想修改容器的配置文件内容,只需要修改 /opt/mysql_docker/conf中的配置文件。  二、发现 /opt/mysql_docker/conf 目录下没有文件。 三、进入mysql容器,复制mysql的配置文件内容 复制内容如下: 四、在服务器/op

    2024年02月11日
    浏览(47)
  • Kubernetes配置 Pods 和容器—将 Docker Compose 文件转换为 Kubernetes 资源

    你必须拥有一个 Kubernetes 的集群,同时你必须配置 kubectl 命令行工具与你的集群通信。 建议在至少有两个不作为控制平面主机的节点的集群上运行本教程。 我们有很多种方式安装 Kompose。首选方式是从最新的 GitHub 发布页面下载二进制文件。 Kompose 通过 GitHub 安装 只需几步,

    2024年02月12日
    浏览(50)
  • 第七次作业 运维高级 docker容器进级版

    1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。 (1)拉取相应镜像 (2)运行mysql:5.6容器 (3)运行owncloud容器 (4)查看并验证 之后在浏览器中输入ipaddress:8080 2、安装搭建私有仓库 Harbor (1)下载好harbor和docker-compose (2)上传到Linux服务器 (3)复制docker-compose并修改权限 (4)解压harbor (

    2024年02月12日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包