今回はDocker for Windowsを使ってAmazon Linuxを起動してみたいと思います。
使用端末はWindows10 Homeです。
Amazon linux 2 docker image を ec2 で使われているものと似た感じにする。
Dockerファイルの作成
以下の内容をファイル名「Dockerfile」に記入し、ディレクトリ「D:\docker\build\amazonlinux」に格納する。
FROM amazonlinux:latest
MAINTAINER test_name
RUN amazon-linux-extras install -y php7.3
RUN yum install -y httpd
WORKDIR /var/www/html
ENTRYPOINT ["/usr/sbin/httpd”,”-DFOREGROUND”]
MAINTAINER test_name
RUN amazon-linux-extras install -y php7.3
RUN yum install -y httpd
WORKDIR /var/www/html
ENTRYPOINT ["/usr/sbin/httpd”,”-DFOREGROUND”]
docker-composeのymlファイルの作成
以下の内容をファイル名「docker-compose.yml」に記入し、ディレクトリ「D:\docker」に格納する。
version: ‘3.3’
services:
amazonlinux:
volumes:
– ./amazonlinux:/var/www/html
build: ./build/amazonlinux/
ports:
– 8080:80
tty: true
depends_on:
– postgresql
postgresql:
image: postgres:11.5
ports:
– 5433:5432
volumes:
– ./db:/var/data
services:
amazonlinux:
volumes:
– ./amazonlinux:/var/www/html
build: ./build/amazonlinux/
ports:
– 8080:80
tty: true
depends_on:
– postgresql
postgresql:
image: postgres:11.5
ports:
– 5433:5432
volumes:
– ./db:/var/data
ディレクトリの構成の確認
最後に以下のディレクトリ構成となります。
D:\docker
amazonlinux →空フォルダ
build
amazonlinux
Dockerfile →Dockerファイル
db →空フォルダ
docker-compose.yml →composeの定義ファイル
amazonlinux →空フォルダ
build
amazonlinux
Dockerfile →Dockerファイル
db →空フォルダ
docker-compose.yml →composeの定義ファイル
docker-composeでビルド
サービスのビルドを実行します。
D:\docker>docker-compose build
build
コマンドではimageを構築します。コンテナは作成しません。キャッシュがあればそちらを優先的に使ってビルドするので、Dockerfileを更新したなどの理由でキャッシュを使いたくない場合は
docker-compose build --no-cache
とします。D:\docker>docker-compose up -d
up
コマンドでは、キャッシュがある場合はそれを使って一発でイメージの構築から、コンテナの構築・起動までします。imageがなくてもbuildから実行してくれます。( build
コマンドと同じでDockerfileを更新してても反映されません。)
キャッシュがない場合は --build
オプションをつけることで、イメージの構築から、コンテナの構築・起動までしてくれます。
新しいサービスを初めて立ち上げる場合はもちろんキャッシュはないので docker-compose up --build
コマンドを使いましょう!
-d
オプションを付けてバックグランドで実行することが多いです。