はじめに
忘れっぽいお茶目な自分のためにメモ ✍️
ちなみに私はこの本で Docker に入門しました。
とりあえず Docker 使えるようになりたいぜって人におすすめ
当時は Kindle で無料だった気がするのですが、今は unlimited 会員なら無料になってますね。
基本公式
docker 対象 操作
具体例
1. container 系
run, start, stop, rm など
Docker Compose 使うからあまり使わない(主観)
1.1 run: コンテナを作って起動する
コンテナを作成し、同時に起動する。
httpd イメージから apache01 という名前のコンテナを作り、バックグラウンドで実行する。ホストの 8080 番ポートをコンテナの 80 番ポートにマッピング(ポートフォワーディング)する。
docker container run --name apache01 -p 8080:80 -d httpd
| オプション | 意味 |
|---|---|
--name |
コンテナに名前をつける |
-p |
ポート番号を指定する |
-d |
バックグラウンドで実行する |
1.2 stop: コンテナを停止する
apache01 という名前のコンテナを停止する。
docker container stop apache01
1.3 start: コンテナを起動する
stop している apache01 という名前のコンテナを起動する。
docker container start apache01
1.4 rm: コンテナを削除する
apache01 という名前のコンテナを削除する。
docker container rm apache01
1.5 ls: コンテナ一覧を表示する
実行中のコンテナ一覧を表示する。
docker container ls
停止中のコンテナも含めて全部見たいときは
docker container ls -a
2. compose 系
up, run, start, stop, down など
2.1 build: イメージのビルド
イメージのビルドだけして、コンテナの実行はしない。
docker compose build
キャッシュを使わずにイメージをビルドしたかったら
docker compose build --no-cache
2.2 up: コンテナを作って実行する
コンテナを作成し、実行する。
イメージがなかったらビルドもしてくれる。
-d オプションを使うとバックグラウンドで実行する。
docker compose up -d
イメージのビルドもしたかったら
docker compose up -d --build
2.3 stop: コンテナを停止する
docker compose stop
2.4 start: コンテナを起動する
stop しているコンテナを起動する。
docker compose start
2.5 down: コンテナを停止して削除する
docker compose down
イメージも削除したかったら
docker compose down --rmi all
ボリュームも削除したかったら
docker compose down -v
rm でもコンテナを削除できる。-s オプションを使うと停止もできる。
ただし、紐づくネットワークを削除しない。
2.6 ps: コンテナ一覧を表示する
Compose プロジェクトの実行中のコンテナ一覧を表示する。
docker compose ps
停止中のコンテナも含めて全部見たいときは
docker compose ps -a
2.7 logs: コンテナのログを出力する
container01 という名前のコンテナのログを出力する。
-f オプションでログを出力し続ける。
docker compose logs -f container01
2.8 exec: コンテナ内でコマンドを実行する
container01 という名前のコンテナ内で bash を立ち上げる。
docker compose exec container01 bash
2.9 cp: ホストとコンテナでファイルをやりとりする
2.9.1 コンテナ → ホスト
container01 コンテナの path/to/file をホストのカレントディレクトリにコピーする。
docker compose cp container01:path/to/file .
2.9.2 ホスト → コンテナ
ホストの file を container01 コンテナの path/to/file にコピーする。
docker compose cp file container01:path/to/file
3. image 系
build, ls, pull, push, rm など
3.1 build: イメージをビルドする
カレントディレクトリの Dockerfile からイメージをビルドする。
docker image build .
3.2 ls: イメージの一覧を表示する
docker image ls
3.3 rm: イメージを削除する
image01 という名前のイメージを削除する。
docker image rm image01
rmi というエイリアスもある。
docker rmi image01
docker compose down --rmi all で削除することも多い。
3.4 prune: 未使用のイメージを一括削除
docker image prune
4. network 系
create, ls, rm など
compose.yaml で作って(定義して)、docker compose down で削除することが多いため、create, rm はあまり使わない印象 🤔
4.1 ls: ネットワークの一覧を表示する
docker network ls
4.2 prune: 未使用のネットワークを一括削除
docker network prune
5. volume 系
create, ls, rm など
compose.yaml で作る(定義する)ことが多いため、create はあまり使わない印象 🤔
5.1 ls: ボリュームの一覧を表示する
docker volume ls
5.2 rm: ボリュームを削除する
volume01 という名前のボリュームを削除する。
docker volume rm volume01
バインドマウントは、コンテナ内 or ホストから直接削除する。
ボリューム、バインドマウントともに docker compose down -v で削除することも多い。
5.3 prune: 未使用のボリュームを一括削除
docker volume prune
おわりに
Docker のコマンドはたくさんあって混乱しがち。
サブコマンドが導入される前のものも含めると...😵💫
個人的によく使うものは網羅したつもりなので、困ったらここを見にくる。