読者です 読者をやめる 読者になる 読者になる

kzk-casino.com

一人前のITエンジニアを目指して

AWSのECSを使ってdockerを動かしてみたりDeployの挙動を見てみたりした ②DockerImageの作成

AWS DevOps docker Tech Tips

まずはDockerのイメージを作成


docker for macを使用すればローカル環境で簡単に作成したDockerfileをイメージ化して
挙動を確認することができる

docs.docker.com

Dockerfileの作成

まずはローカルの適当なワークディレクトリにDockerfileという名前のファイルを作成し、
下記のように記載

# nginx 1.10 のイメージを使用
FROM nginx:1.10

# Dockerfile作成者
MAINTAINER kazukimaeda

#最新のAppCodeを取得
RUN apt-get update && \
    apt-get install -y vim git && \
    git clone https://github.com/<Github Account>/sample-html.git /var/www/sample-html && \
    mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak && \
    cp -ip /var/www/sample-html/config/default.conf /etc/nginx/conf.d/

今回はnginxのイメージをベースに、gitをインストールして、テスト用に作成したhtmlとnginxの設定ファイルを
Gitリポジトリから取得するような簡単なイメージを作成
にはGithubのアカウント名が入る

Dockerイメージのビルド

作成したDockerfileからイメージをビルド

$ docker build -t <Dockerhub Account>/sample-html:1.0 .

にはDocker Hubのアカウント名が入る

しばらく待って、イメージが作成されることを確認

$ docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
<Dockerhub Account>/sample-html   1.3                 66daf953cde1        5 hours ago         260.2 MB

(任意)Docker Imageからコンテナを立ち上げて挙動を確認する
今回はnginxを稼働させたWebサーバとして使用するので、ポート80をマッピングする

$ docker run -it -p 80:80 <Dockerhub Account>/sample-html:1.0 /bin/bash
root@69e2ac4715f6:/# service nginx start
root@69e2ac4715f6:/# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 13:44 ?        00:00:00 /bin/bash
root        12     1  0 13:44 ?        00:00:00 nginx: master process /usr/sbin/nginx -
nginx       13    12  0 13:44 ?        00:00:00 nginx: worker process
root        14     1  0 13:44 ?        00:00:00 ps -ef

ブラウザからlocalhostにアクセスして、サンプルのhtmlが表示されることを確認
f:id:kzk_casino:20160924224552p:plain:w400

コンテナを修正した場合は、修正したコンテナをCommitして新しいリビジョンのイメージを作成する
#ここでリビジョン1.3まで上がっちゃいました・・

イメージのDocker HubへのPush

作成したイメージをDocker HubへPushする

$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username:
Password:
Login Succeeded
$ docker push <Dockerhub Account>/sample-html:1.3

次はECSの準備としてCluster、EC2、ALBなどの設定を行います