Docker Hubからイメージを作成
イメージの取得
docker pull 'イメージ名':'バージョン'
取得したイメージの確認
docker images
イメージの削除
docker rmi 'イメージ名またはID'
コンテナを作成して起動する
コンテナの作成と起動(同時)
docker run --name '作成するコンテナ名' -d -p 'ホストポート':'コンテナポート' 'イメージ名'
- -d:バックグランド(デタッチド)モードで実行
例:nginxのコンテナを起動し、ホストの8080ポートをコンテナの80ポートにマッピングする場合
docker run --name my-nginx -d -p 8080:80 nginx
※ Ubuntuなどの場合は以下のようにしないと、起動してもすぐに終了する
docker run -it --name myubuntu ubuntu
作成したコンテナの起動(再開)
docker start 'コンテナ名'
コンテナの状態を確認する
すべてのコンテナの確認
docker ps -a
起動しているコンテナだけを確認
docker ps
コンテナの操作
コンテナを停止する
docker stop 'コンテナ名またはID'
コンテナを削除する
docker rm 'コンテナ名またはID'
コンテナ内にアクセスする方法
docker exec -it 'コンテナ名' 'コマンド'
例:my-ubuntuコンテナ内のbashを起動
docker exec -it my-ubuntu /bin/bash
- -it : 対話モードで起動
※コンテナはプロセスが動いていないとすぐに終了する。
この場合はbashを起動している
起動しているプロセスに接続する
docker attach 'コンテナ名'
「exec」と「attach」の違い
| コマンド | 説明 |
|---|---|
| docker attach <コンテナ名> | 現在動作しているプロセスに接続する |
| docker exec -it <コンテナ名> /bin/bash | 新しいプロセスを開始してコンテナに入る |
例えば、すでに実行中のコンテナがあって、それにシェルがない場合、attachではシェルを開けません。その場合は、execを使って/bin/bashを実行する必要があります。
attach で接続すると、通常のシェルのように見えますが、抜けるときには特別な操作が必要です。
① 安全に抜ける(コンテナを停止せずに離れる)
Ctrl + P, Ctrl + Q
② exit で抜ける(コンテナが停止する)
exit
→ これを実行すると、コンテナ自体が終了してしまうので注意!
attachを使う場面
-
デバッグやログの確認
attach を使うと、コンテナの標準出力をリアルタイムで監視できます。
たとえば、コンテナのログを追いかけたり、標準入力が必要なプロセスを直接操作したい場合に便利です。 -
バックグラウンドで実行したコンテナに入る
docker run -d で起動したコンテナに接続し、実行中のプロセスの様子を見たり、対話的に操作できます。
単にログを見たいだけなら「docker logs」
docker logs -f 'コンテナ名'
-f(フォローオプション)を付けると、リアルタイムでログを見続けられる