起動オプション
- d デーモン化する。これつけないと1回実行で終わる
- i 標準入力(stdin)を維持する
- t 疑似ターミナルを割り当てる
実行例
docker run -dit ubuntu bash
#後でログイン
docker exec -it ubuntu bash
ボリュームのマウント
ボリュームマウント
Docker Engine管理のボリュームをマウントする
docker volume create hoge
docker volume rm hoge
#オプション指定
-v hoge:コンテナ内のパス
バインドマウント
ホスト側のディレクトリやファイルをマウントする
#オプション指定
-v ホスト側のパス:コンテナ内のパス
image管理
commitによる書き出し
一時的なスナップショット的
docker commit コンテナ名 イメージ名
起動したコンテナ内に入って変更をする
docker exec -it コンテナ名 /bin/bash
docker run --name コンテナ名 -it -p 8089:80 httpd /bin/bash
後者はエントリーポイントを奪うため、Apache起動しない
build(by dockerfile)
環境をコードで定義して再現性を担保する。
チーム開発、長期運用向け
docker build -t イメージ名 /path/to/folder( Dockerfile is here)
save and load
レジストリが使えないときはtarファイル化して持ち出し、持ち込みする。
完全クローズド環境で一度使った。
compose
- 1環境、1フォルダの原則
- services, networks, volumeが大枠の定義カテゴリ
volumeはボリュームマウント
コマンド
- 起動
docker compose up -d
-f
fオプションで指定しなかった場合カレントディレクトリのdocker-compose.ymlが使われる。
-d
バックグラウンドで実行
--build
build: セクションを持つサービスを再ビルド変更を反映させたいときに使う
- 停止
docker compose down
imageとvolumeは残るので使わなければ掃除する。
build(with dockerfile)との違い
- dockerfileはimageしか作れない
- composeはコンテナ、ネットワーク、ボリュームも作れる
volume管理
- ls 一覧表示
- rm 削除
- inspect 詳細情報
- create 作成
- prune マウントされていないボリューム削除