📘
docker-compose basic
目標
- docker-composeを使って簡単なコンテナーを生成することで、理解してみましょう。
docker-compose.ymlの書き方
services:
db:
image: mysql
restart: always
volumes:
- mysql-compose-volume:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root1234
- MYSQL_DATABASE=rootdb
ports:
- "3307:3306"
volumes:
mysql-compose-volume:
各オプションの解説
- services: これから使用するコンテナーを意味します。
- db: 使用するコンテナーの名前を意味します。(なんでも良い)
- image: コンテナーが使用するimageを意味します。
- restart: コンテナの再起動ポリシーを定義します。always は、Docker デーモンの起動時やコンテナの終了時に常にコンテナを再起動することを意味します。
- volumes: マウントすることを意味します。
- mysql-compose-volume:/var/lib/mysql: これは名前付きボリューム mysql-compose-volume をコンテナの /var/lib/mysql にマウントします。これにより、MySQL データベースのデータが永続化されます。
- environment: db接続のために、環境変数の設定を意味します。
- MYSQL_ROOT_PASSWORD: MySQL の root ユーザーのパスワードを設定します。ここでは root1234 としています。
- MYSQL_DATABASE: コンテナ起動時に作成されるデータベースの名前を指定します。ここでは rootdb としています。
- ports: "3307:3306" ホストマシンのポート 3307 をコンテナのポート 3306 にマッピングします。これにより、ホストマシンからポート 3307 を通じて MySQL データベースにアクセスできます。
- volumes: このセクションでは、使用する Docker ボリュームを定義します。
- mysql-compose-volume: これは名前付きボリュームを作成します。上記 services セクションでこのボリュームが参照されています。
Discussion