Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Docker 9 tips~意外と知られていない日常で役立つ便利技

2020年1月29日開催
ゼロからはじめるDocker入門【ビヨンド勉強会#22】 - connpass
https://beyondjapan.connpass.com/event/160565/

  • Inicia sesión para ver los comentarios

Docker 9 tips~意外と知られていない日常で役立つ便利技

  1. 1. Docker 9tips 意外と知られていない日常で役立つ便利技 Sakura Internet, Inc. Masahito Zembutsu @zembutsu ゼロからはじめるDocker入門【ビヨンド勉強会#22】 #bydstudy Jan 29, 2020
  2. 2. 今日は日常作業で役立つ「 9 tips」をご紹介(デモ) • Docker の簡単なセットアップ • コンテナ ID を使った操作 • コンテナ ID と変数展開 • コンテナが使っている容量の表示 • コンテナとイメージ等が使用している容量の表示 • 不要なコンテナ等の一括削除 • それでも消えないファイルをまとめて消したい場合 • BuildKit 有効化でイメージ構築を高速に • Docker Compose で BuildKit を有効化 2 本当に便利なのに、意外と知られていない?
  3. 3. Docker の簡単なセットアップ • 「get.docker.com」 を覚えておく! 3まずはじめは Docker のインストール方法。「get.docker.com」を覚えておくだけです!
  4. 4. 4 サイトのドキュメント・ルート自身がシェルスクリプト! 「curl https://get.docker.com | head」を実行したら、 CentOS 7、Ubuntu、Debian、Fedora の各ディストリビューションに対応する Docker Engine のリポジトリ設定と安定版のセットアップを自動的に行ってくれます!
  5. 5. 2. コンテナ ID を使った楽な操作 • この2つのコンテナを停止するには? docker kill ... 5 # docker ps CONTAINER ID IMAGE COMMAND CREATED ... db138dd543ca nginx "nginx -g 'daemon of…" 4 seconds ... 067ea391de49 nginx "nginx -g 'daemon of…" 6 seconds ... コンテナIDは「前方一致」で操作できます! 「docker kill db138dd543ca 067ea391de49 」のようにコンテナIDを全部コピーしなくても、 この画面の場合は「docker kill d 0」でもOKです。 2文字くらいまでは重複する場合もあり、3文字くらい指定するのが楽です。 例:「docker kill db1 067」のような指定。 コンテナIDだけでなく、イメージID、ネットワークID、ボリューム ID も操作可能です。
  6. 6. 3. コンテナ ID と変数展開 • echo $(echo hello wolrd) • docker ps -a (--all) • docker ps -l (--last) • docker ps -q (--quiet) • docker <command> $(docker <command>) 6 シェルでは $(コマンド) を実行すると、コマンドの中にコマンドの結果を埋め込めます。 ←「hello world」と表示します ←停止中も含めた全てのコンテナを表示します ←直近に作成したコンテナを表示します ←「コンテナID」しか表示しません 以上を踏まえると、実行中のコンテナ全てをkillするには 「docker kill $(docker ps -aq)」というコマンドで処理できます。 普段から覚えておいても便利ですし、バッチ処理的な作業をする場合や、定型作業をするときにも 間違いのない手順書や指示ができる方法です。 コンテナだけでなく、イメージ等でも同様に処理できます。
  7. 7. 4. コンテナが使っている容量の表示 • docker ps -s (--size) 7 # docker ps -as CONTAINER ID IMAGE ... SIZE f46f6c2f7eb4 hello-world ... 0B (virtual 1.84kB) db138dd543ca nginx ... 2B (virtual 127MB) 067ea391de49 nginx ... 2B (virtual 127MB) e0dbc44f4cb0 hello-world ... 0B (virtual 1.84kB) 「docker images」でイメージ使用量は確認できますが、 コンテナの使っている要領は「-s」オプションで確認できます。 普段はあまり使うことがないかもしれませんが、 長期間動かしているシステムで、どのコンテナが実際に使っているのかを把握するのに 便利なオプションです。
  8. 8. 5. コンテナとイメージ等が使用している容量の表示 • docker system df 8 # docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 3 3 287MB 21.78MB (7%) Containers 6 6 12B 0B (0%) Local Volumes 0 0 0B 0B 容量などであれば「docker system df」の利用も欠かせません。 上から、イメージ、コンテナ、ボリュームそれぞれの数や、容量を表示します。
  9. 9. 6. 不要なコンテナ等の一括削除 • docker system prune (中間イメージ、キャッシュ、未使用ネットワークも) 9 # docker system prune WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all dangling build cache Are you sure you want to continue? [y/N] y Deleted Containers: f46f6c2f7eb421709590ad6702bbe5416958258902dc8d4642616a7fd70f265f db138dd543ca030de31aeceafdd9cf9e75418c3a5a658e3b0f370228d7315a41 e0dbc44f4cb085eff0c364a4f11e5d7f061227f729c99a98272b46ed0d5f1944 Total reclaimed space: 2B pruneは「収穫」という意味ですが、実行していないコンテナ、中間イメージ、キャッシュ、ネットワークを まとめて削除してくれる便利なオプションです。docker for mac/win も対応しています。 コンテナだけを消したい場合は「docker container prune」というコマンドもあります。
  10. 10. 7. それでも消えないファイルをまとめて消したい場合 • コンテナの全停止+ prune + イメージ強制削除 • docker kill $(docker ps -lq) && docker system prune -af --volumes • イメージだけ全削除 • docker image rm -f $(docker image ls -q) 10 先ほどの「docker system prune」で消せないイメージも消すオプションがこちらです。 もっと確実なのはrm -rf /var/lib/docker を実行して docker の再起動ですが、 これは再起動が許される環境のみの、ちょっと乱暴な方法です。
  11. 11. { "features": { "buildkit": true }} export DOCKER_BUILDKIT=1 8. BuildKit 有効化でイメージ構築を高速に 11 • クライアントの環境変数 • Docker デーモン設定ファイル /etc/docker/daemon.json • Docker Desktop for Mac / Windows にも対応  New! 「docker build」コマンドが高速になるオプションです。Docker 18.06 から追加機能なく利用できるように なりました。並列でビルドできるので、結構早くなります。是非有効化しましょう。 Docker Desktop for Mac / Windows でも対応しています。
  12. 12. • 環境変数で有効化 export COMPOSE_DOCKER_CLI_BUILD=1 export DOCKER_BUILDKIT=1 docker-compose build 9. Docker Compose で BuildKit 有効化 12 Docker Compose も今月末にリリースされた最新版では、 docker-compose build の高速化に対応しました! さらに、Docker desktop for mac / Windows の各最新版同梱の Docker Compose も対応しています!
  13. 13. 今日は日常作業で役立つ「 9 tips」をご紹介(まとめ) • Docker の簡単なセットアップ • コンテナ ID を使った操作 • コンテナ ID と変数展開 • コンテナが使っている容量の表示 • コンテナとイメージ等が使用している容量の表示 • 不要なコンテナ等の一括削除 • それでも消えないファイルをまとめて消したい場合 • BuildKit 有効化でイメージ構築を高速に • Docker Compose で BuildKit を有効化 13 「get.docker.com」 コンテナIDは前方一致 docker <command> $(docker <command>) docker ps -s docker system df docker system prune docker kill $(docker ps -lq) && docker system prune -af --volumes export DOCKER_BUILDKIT=1 export COMPOSE_DOCKER_CLI_BUILD=1
  14. 14. Q&A • 何か気になるところはありますか? • https://slideshare.net/zembutsu • Dockerドキュメント日本語訳 http://docs.docker.jp • Docker Composeドキュメント日本語訳 http://docs.docker.jp/compose/ • 公式ドキュメント https://docs.docker.com 14
  15. 15. Dockerfile解説スライドもご覧ください • ベストプラクティス日本語版に解説・図解を加えたバージョンを作りました 15 https://www.slideshare.net/zembutsu/explaining-best-practices-for-writing-dockerfiles

×