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