18. Install and Run
flask-sample Locally
• sudo apt-get install -y python-setuptools
• sudo easy_install pip
• sudo pip install -r requirements.txt
• python app.py
* Running on http://0.0.0.0:5000/
19. How to build a
Docker Image
• Dockerfile
http://docs.docker.io/reference/builder/
20. Dockerfile
FROM ubuntu
!
# Install Python Setuptools
RUN apt-get install -y python-setuptools
!
# Install pip
RUN easy_install pip
!
# Install requirements.txt
ADD requirements.txt /src/requirements.txt
RUN cd /src; pip install -r requirements.txt
!
# Add the Flask App
ADD . /src
!
# EXPOSE PORT
EXPOSE 5000
!
# Run the Flask APP
CMD python src/app.py
21. Build a Image
• docker build -t <image name> <Dockerfile PATH>
• docker build -t myapp .
Uploading context 76.29 kB
Uploading context
Step 0 : FROM ubuntu
---> 99ec81b80c55
Step 1 : RUN apt-get install -y python-setuptools
---> Using cache
---> d651a6cb230c
Step 2 : RUN easy_install pip
---> Using cache
---> ecf1474da849
Step 3 : ADD requirements.txt /src/requirements.txt
---> Using cache
---> 274c84b5415e
!
… (ignore) …
!
Successfully built b4c78de4abc1
22. Check Your new Image
• docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
myapp latest b4c78de4abc1 2 minutes ago 302.7 MB
ubuntu 13.10 5e019ab7bf6d 3 weeks ago 180 MB
ubuntu saucy 5e019ab7bf6d 3 weeks ago 180 MB
ubuntu 12.04 74fe38d11401 3 weeks ago 209.6 MB
ubuntu precise 74fe38d11401 3 weeks ago 209.6 MB
ubuntu 12.10 a7cf8ae4e998 3 weeks ago 171.3 MB
ubuntu quantal a7cf8ae4e998 3 weeks ago 171.3 MB
ubuntu 14.04 99ec81b80c55 3 weeks ago 266 MB
ubuntu latest 99ec81b80c55 3 weeks ago 266 MB
ubuntu trusty 99ec81b80c55 3 weeks ago 266 MB
ubuntu raring 316b678ddf48 3 weeks ago 169.4 MB
ubuntu 13.04 316b678ddf48 3 weeks ago 169.4 MB
23. Run It!
• docker run -d -p 5000:5000 myapp
-d detached mode
-p port forwarding
24. How to check the
Running Docker Process?
• docker ps
CONTAINER ID IMAGE COMMAND … PORTS
6294c5a5e9be myapp:latest /bin/sh -c 'python s … 0.0.0.0:5000->5000/tcp
• To kill the process, use
docker kill <CONTAINER ID>
25. Docker Index
• https://index.docker.io/
• You might think it as the GitHub For Docker Image
• You can pull mysql, mongodb, hadoop, … etc
• You can hook your docker index repository on to
your own repository on GitHub!!!
-> Build images automatically once you push something to Github
26. The Repository for our
flask-sample
• https://index.docker.io/u/waitingkuo/flask-sample/
27. Deploy!
• Use whatever you want to login to your production
server (ssh, fabric, capistrano, chef, puppet, ….)
• docker pull waitingkuo/flask-sample
• docker run -d -p 5000:5000 waitingkuo/flask-
sample