ラベル docker の投稿を表示しています。 すべての投稿を表示
ラベル docker の投稿を表示しています。 すべての投稿を表示

2017/01/25

/var/lib/docker の移動

docker のホストマシン容量不足対策。

docker をインストール後稼働していると、ディスクが足りなくなることがあります。
いらないイメージを削ればいいのですが、イメージが削れない状況もあると思います。
外部ディスクマウント後の容量食う /var/lib/docker の移動の仕方に関して記します。

docker 停止

sudo service docker stop

/var/lib/docker を移す

ディスク容量に余裕がある場所に /var/lib/docker を移す。(ここでは例として /mnt/extra/docker とする)
インストール直後ぐらいなら、mv で、
安全にやりたいなら

mkdir /mnt/extra/docker
sudo rsync -aXS /var/lib/docker/. /mnt/extra/docker/

設定ファイル変更

redhat系の場合

設定ファイル: /etc/sysconfig/docker
(あれば追加で、なければ作成)

echo other_args="-g /mnt/extra/docker" > /etc/sysconfig/docker

debian系の場合

設定ファイル: /etc/default/docker

# DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4"
DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt/extra/docker"

と書かれていますが、手前の ubuntu 16 では動きませんでしたので

ubuntu 16 の場合

設定ファイル: /lib/systemd/system/docker.service

# ExecStart=/usr/bin/dockerd -H fd://
ExecStart=/usr/bin/dockerd -g /mnt/extra/docker -H fd://

その後、

sudo systemctl daemon-reload

docker 再起動 & 確認

sudo service docker start

確認は

docker info

Root Dir: の項目を見れば良い

2016/04/04

Docker registry を構築した後のimage整理

Docker registry を作って、別チームに任せて放置する

Docker registry で image 管理をすると段々とゴミが溜まってきます。API(https://docs.docker.com/v1.6/reference/api/registry_api/#delete-a-repository)で削除できるのはTAGがついているimageだけなので、
TAGが外れているimagesがどんどん残っていきます。

エラーが起きる

ずーっと管理せずに放置していると、ある日こんなエラーと出会います。

HTTP code 500 while uploading metadata: "invalid character '<' looking for beginning of value"

これは、message push しようとしたり、する必要があるかをregistryに確認したところ、正常なjsonレスポンスではなく、htmlのエラーページが帰ってきたため起きたエラーです。

不要なimageを削除する。

以下スクリプとが非常に有用です。
jqのインストールが必須になります。

kwk/remove-orphan-images.sh
https://gist.github.com/kwk/c5443f2a1abcf0eb1eaa

追記:実行時のエラー

私の場合、実行時に下記エラーが出ました。

parse error: Invalid numeric literal at line 144, column 114

これは直前に表示されたrepository名のindexファイルが破損していたため、起きた現象でした。手修正でindexファイルを修正したところ、うまく動きました。