Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Dockerのoverlay2でbasesizeを変更する

More than 1 year has passed since last update.

概要

Dockerで可変サイズを利用する際は、basesizeより大きくないといけない。(不正確)
なので、basesizeを引き下げる・

環境

  • Ubuntu 18.04
  • XFS
  • grubでpquota、qquotaを有効化済み

前提

/var/lib/dockerを消さないといけない(データが消える)

手順

つまり以下のコマンドということです。

$ sudo dockerd -s overlay2 --storage-opt overlay2.size=0.1G

vi /lib/systemd/system/docker.service

systemctl daemon-reload
/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
BindsTo=containerd.service
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
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 -s overlay2 --storage-opt overlay2.size=0.1G
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=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.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

# 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

[Install]
WantedBy=multi-user.target

参考

https://docs.docker.com/engine/reference/commandline/dockerd/

haniokasai
男子大学生の暇人です。ブログで活動していましたが。VPSオタク。アンチGCPとAWS。国内外のサーバーをたくさん借りてました。JavaとPythonを主に使います。 アイコンはらてちさんから。
https://haniokasai.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away