Aymen El Amri
Aymen El Amri

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 でも公開していますので、ぜひご覧ください。

このチートシートは、Painless Docker Course にあるものの一部です。
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 のニュースレターに登録すると、コンテナやオーケストレーション、サーバーレスの技術についてまとめた記事が読めます。

私の TwitterClarityWeb サイトもご覧ください。

私が書いた本 SaltStack For DevOps もチェックしてください。

最後に、Jobs For DevOps へのご参加もお忘れなく!

もしこの投稿を気に入っていただけたならば、ぜひ周囲の皆さんとシェアしてください。

記事がありません

An unexpected error has occurred.