こちらのメモでは、Dockerのコマンドをまとめておこうと思います。
逐一、更新させて頂きます。
■更新履歴
- 2021/4/28 新規作成
- 2021/4/28 Docker 追加
- 2021/6/27 docker-compose 追加
- 2021/9/23 docker コンテナOSから、ホストOSへのファイルコピー 追加
- 2022/10/15 docker コンテナ停止 追加
- 2023/3/24 docker Build cache 削除 ( クリア )
- 2023/4/6 docker-compose ファイル名指定、ログ出力 追加
- 2023/8/15 docker ポートマッピング 追加
- 2024/7/12 docker タグ・リポジトリ名なし<none>のイメージ全削除追加
- 2024/8/18 docker 未使用のコンテナ、ネットワーク、イメージ全削除 追加
■参考
■Docker
・イメージ ビルド
コマンド
docker build -t コンテナ名:タグ Dockerfileパス
例
docker build -t node_debug:latest .
Dockerfileの名称を変更しているときなどは、-f オプションで指定可能です。
例
docker build -f DockerfileLocal -t node_debug:latest .
・イメージ・コンテナ実行
コマンド
docker run コンテナ名
例
docker run node_debug
・イメージ・コンテナ実行 ポートマッピング
Webサーバー(http)のコンテナなどを動作させている時などに、ホストからhttpアクセスしたい時など。
コマンド
docker run -p ‘ホストIP:ポート番号:コンテナポート番号’ コンテナ名:タグ名
例
docker run -p '127.0.0.1:8080:8080' hello-ktor:latest
[注意点]
前提として、Dockerをインストールすると、自動的にiptablesにルール追加が行われます。
以下公式の説明です。
https://docs.docker.com/network/
docker run -p ‘8080:8080′ hello-ktor:latest というように、ホストIPを省略してもマッピングできますが、
ホストIPを省略すると、意図しない外部アクセスが発生する恐れがあるので、必ず指定するようにして下さい。
・イメージ一覧確認
コマンド
docker images
・実行中のコンテナ確認
コマンド
docker ps -a
・コンテナ作成と同時に起動
コマンド
docker run -it コンテナ名
例
docker run -it ubuntu
・コンテナ停止
コマンド
docker stop コンテナID
・全コンテナ停止
docker stop $(docker ps -q)
・指定したコンテナ削除
コマンド
docker rm コンテナID
※IDは複数指定可能です。
・全コンテナ削除
コマンド
docker rm $(docker ps -q -a)
docker container prune -f
・指定したイメージ削除
コマンド
docker rmi イメージID
※IDは複数指定可能です。
起動している場合などでも、強制的に削除したい場合は、-f オプションを付与して実行します。
docker rmi -f イメージID
・タグ・リポジトリ名なし<none>のイメージ全削除
docker rmi $(docker images -f "dangling=true" -q)
・全イメージ削除
docker images -aq | xargs docker rmi
docker image prune -af
・コンテナ内部OSアクセス
コマンド
docker exec -it コンテナID bash
例
docker exec -it 4306a251b75c bash
コンテナOSから抜けて、ホストOSに戻る場合、以下のコマンドで抜けることができます。
exit;
・コンテナOS、ホストOS間 共有フォルダを指定して、コンテナ起動
コマンド
docker run -v ホストOSパス/docker:コンテナOSパス -it イメージ名 bash
例
docker run -v /Users/30_practice/practice_coffeescript/helloworld/docker:/usr/src -it node_debug bash
・コンテナOS から ホストOS へ ファイルコピー
コマンド
docker cp コンテナID:コンテナOSパス・コンテナOSファイル名 ホストOSパス・ホストOSファイル名
例
docker cp 3143f962866d:/test.txt /test.txt
・Build cache 削除 ( クリア )
docker builder prune
・未使用のコンテナ、ネットワーク、イメージ全削除
docker system prune -a
■docker-compose
・イメージ&コンテナ 作成&起動
既に存在するイメージ・コンテナを起動します。
docker-compose up -d
イメージ&コンテナの内容が修正されている場合、
以下の様に、–buildオプションを指定すると、イメージ&コンテナを作り直しながら起動してくれます。
docker-compose up -d --build
※DBデータの永続化などで保持されているファイルなどは、手動で事前削除などの調整が必要になります。
・コンテナ 停止&削除
以下のコマンドで、コンテナの停止と削除が同時に行われます。
docker-compose down
※image、network、volumeは残ります。
以下のオプションを指定すると、image、network、volumeの全てを削除しつつ停止してくれます。
docker-compose down --volumes
※–rmi オプションは、イメージを削除する場合に指定します。
※未定義のコンテナは残るため、未定義コンテナも含めて削除する場合、
更に、–remove-orphansを指定します。
docker-compose down --rmi all --volumes --remove-orphans
・docker-compose.yaml ファイル名指定
dokcer-compose.yamlのファイル名を指定して実行する場合、-f ファイル名 を付与して実行します。
docker-compose -f docker-compose-debug.yaml build
docker-compose -f docker-compose-debug.yaml down
・ログ出力
イメージビルド実行中のログを出力したい場合、–progress=plainを付与します。
キャッシュされている場合、正しく出力されない場合もあるので、–no-cacheを付与します。
docker-compose build --progress=plain --no-cache