Docker docker-compose コマンド まとめ

こちらのメモでは、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-docs-ja

 


■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/packet-filtering-firewalls/#setting-the-default-bind-address-for-containers

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

 

しすろぐ カテゴリ – docker –

 

都内でエンジニアをやっています。 2017年に脱サラ(法人設立)しました。 仕事で調べたことや、気になったことをメモしています。
投稿を作成しました 173

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る