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日

相关文章

  • Docker教程、架构、资源

    一、Docker教程 ​ Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性…

    Docker 2023年4月10日
    00
  • Docker搭建php环境教程详解

    接下来我将详细讲解“Docker搭建php环境教程详解”的完整攻略,并包含两个示例说明。 Docker搭建php环境教程详解 什么是Docker Docker是一个开源的应用容器引擎,可以让开发者将其应用和依赖关系打包到一个可移植的容器中,然后发布到任何支持Docker的环境中。 Docker搭建php环境步骤 1. 安装Docker 可以在Docker官网…

    Docker 2023年5月16日
    00
  • Docker run 命令的使用方法详解

    “Docker run 命令的使用方法详解”是一篇介绍Docker运行容器的文章,下面是完整攻略: Docker run 命令的使用方法详解 什么是Docker run命令? Docker是一种容器化技术,Docker run命令用于在Docker中创建和运行容器。通过Docker run命令,可以快速创建一个可以运行的容器,并在其中安装和运行所需的应用程序…

    Docker 2023年5月16日
    00
  • docker私有仓库harbor搭建过程

    我会为您详细介绍docker私有仓库harbor的搭建过程。 一、环境准备 在开始搭建之前,我们需要准备以下环境: Ubuntu 18.04 LTS 操作系统(本示例以Ubuntu 18.04 LTS 为例)。 Docker和Docker Compose。 二、安装Docker和Docker Compose 首先更新Ubuntu包管理器。 bash sudo…

    Docker 2023年5月15日
    00
  • docker_基础用法

    1. docker architecture   2. 命令  

    Docker 2023年4月11日
    00
  • docker如何迁移数据目录

    本文主要介绍了docker迁移数据目录的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 查看磁盘使用 # du -hs /var/lib/docker/ 237G /var/lib/docker/ # docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Image…

    Docker 2023年4月16日
    00
  • docker-compose错误

    1、错误信息: ERROR: for gamehall Get https://hub.tondeen.com/v1/_ping: http: server gave HTTP response to HTTPS client ERROR: Get https://hub.tondeen.com/v1/_ping: http: server gave HTT…

    Docker 2023年4月15日
    00
  • Docker学习5-Dockerfile编写自己的镜像

    前言 Dockerfile 可以自定义编写镜像,简单来说就类似写脚本,shell脚本应该接触不少了,就是一个执行后就完成了。 当然做好的镜像也可以传到镜像仓库,就好像github上面一样存储,一个命令就能照搬下来安装。 一、简介 相信不少朋友会问,为何docker run 一下python就停止了呢?(那执行完了不停止干什么?) 还有为什么我的pip安装,每…

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