Docker之修改/etc/default/docker 里的DOCKER_OPTS参数不生效问题

针对“Docker之修改/etc/default/docker 里的DOCKER_OPTS参数不生效问题”,我给出以下攻略:

1. 问题描述

在修改/etc/default/docker中的DOCKER_OPTS参数后,重启docker服务,发现修改并没有生效,依旧启用默认参数。

2. 原因分析

这个问题的原因是因为Docker的服务启动时,是根据/lib/systemd/system/docker.service文件中的配置信息启动的,而不是/etc/default/docker中的配置信息。因此,修改/etc/default/docker中的DOCKER_OPTS参数并不能生效。

3. 解决方法

方法一:修改docker.service文件

通过修改/lib/systemd/system/docker.service文件中的参数来解决这个问题。具体步骤如下:

  1. 使用命令查找docker.service文件:find / -name docker.service

  2. 打开docker.service文件,输入以下命令:

bash
sudo vi /lib/systemd/system/docker.service

  1. 找到[Service]段落,修改ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock $DOCKER_OPTS

  2. 保存并退出文件。

  3. 若修改/lib/systemd/system/docker.service文件后重启Docker服务仍然不生效,可以使用以下命令使修改生效并重启Docker服务:

bash
sudo systemctl daemon-reload
sudo systemctl restart docker.service

方法二:使用systemd的Override功能

使用systemd的override功能也可以解决这个问题。具体步骤如下:

  1. 创建override文件夹:

bash
sudo mkdir /etc/systemd/system/docker.service.d

  1. 在override文件夹中创建新的配置文件,例如docker-override.conf

bash
sudo vi /etc/systemd/system/docker.service.d/docker-override.conf

  1. docker-override.conf文件中添加下面的代码:

bash
[Service]
EnvironmentFile=-/etc/default/docker
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock $DOCKER_OPTS

  1. 保存并关闭文件。

  2. 使用以下命令重载systemd,使修改生效,并重启Docker服务:

bash
sudo systemctl daemon-reload
sudo systemctl restart docker.service

4. 示例说明

示例一:修改docker内存限制

/etc/default/docker中修改DOCKER_OPTS参数,例如:

DOCKER_OPTS="--default-ulimit memlock=-1:-1 --default-ulimit nproc=10240"

此时,若使用方法一修改docker.service文件,应该是在该文件中添加如下语句:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --default-ulimit memlock=-1:-1 --default-ulimit nproc=10240

若使用方法二,应该在/etc/default/docker中添加如下语句:

default-ulimit memlock=-1:-1
default-ulimit nproc=10240

然后,在override文件夹中创建新的配置文件,例如docker-override.conf,添加如下语句:

[Service]
EnvironmentFile=-/etc/default/docker
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock $DOCKER_OPTS

再使用以下命令重载systemd并重启Docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker.service

示例二:添加docker代理

/etc/default/docker中添加代理信息,例如:

export DOCKER_HTTP_PROXY="http://127.0.0.1:8888"
export DOCKER_HTTPS_PROXY="http://127.0.0.1:8888"

此时,若使用方法一修改docker.service文件,应该是在该文件中添加如下语句:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock \
         -g /var/lib/docker \
         --iptables=false \
         --ip-masq=false \
         --dns 8.8.8.8 \
         --dns 8.8.4.4 \
         --log-driver=journald \
         --signature-verification=false \
         --default-ulimit memlock=-1:-1 \
         --default-ulimit nproc=10240 \
         --registry-mirror=https://xxxxx.mirror.aliyuncs.com \
         --label provider=aliyun \
         $DOCKER_OPTS \
         $DOCKER_STORAGE_OPTIONS \
         $DOCKER_NETWORK_OPTIONS \
         $ADD_REGISTRY

若使用方法二,应该在/etc/default/docker中添加如下语句:

DOCKER_HTTP_PROXY="http://127.0.0.1:8888"
DOCKER_HTTPS_PROXY="http://127.0.0.1:8888"

然后,在override文件夹中创建新的配置文件,例如docker-override.conf,添加如下语句:

[Service]
EnvironmentFile=-/etc/default/docker
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock $DOCKER_OPTS

再使用以下命令重载systemd并重启Docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker.service

以上就是针对“Docker之修改/etc/default/docker 里的DOCKER_OPTS参数不生效问题”的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker之修改/etc/default/docker 里的DOCKER_OPTS参数不生效问题 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 在Windows系统下安装docker窗口的配置过程

    安装Docker在Windows系统下需要经过以下几个步骤: 步骤1:下载Docker Desktop 首先去Docker官网下载Docker Desktop for Windows。根据自己的操作系统版本选择下载相应的安装文件。下载完毕后,双击打开安装程序。 步骤2:安装Docker Desktop 安装过程中,会出现一些提示框。根据提示依次操作即可,安装…

    Docker 2023年5月16日
    00
  • Wikijs简介-强大&可扩展的开源维基软件

    Wikijs – 最强大 最可扩展的开源维基软件 使用 wiki.js 美丽直观的界面,让文档成为写作的乐趣! 优点 ? 随时随地安装 几乎适用于任何平台,并与PostgreSQL、MySQL、MariaDB、MS SQL Server 或 SQLite 兼容! ⚙️ 管理强大 使用广泛而直观的管理区域管理维基的所有方面。 ? 性能 Wiki.js运行在快速…

    2023年4月10日
    00
  • Docker学习7-jenkins容器内安装python3

    前言 很多小伙伴可能在考虑 jenkins 拉取了 github 上的代码后,发现还越少 python3 环境,那能怎么办呢? 咨询了一位运维朋友给我的答案是,将 python3 挂载到容器工作目录上,或者直接复制。 一、浅谈容器内安装 python3 方案 1、将 python3 挂载到容器工作目录上; 2、直接复制 python3 目录到工作目录上; 3…

    Docker 2023年4月13日
    00
  • docker 意外重启 运行容器丢失情况解决

    1列出所有container docker container ls -a       2再启动相应的container     docker container start xxxxyyyyzzzz   3 docker ps 查看镜像  

    Docker 2023年4月12日
    00
  • docker kubernetes Swarm容器编排k8s CICD部署 麦兜

    1docker版本 docker 17.09 https://docs.docker.com/ appledeAir:~ apple$ docker version Client: Docker Engine – Community  Version:           18.09.0  API version:       1.39  Go versio…

    Docker 2023年4月12日
    00
  • docker 设置windows存储路径的操作

    为在Windows系统上使用Docker,需要设置镜像和容器的存储路径,以下是设置的步骤攻略: 1. 准备工作 首先,需要你的 Windows 系统版本至少为 2019 年 10 月发布的版本 (Windows 10, version 1909)。 其次,需要下载和安装最新版本的 Docker Desktop for Windows。 2. 设置Docker…

    Docker 2023年5月15日
    00
  • Docker数据存储总结

    Docker 数据存储总结 为什么需要 Docker 数据存储? Docker 容器是临时性的,每次启动一个容器时,它都会从零开始创建一个全新的环境。容器间的状态不会共享,当容器被删除时,所有容器中存储的状态和数据都会被永久删除。 在许多情况下,需要在多个容器间共享数据和状态。这就需要使用 Docker 数据存储来解决问题。 存储类型 Docker 提供了多…

    Docker 2023年5月16日
    00
  • Docker容器镜像加载及底层基本原理深入解析

    Docker容器镜像加载及底层基本原理深入解析 Docker是目前最流行的容器化技术之一,使用Docker可以方便地构建、发布和管理应用程序。Docker容器镜像是Docker应用程序运行的基础,本文将深入探讨Docker容器镜像的加载过程及其底层基本原理。 Docker容器镜像加载流程 Docker容器镜像的加载过程可以分为以下几个步骤: 拉取镜像文件 在…

    Docker 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部