前置き
業務でコンテナを使ったシステム開発をすることになったので、Dockerについて理解していきたい。
何となくDockerfileからイメージを作成し、docker runでコンテナアプリを立ち上げられようになった状態。
Docker Composeについてよく目にするので、実際に使ってみたいと思った次第。
OSはWindows
docker desktop
やりたいことを書き出してみる
Docker Composeで複数コンテナをまとめて起動したい。 ★今回はこれだけやってみる
Kubernetesを使ってみたい。
DockerFileの細かい設定について理解したい。
Docker build runのオプションを理解したい。
Docker Composeとは?
設定ファイルから複数コンテナを起動、管理できるサービスのよう。
そんくらいの理解でとりあえず次に進もう。
Docker Composeをとりあえず使ってみたい。
compose.yamlが必要。
サーバー、DBをとりあえず立ち上げよう。
nginx,PostgreSQLとする。
version: '3'
services:
web:
image: nginx:latest
ports:
- "8080:80"
db:
image: postgres:latest
environment:
POSTGRES_PASSWORD: example
とりあえずこれでいい。
起動方法を知りたい。
docker-compose up
というコマンドで実行できるらしい。
Docker Desktopを使っている場合は、Docker Composeも同封されているとのことなので、コマンドを実行してみる。
nginxにアクセスできることを確認。
localhost:8080で画面が表示される。
postgreにアクセスできることを確認。
docker-compose ps
でpostgreコンテナのNameを取得 sourcecode-db-1
コンテナ名は、[ディレクトリ名]-db-1という形式で作成される
// これでpostgreが起動しているコンテナに入り、対話型でコマンド実行できる
docker exec -it sourcecode-db-1 bash
テーブル作る
CREATE TABLE users(
id SERIAL PRIMARY KEY,
name VARCHAR(18) NOT NULL,
email VARCHAR(18) UNIQUE
);
レコード作る。
INSERT INTO users(name,email) VALUES('Taro Yamada','taro@gmail.com');
クエリする。
SELECT * FROM users;