Dockerイメージの異なるボリュームに/var/lib/dockerを動かしてください



問題1 -必要な動き/var/lib/docker 大量に
私たちのローカルのLinuxディスクのボリュームは30 GBの下にあるので、それは我々のDocker画像のためのかなり挑戦である/var/lib/docker フォルダと迅速に宇宙から実行します.


問題解決1
このアーチに従うことができます.Use a Different Volume For Your Docker Images in Ubuntu これは、新しいボリュームフォルダをマウントします./dev/sda2 for /var/lib/docker 次の行を追加します
/dev/sda2    /var/lib/docker    ext4    defaults    0    1
イン/etc/fstab そのため、起動時Linuxも起動します.
クイックタイプのボリュームタイプを取得するコマンドを使用してdf -T
私が実際にしたことは、このアーティレに続くものです.How to move docker data directory to another loccation on Ubuntu
  • Dockerデーモンを停止する
  • $ sudo service docker stop
    
    そして、dockerが走っていないことを確認してください
    $ ps faux | grep -i docker
    
  • フォルダーを作るrsync ファイル
  • $ mkdir /mnt/docker
    $ rsync -avxP /var/lib/docker/ /mnt/docker
    
  • Dockerの設定を更新する
  • 設定ファイルを追加し、Dockerデーモンにデータディレクトリの場所を教えてくださいdaemon.json ディレクトリの下/etc/docker . ファイルに内容がなければなりません:
  • {
        "data-root":"/mnt/docker"
    }
    
  • 編集によるDockerサービスの更新/lib/systemd/system/docker.service次の行を見つける
  • ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    

    ExecStart=/usr/bin/dockerd -g /mnt/docker -H fd:// --containerd=/run/containerd/containerd.sock
    
  • Dockerデーモンの再起動
  • sudo service docker start
    # reload docker serivce configuration 
    sudo systemctl daemon-reload
    
  • 次のコマンドをテストします.
  • docker inspect image_id | grep WorkDir
    

    問題2 - Linuxの再起動後、Docker画像がなくなっている
    下のDocker画像/mnt/docker 例えば、/mnt/docker/overlay2 私たちがfromm dockerhubを引っ張ったDocker画像を持っていません.
    Github議論を見てくださいhttps://github.com/moby/moby/issues/36149
    とPRhttps://github.com/moby/sys/pull/62

    問題解決2
    まだ解決策は、探し続ける!これまでのところ、Docker画像を再プルしなければなりません.