SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Docker 9tips
意外と知られていない日常で役立つ便利技
Sakura Internet, Inc.
Masahito Zembutsu @zembutsu
ゼロからはじめるDocker入門【ビヨンド勉強会#22】 #bydstudy
Jan 29, 2020
今日は日常作業で役立つ「 9 tips」をご紹介(デモ)
• Docker の簡単なセットアップ
• コンテナ ID を使った操作
• コンテナ ID と変数展開
• コンテナが使っている容量の表示
• コンテナとイメージ等が使用している容量の表示
• 不要なコンテナ等の一括削除
• それでも消えないファイルをまとめて消したい場合
• BuildKit 有効化でイメージ構築を高速に
• Docker Compose で BuildKit を有効化
2
本当に便利なのに、意外と知られていない?
Docker の簡単なセットアップ
• 「get.docker.com」 を覚えておく!
3まずはじめは Docker のインストール方法。「get.docker.com」を覚えておくだけです!
4
サイトのドキュメント・ルート自身がシェルスクリプト!
「curl https://get.docker.com | head」を実行したら、
CentOS 7、Ubuntu、Debian、Fedora の各ディストリビューションに対応する
Docker Engine のリポジトリ設定と安定版のセットアップを自動的に行ってくれます!
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 も操作可能です。
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)」というコマンドで処理できます。
普段から覚えておいても便利ですし、バッチ処理的な作業をする場合や、定型作業をするときにも
間違いのない手順書や指示ができる方法です。
コンテナだけでなく、イメージ等でも同様に処理できます。
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」オプションで確認できます。
普段はあまり使うことがないかもしれませんが、
長期間動かしているシステムで、どのコンテナが実際に使っているのかを把握するのに
便利なオプションです。
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」の利用も欠かせません。
上から、イメージ、コンテナ、ボリュームそれぞれの数や、容量を表示します。
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」というコマンドもあります。
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 の再起動ですが、
これは再起動が許される環境のみの、ちょっと乱暴な方法です。
{ "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 でも対応しています。
• 環境変数で有効化
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 も対応しています!
今日は日常作業で役立つ「 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
Q&A
• 何か気になるところはありますか?
• https://slideshare.net/zembutsu
• Dockerドキュメント日本語訳
http://docs.docker.jp
• Docker Composeドキュメント日本語訳
http://docs.docker.jp/compose/
• 公式ドキュメント
https://docs.docker.com
14
Dockerfile解説スライドもご覧ください
• ベストプラクティス日本語版に解説・図解を加えたバージョンを作りました
15
https://www.slideshare.net/zembutsu/explaining-best-practices-for-writing-dockerfiles

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
Docker Tokyo
Docker TokyoDocker Tokyo
Docker Tokyo
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
 
5分で分かるgitのrefspec
5分で分かるgitのrefspec5分で分かるgitのrefspec
5分で分かるgitのrefspec
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
 
CRDT in 15 minutes
CRDT in 15 minutesCRDT in 15 minutes
CRDT in 15 minutes
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 

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

Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
Kazuyuki Mori
 
Docker調査20150704
Docker調査20150704Docker調査20150704
Docker調査20150704
HommasSlide
 

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

[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能
 
Docker社内勉強会
Docker社内勉強会Docker社内勉強会
Docker社内勉強会
 
Docker & Kubernetes基礎
Docker & Kubernetes基礎Docker & Kubernetes基礎
Docker & Kubernetes基礎
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
 
ゆるふわなDockerの使い方
ゆるふわなDockerの使い方ゆるふわなDockerの使い方
ゆるふわなDockerの使い方
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
 
Webアプリケーション開発者のためのDockerハンズオン
Webアプリケーション開発者のためのDockerハンズオンWebアプリケーション開発者のためのDockerハンズオン
Webアプリケーション開発者のためのDockerハンズオン
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
Docker やってみた
Docker やってみたDocker やってみた
Docker やってみた
 
いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達
 
Webアプリケーション開発者のためのDockerハンズオン20210519
Webアプリケーション開発者のためのDockerハンズオン20210519Webアプリケーション開発者のためのDockerハンズオン20210519
Webアプリケーション開発者のためのDockerハンズオン20210519
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
 
Docker調査20150704
Docker調査20150704Docker調査20150704
Docker調査20150704
 
Docker勉強会
Docker勉強会Docker勉強会
Docker勉強会
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
 

Mais de Masahito Zembutsu

Mais de Masahito Zembutsu (20)

忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
 
自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19
 
Docker Chronicle 2021.09
Docker Chronicle  2021.09Docker Chronicle  2021.09
Docker Chronicle 2021.09
 
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
 
インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話
 
3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」
 
ようこそオンラインの展示会場へ
ようこそオンラインの展示会場へようこそオンラインの展示会場へ
ようこそオンラインの展示会場へ
 
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
 
オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編
 
Jitsi Meetとは?
Jitsi Meetとは?Jitsi Meetとは?
Jitsi Meetとは?
 
クリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようクリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしよう
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os
 
CNCF Updates 2019 Winter version and Knative
CNCF Updates 2019  Winter version and KnativeCNCF Updates 2019  Winter version and Knative
CNCF Updates 2019 Winter version and Knative
 
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
 
CNCFアップデート情報~2018年のCNCFを振り返る
CNCFアップデート情報~2018年のCNCFを振り返るCNCFアップデート情報~2018年のCNCFを振り返る
CNCFアップデート情報~2018年のCNCFを振り返る
 
コンテナ導入概要資料2018
コンテナ導入概要資料2018コンテナ導入概要資料2018
コンテナ導入概要資料2018
 

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

  • 1. Docker 9tips 意外と知られていない日常で役立つ便利技 Sakura Internet, Inc. Masahito Zembutsu @zembutsu ゼロからはじめるDocker入門【ビヨンド勉強会#22】 #bydstudy Jan 29, 2020
  • 2. 今日は日常作業で役立つ「 9 tips」をご紹介(デモ) • Docker の簡単なセットアップ • コンテナ ID を使った操作 • コンテナ ID と変数展開 • コンテナが使っている容量の表示 • コンテナとイメージ等が使用している容量の表示 • 不要なコンテナ等の一括削除 • それでも消えないファイルをまとめて消したい場合 • BuildKit 有効化でイメージ構築を高速に • Docker Compose で BuildKit を有効化 2 本当に便利なのに、意外と知られていない?
  • 3. Docker の簡単なセットアップ • 「get.docker.com」 を覚えておく! 3まずはじめは Docker のインストール方法。「get.docker.com」を覚えておくだけです!
  • 4. 4 サイトのドキュメント・ルート自身がシェルスクリプト! 「curl https://get.docker.com | head」を実行したら、 CentOS 7、Ubuntu、Debian、Fedora の各ディストリビューションに対応する Docker Engine のリポジトリ設定と安定版のセットアップを自動的に行ってくれます!
  • 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. 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. 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. 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. 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. 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. { "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. • 環境変数で有効化 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. 今日は日常作業で役立つ「 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. Q&A • 何か気になるところはありますか? • https://slideshare.net/zembutsu • Dockerドキュメント日本語訳 http://docs.docker.jp • Docker Composeドキュメント日本語訳 http://docs.docker.jp/compose/ • 公式ドキュメント https://docs.docker.com 14