やりたいこと
よく使うかなって感じのdocker関連のコマンドについて
独断と偏見で整理をしていく。
※勉強しながらなので適宜更新
docker image関係
- イメージのダウンロード
docker image pull {イメージ名}
- Dockerfileからイメージを作成
-t
でイメージ名とタグを指定できる-f
でDockerfileを指定できる--build-arg 変数名={値}
でargに値を代入できる。
docker image build -t {好きな名前:好きなタグ名} -f {Dockerfileパス} {ディレクトリパス}
- イメージ一覧表示
docker image ls
- イメージ削除
docker image rm {イメージ名}
- イメージの詳細を表示
docker image inspect {イメージ名}
- イメージ作成の履歴を表示
docker image history {イメージ名}
docker container関係
- イメージからコンテナを起動
- optionについて
-i
は標準入力をopen-t
は出力結果の成形-d
でバックグラウンドで起動(デタッチドモード)--name
でコンテナに名前を付ける--rm
で実行後自動削除-p{ホスト側のポート}:{コンテナ側のポート}
でコンテナとホストマシンのポートを紐づける。--network{ネットワーク名}
でDockerネットワークに紐づける。
- コマンド未指定の場合はdefaultコマンド実行
- 下記オプションの追加でボリュームに接続しながらコンテナ起動が可能(どちらも同じ意味)
-v {ボリューム名}:{コンテナ内絶対パス}
--mount type=volume src={ボリューム名} dst={コンテナ内絶対パス}
- 下記オプションの追加でボリュームにバインドマウントしながらコンテナ起動が可能(どちらも同じ意味)
-v {ホスト絶対パス}:{コンテナ内絶対パス}
--mount type=volume src={ホスト絶対パス} dst={コンテナ内絶対パス}
- optionについて
// option何もなし docker container run {イメージ名} // optionあり docker container run -itd --name {好きな名前} {イメージ名} {実行したいコマンド}
- 起動しているコンテナに対して任意のコマンドを実行させる
docker container exec {オプション(itdなど)} {コンテナ名} {実行したいコマンド}
- バックグラウンド(デタッチドモード)で起動しているコンテナをフォアグラウンドモードにする。
docker container attach {コンテナ名}
- 起動しているコンテナ一覧
docker container ls
- コンテナ一覧(起動していないものも含む)
docker container ls -a
- コンテナを停止
docker container stop {コンテナ名}
- コンテナを再起動
docker container restart {コンテナ名}
- コンテナを削除
-f
オプションで強制削除
docker container rm {コンテナ名}
- 停止済みコンテナを一括削除
docker container prune
docker volume関係(コンテナとは分離して管理しているボリューム領域関係)
- 新しいボリューム領域を作成する。
docker volume create {ボリューム名}
- ボリューム領域の一覧を表示する。
docker volume ls
- ボリューム領域の詳細情報を表示する。
docker volume inspect {ボリューム名}
- ボリューム領域を削除する。
docker volume rm {ボリューム名}
docker network関係
- 新しいDockerネットワークを作成する。
docker volume create {ネットワーク名}
- Dockerネットワークの一覧を表示する。
docker network ls
- Dockerネットワークの詳細を表示する。
docker network inspect {ネットワーク名}
- Dockerネットワークを削除する。
docker network rm {ネットワーク名}
docker compose 関係
- 起動コマンド
-d
でデタッチドモード--build
で再ビルド
docker compose up
- 停止コマンド
docker compose stop
- 削除コマンド
docker compose down