目的
現在、私はDockerを独学で学んでいます。
その中で、基本的なDockerコマンドとその役割を、備忘録的にまとめてみたいと思います。
Dockerを使うときに、手元に置く記事になればと思い、作成しました。
Dockerの確認
dockerのバージョン確認
docker --version
docker composeのバージョン確認
docker compose version
イメージ関係
イメージの確認
docker image ls
docker-hubなどからのイメージの取得
docker pull postgres:16
例として、postgreのイメージの取得
ただし、docker compose up -d を実行したときに、必要なイメージがなければ自動でpullされます。
イメージの削除
docker rmi postgres:16
例として、PostgreSQLのイメージの削除を示しました。
ただし、そのイメージを使っているコンテナが残っていると削除できないことがあります。
コンテナ関係
コンテナの起動
docker run -it ubuntu:24.04 bash
ubuntu:24.04 イメージからコンテナを作る
↓
bashを起動する
↓
コンテナの中に入って操作する
起動中のコンテナのみ表示
docker ps
起動中・停止中を含めた全コンテナの表示
docker ps -a
コンテナの停止
docker stop container-name
container-nameに停止したいコンテナ名を記入します。
コンテナ名ではなく、コンテナIDでも指定できます。
コンテナの削除
docker rm container-name
container-nameに削除したい停止済みのコンテナ名を記入します。
コンテナが起動中の場合は先に停止させます。
コンテナのログの確認
docker logs container-name
container-nameにログを確認したいコンテナ名を記入します。
リアルタイムで追いかける場合は以下です。
docker logs -f container-name
起動中のコンテナの中でコマンドを実行
docker exec -it container-name bash
container-nameに、入りたい起動中のコンテナ名を記入します。
例えば、PostgreSQLに直接入るのであれば
docker exec -it chemistry-db psql -U user -d chemistry
意味は
- chemistry-db コンテナの中で
- psql コマンドを実行して
- user ユーザーで
- chemistry データベースに接続する
Docker Compose関係
docker composeで起動
docker compose up -d
通常は、カレントディレクトリにある compose.yml または docker-compose.yml を読み込んで実行します。
docker-compose.yml の内容に従って、サービスを起動します。
docker composeでビルドし直して起動
docker compose up -d --build
Dockerfileを変更した後などに使います。
docker composeの状態確認
docker compose ps
Composeで起動しているサービスの状態を確認します。
docker composeのログ確認
docker compose logs
全サービスのログを確認します。
- dbだけ見る場合
docker compose logs db
- リアルタイムで見る場合
docker compose logs -f db
docker composeの停止・削除
docker compose down
Composeで作ったコンテナとネットワークを停止・削除します。
ただし、基本的にvolumeは残ります。
docker composeでvolumeも含めて削除
docker compose down -v
初期SQLを再実行したいときなどに使います。
ただし、実務ではかなり注意が必要です。
Volume関係
volumeの一覧を確認
docker volume ls
volumeの詳細を確認
docker volume inspect volume-name
volume-nameに、実行したいVolumeの名前を指定します。
volumeを削除
docker volume rm chem-docker-hands-on_chemistry_pgdata
volume-nameに、実行したいVolumeの名前を指定します。
例えば、以下のようなVolumeを削除する場合です。
docker volume rm chem-docker-hands-on_chemistry_pgdata
ただし、使っているコンテナがあると削除できません。
まとめ
Dockerでは、イメージ・コンテナ・Volume・Docker Composeの関係を理解しておくことが重要です。
特に初心者のうちは、以下のように整理するとわかりやすいと考えています。
- イメージ:コンテナの元になるもの
- コンテナ:イメージから作られて実際に動くもの
- Volume:コンテナの外にデータを保存する場所
- Docker Compose:複数のコンテナをまとめて管理する仕組み