環境
- M1 Mac
- macOS Sequoia
- Docker 28.0.4
概要
業務でDockerを使ったことはあれど、
個人的に色々と試したことはなかったので
基本的な部分についてさわった際の記録となります。
dockerコマンドとdocker composeコマンドの違い
- dockerコマンド
- 単一のコンテナやイメージを管理・操作するためのコマンド
- docker composeコマンド
- 複数のコンテナから構築されるアプリケーションを管理・操作するためのコマンド
- YAMLファイルを使って、コードにて環境の構築を行うことができる利点もある
dockerコマンド
イメージから新規でコンテナを作成して起動する
# イメージの取得(node.js)
# バージョンとOSの指定が推奨される
docker pull node:22.16.0-bookworm
# 取得したイメージを用いてコンテナを起動する
# コンテナ名として「node-app」をつける
docker container run -it -d --name node-app node
# 稼働中のコンテナへアクセス
docker container exec -it node-app bash
# コンテナのOS確認
cat /etc/os-release
# コンテナ(debian)からぬける
exit
# 稼働中のコンテナを停止する
docker container stop node-app
# 稼働中のコンテナ確認(コンテナが停止したかの確認)
docker container ls
作成済みである、既存のコンテナを起動する
# 作成済みのコンテナを確認
docker container ls -a
# 名前を利用して指定のコンテナを起動する
docker container start node-app
# 稼働中のコンテナへアクセス
docker container exec -it node-app bash
# コンテナ(debian)からぬける
exit
# 稼働中のコンテナを停止する
docker container stop node-app
# 稼働中のコンテナ確認(コンテナが停止したかの確認)
docker container ls
docker composeコマンド
ディレクトリ構造
コマンドを利用するにあたり、
下記のディレクトリ構造にて各種ファイルを配置した。
.
└── pjt_dir_name
├── docker
│ ├── Dockerfile
│ └── compose.yaml
└── .dockerignore
docker composeコマンドでの起動
# プロジェクトディレクトリへの移動
cd /Users/UserName/Git/pjt_dir
# compose.yamlをもとにコンテナを作成する
docker compose -p pjt_dir_name -f ./docker/compose.yaml up
# 稼働中コンテナのサービス名を確認
# サービス名はcompose.ymlで定義したものが反映される
docker compose ps
# 稼働中のコンテナにアクセスする
docker compose exec ServiceName bash
# 稼働中コンテナの停止と削除を行う
docker compose down
# 再度使いたい場合(既存イメージを再利用して構築される)
docker compose -p pjt_dir_name -f ./docker/compose.yaml up
# 全ての稼働中コンテナの停止
docker compose stop
# 全ての停止中コンテナの再開
docker compose start
あとがき
使いたい環境を作って、要らなくなったらさっと消せるのは便利だなーと。
あとMacでやると、WSLの設定しなくて良いから楽に感じました。
参考
- 開発系エンジニアのためのDocker絵とき入門 - 秀和システム あなたの学びをサポート!
- [Linux, docker]macでubuntuで動かしてみる | アウトプット雑記
- "Dockerって何? 簡単な言葉で解説するDockerの基本" #初心者 - Qiita