# Docker Hands-on !! ## Dockerイメージを作成する `作業用ディレクトリの作成` ``` $ mkdir handson $ cd handson ``` `Dockerfileの作成` ``` $ vi Dockerfile ``` `Dockerfile` ``` FROM python:3.6 MAINTAINER <your_nickname> RUN apt update RUN apt install -y git RUN git clone https://github.com/tm3exe/demo-webapp-python.git WORKDIR demo-webapp-python RUN pip install --upgrade pip RUN pip install -r requirements.txt EXPOSE 80 ENTRYPOINT python run.py ``` `イメージをビルド` ``` $ sudo docker build -t demo-webapp-python:v1 . ``` `イメージの確認` ``` $ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE demo-webapp-python v1 b0c87d36f184 24 minutes ago 977MB ``` ## アプリケーションの実行 ``` $ sudo docker run -it -d -p 80:80 --name webapp demo-webapp-python:v1 ``` `Webページへアクセス` ブラウザから http://{HTTP_URL} へアクセス ![localhost](https://i.imgur.com/WZKLm8E.png) ここから入力フォームに適当に名前を入れてjoinをクリック ![type_nickname](https://i.imgur.com/OZZpQ7K.png) ![run_app](https://i.imgur.com/3H9vs17.png) ## Dockerイメージの修正 `イメージの確認` ``` $ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE demo-webapp-python v1 b0c87d36f184 24 minutes ago 977MB ``` SIZEが大きすぎるので、小さくする `Dockerfileの作成` ``` $ vi Dockerfile ``` `Dockerfile` ``` FROM python:3.6-slim MAINTAINER tm3exe RUN apt update && apt install -y git \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN git clone https://github.com/tm3exe/demo-webapp-python.git WORKDIR demo-webapp-python RUN pip install --upgrade pip RUN pip install -r requirements.txt EXPOSE 80 ENTRYPOINT python run.py ``` ``` 変更点 - 使用するイメージの変更 - apt系コマンドを1つのRUNに統合 - apt updateで増えたキャッシュなどを削除 ``` `イメージをビルド` ``` $ sudo docker build -t demo-webapp-python:v2 . ``` `イメージの確認` ``` $ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE demo-webapp-python v2 7b46b0d0db55 6 minutes ago 270MB demo-webapp-python v1 b0c87d36f184 About an hour ago 977MB ``` 977BMから270MBになったので、約72%のカット ## アプリケーションの実行(v2) `アプリの再起動` ``` $ sudo docker rm --force webapp $ sudo docker run -it -d -p 80:80 --name webapp demo-webapp-python:v2 ```