地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

Dockerでたまに使うコマンド

Dockerで使われるメインコマンド以外にたまにだけど使うコマンド

書き込み不可でボリュームをマウントする

--volume-fromとroをつけることでread onlyでボリュームを共有できる

$ docker container run -it --volume-from vol_container:ro centos:7.5
systemdに対応したコンテナ

停止シグナルを受け付けるように設定する必要がある。 アプリケーションで定義した用途に使用できるシグナルSIGRTMIN+3を設定する

Linuxのシグナルまとめ -- ぺけみさお

$ docker container run -it --tmpfs /tmp --tmpfs /run \
                                            -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
                                            --stop-signal SIGRTMIN+3 centos:7.5
マウントオプション

最新のdockerではマウントオプションは「--volume」よりも「--mount」が推奨されている

Dockerの -v や --volume オプションはわかりづらいから、 --mount を使おう - Qiita

# bind mount
$ docker container run -it --mount type=bind,src=/home/host_01,dst=/root/cont_01,readonly centos:7.5

# volume
$ docker container run -it --mount type=volume,src=vol,dst=/root/cont_01 centos:7.5

# tmpfs mount -> ホストのメモリをコンテナが使える
$ docker container run -it --mount type=tmpfs,dst=/tmpdir,tmpfs-mode=1770
コンテナのexport / inport
$ docker container export [container name] > [container name].tar

$ cat [container name].tar | docker image import - 
リソース確認

statusコマンドで確認できる。 その際に使うことができるオプション

# -a => 停止してるコンテナも確認
# --no-stream => 
# --no-trunc => 完全なコンテナIDを表示
# --format => 表示する項目を指定

$ docker container stats [container name]
healthチェック

Dockerコンテナの生死を確認するヘルスチェックを指定してコンテナを起動することができるオプション

# --health-cmd : ヘルスチェックとして実行するコマンド(終了ステータスが0であることが期待値)
# --health-interval (上記コマンドの実行感覚)
# --health-timeout (コマンドのタイムアウトまでの時間)
# --health-retries (コマンド失敗時のリトライ回数)

# 実行イメージ
$ docker run --rm -d --name negosix -h negosix01 \
                       --health-cmd ls --health-interval 10s \
                       --health-timeout 10s --health-retries 5 \
                       nginx:latest
Docker ディレクトリ構成

/var/lib/docker配下の構成

[root@rasp01 docker]# tree -L 1
.
├── builder
├── buildkit
├── containers
├── image
├── network
├── overlay2
├── plugins
├── runtimes
├── swarm
├── tmp
├── trust
└── volumes