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

yizhihongxing

针对“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日

相关文章

  • CentOS7.6系统下Docker安装部署教程

    CentOS7.6系统下Docker安装部署教程 Docker是一个开源的容器引擎,它可以让开发者在容器中创建和部署应用程序。 以下是在CentOS7.6系统下Docker安装部署教程的完整攻略。 1. 环境准备 在安装Docker之前,需要确保系统已经安装了yum-utils、device-mapper-persistent-data 和 lvm2。 su…

    Docker 2023年5月15日
    00
  • docker容器内缺少命令的简单解决办法

    Docker容器内缺少命令是一个常见的问题,但这个问题的解决办法也很简单。我们可以通过在容器内安装缺少的命令来解决这个问题。下面是一个完整的攻略,包含两个示例说明。 示例一:在容器内安装curl命令 1. 确认容器内是否缺少curl命令 首先,我们需要确认容器内是否缺少curl命令。我们可以使用下面的命令在容器内执行curl命令: docker exec -…

    Docker 2023年5月16日
    00
  • Grafana 系列文章(三):Tempo-使用 HTTP 推送 Spans

    ?️URL: https://grafana.com/docs/tempo/latest/api_docs/pushing-spans-with-http/ ?Description: 有时,使用追踪系统是令人生畏的,因为它似乎需要复杂的应用程序仪器或 span 摄取管道,以便 … 有时,使用追踪系统是令人生畏的,因为你似乎需要复杂的应用程序仪器或 sp…

    2023年4月10日
    00
  • 宿主机网络中其它机器与Docker容器网络互通配置

    前言 目前项目采用微服务架构进行开发,Nacos和其它服务部署到Docker中,Docker中容器采用的网络默认是桥接模式(Bridge),默认的子网码是172.17.0.1/16;宿主机是192.168.1.231;同宿主机其它网络也是192.168.1.39;同事提出本地机器想与Docker中容器互通,访问方式如下:本地机器直接ping 容器IP(172…

    Docker 2023年4月12日
    00
  • docker常用命令总结(推荐)

    本文将详细讲解Docker常用命令及其用法,帮助读者快速掌握Docker的使用。 1. Docker常用命令总结 以下是Docker常用命令的总结: 1.1 镜像(Image)命令 1.1.1 拉取镜像 拉取了Docker Hub上nginx的最新版本: docker pull nginx 拉取了Docker官方仓库的MySQL 5.7版本: docker …

    Docker 2023年5月16日
    00
  • 搭建Docker私有仓库的详细教程

    搭建Docker私有仓库需要以下步骤: 1. 准备工作 首先需要有一台服务器或者虚拟机,可以选择任何一种Linux操作系统,这里以Ubuntu为例。然后安装Docker,安装Docker的方法可以参考官方文档。 2. 创建Docker私有仓库 在安装成功Docker之后,可以使用以下命令创建Docker私有仓库: docker run -d -p 5000:…

    Docker 2023年5月16日
    00
  • win10 使用docker

    新手 win10 下使用docker 1:下载docker for win 2:查看docker使用文档 https://github.com/widuu/chinese_docker 3 : 下载镜像 使用阿里快。。 https://dev.aliyun.com/search.html?spm=5176.1972344.0.1.KRcLZ8 4 :下载镜像…

    Docker 2023年4月11日
    00
  • docker使用自定义镜像zabbix服务

    一、关闭firewall,永久关闭,使用iptables防火墙 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 firewall-cmd –state #查看默认防火墙状态(关闭后显示notrunning,开启后…

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