# 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} へアクセス  ここから入力フォームに適当に名前を入れてjoinをクリック   ## 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 ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up