---
# System prepended metadata

title: Docker Hands-on !!

---

# 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系コマンドを１つの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
```