Docker チートシート
My Docker Cheat Sheet by Aymen El Amri on
原著者の許諾を得て翻訳・掲載しています。
私は以前の仕事で Docker を使っており、今の会社(eralabs.io)でも顧客のために使っています。そして、これまでの経験により得た Docker の知識を皆さんにシェアしたいと思い、Painless Docker Course を始めました。
私は Docker、コンテナ、オーケストレーション、分散システムが好きです。そして、Painless Docker の多くの読者がその内容に満足していることは嬉しいことでした。
Painless Docker はただの本ではなくコースとなりました。詳しくは、ウェブサイトをご覧ください。
ここで紹介しているのは、 Painless Docker Course の中身の一部です。Git repo でも公開していますので、ぜひご覧ください。
GitHub のリポジトリ を公開しているので、よろしければコントリビュートしてください。
更新:このチートシートのために Web サイトを作成しました。リンクは下記をご参照ください。
https://dockercheatsheet.painlessdocker.com/
インストール方法
Linux
curl -sSL https://get.docker.com/ | sh
Mac
下記リンクをご使用ください。
https://download.docker.com/mac/stable/Docker.dmg
Windows
msi インストーラーをご使用ください。
https://download.docker.com/win/stable/InstallDocker.msi
Docker Registry と Repository
ログイン
docker login
docker login localhost:8080
ログアウト
docker logout
docker logout localhost:8080
イメージの検索
docker search nginx
docker search nginx --stars=3 --no-trunc busybox
イメージの取得
docker pull nginx
docker pull eon01/nginx localhost:5000/myadmin/nginx
イメージのプッシュ
docker push eon01/nginx
docker push eon01/nginx localhost:5000/myadmin/nginx
コンテナ
コンテナの作成
docker create -t -i eon01/infinite --name infinite
コンテナの起動
docker run -it --name infinite -d eon01/infinite
コンテナのリネーム
docker rename infinite infinity
コンテナの削除
docker rm infinite
コンテナの更新
docker update --cpu-shares 512 -m 300M infinite
コンテナの起動と停止
コンテナの起動
docker start nginx
コンテナの終了
docker stop nginx
コンテナの再起動
docker restart nginx
コンテナの一時停止
docker pause nginx
コンテナの再開
docker unpause nginx
コンテナの停止
docker wait nginx
SIGKILLを送る
docker kill nginx
既存のコンテナへ接続
docker attach nginx
コンテナの情報を取得
動作しているコンテナの一覧
docker ps
docker ps -a
コンテナのログ
docker logs infinite
コンテナのインスペクト
docker inspect infinite
docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(docker ps -q)
コンテナのイベント
docker events infinite
パブリックポート
docker port infinite
起動中のプロセス
docker top infinite
リソースの使用状況
docker stats infinite
コンテナ内のファイルやディレクトリの変更箇所を確認
docker diff infinite
イメージの操作方法
イメージの一覧表示
docker images
イメージのビルド
docker build .
docker build github.com/creack/docker-firefox
docker build - < Dockerfile
docker build - < context.tar.gz
docker build -t eon/infinite .
docker build -f myOtherDockerfile .
curl example.com/remote/Dockerfile | docker build -f - .
イメージの削除
docker rmi nginx
tar ファイルをイメージとしてロード
docker load < ubuntu.tar.gz
docker load --input ubuntu.tar
イメージを tar で保存
docker save busybox > ubuntu.tar
イメージの履歴の表示
docker history
コンテナからイメージを作成
docker commit nginx
イメージへのタグ付け
docker tag nginx eon01/nginx
イメージのプッシュ
docker push eon01/nginx
ネットワーク
ネットワークの作成
docker network create -d overlay MyOverlayNetwork
docker network create -d bridge MyBridgeNetwork
docker network create -d overlay \
--subnet=192.168.0.0/16 \
--subnet=192.170.0.0/16 \
--gateway=192.168.0.100 \
--gateway=192.170.0.100 \
--ip-range=192.168.1.0/24 \
--aux-address="my-router=192.168.1.5" --aux-address="my-switch=192.168.1.6" \
--aux-address="my-printer=192.170.1.5" --aux-address="my-nas=192.170.1.6" \
MyOverlayNetwork
ネットワークの削除
docker network rm MyOverlayNetwork
ネットワークの一覧表示
docker network ls
ネットワーク情報の取得
docker network inspect MyOverlayNetwork
既存のコンテナをネットワークへ接続
docker network connect MyOverlayNetwork nginx
コンテナ起動時にネットワークへ接続
docker run -it -d --network=MyOverlayNetwork nginx
ネットワークとコンテナの切断
docker network disconnect MyOverlayNetwork nginx
Docker のクリーニング
既存コンテナの削除
docker rm nginx
コンテナとボリュームの削除
docker rm -v nginx
全ての終了したコンテナを削除
docker rm $(docker ps -a -f status=exited -q)
全ての停止しているコンテナを削除
docker rm `docker ps -a -q`
Docker イメージの削除
docker rmi nginx
既存イメージの削除
docker rmi $(docker images -f dangling=true -q)
全イメージの削除
docker rmi $(docker images -a -q)
全てのコンテナの停止と削除
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
既存ボリュームの削除
docker volume rm $(docker volume ls -f dangling=true -q)
Docker Swarm
インストール
curl -ssl https://get.docker.com | bash
Swarm の初期化
docker swarm init --advertise-addr 192.168.10.1
ワーカーを Swarm に参加させる
docker swarm join-token worker
マネージャを Swarm に参加させる
docker swarm join-token manager
サービスの一覧表示
docker service ls
ノードの一覧表示
docker node ls
サービスの作成
docker service scale vote=3
Swarm タスクの一覧表示
docker service ps
サービスをスケーリングさせる
docker service scale vote=3
サービスの更新
docker service update --image instavote/vote:movies vote
docker service update --force --update-parallelism 1 --update-delay 30s nginx
docker service update --update-parallelism 5--update-delay 2s --image instavote/vote:indent vote
docker service update --limit-cpu 2 nginx
docker service update --replicas=5 nginx
もっと知りたいあなたへ
この記事に共感していただけたなら、Painless Docker Course でもっと興味深い内容を見つけることができます。
また、Eralabs では、Docker とクラウドを統合するプロジェクトのお手伝いをしています。こちらにご連絡いただき、プロジェクトについてお話しください。
DevOpsLinks を購読すると、世界中の IT エキスパートや DevOps のファンとオンラインで繋がることができます。
Shipped のニュースレターに登録すると、コンテナやオーケストレーション、サーバーレスの技術についてまとめた記事が読めます。
私の Twitter、Clarity、Web サイトもご覧ください。
私が書いた本 SaltStack For DevOps もチェックしてください。
最後に、Jobs For DevOps へのご参加もお忘れなく!
もしこの投稿を気に入っていただけたならば、ぜひ周囲の皆さんとシェアしてください。