Ship python apps with docker!
- 2. www.aurorasolutions.io
Raise your hands if you have...
❖ Tried Docker (online tutorial)
❖ Tried real Docker (e.g. deployed on remote VM)
❖ Installed Docker locally (e.g. with boot2docker)
❖ Written a Dockerfile (and built it!)
❖ An image on Docker hub (pushed or autobuilt)
❖ Deployed Docker images for dev/QA/test/prod… etc.
- 3. www.aurorasolutions.io
About: Rasheed
Full Stack Developer & Co-Founder @ Aurora Solutions -
Provides REMOTE Teams specializing in JVM languages and
Angular + Ember
My team at Aurora specializes in:
► Web/Backend Apps ◄ Java, Groovy, Grails, C# and
AngularJS/EmberJS based single or multi page web apps
► Mobile Apps ◄ Android & iOS
Business domains we specialize in:
¤ Media Streaming
¤ Automated/Algorithmic Trading
¤ Bitcoin / Crypto Currency
LinkedIn: https://se.linkedin.com/in/rasheedwaraich
Email: rasheed@aurorasolutions.io
- 16. www.aurorasolutions.io
Say again?
❏ Build: package your application in a container
❏ Ship: move that container from a machine to another
❏ Run: execute that container
❏ Any application: anything that runs on Linux
❏ Anywhere: local VM, cloud instance, bare metal…
- 21. www.aurorasolutions.io
Main Docker Parts
● docker daemon
○ used to manage docker (LXC) containers on the host it runs
● docker CLI
○ used to command and communicate with the docker daemon
● docker image index
○ a repository (public or private) for docker images
- 22. www.aurorasolutions.io
Main Docker Elements
● Dockerfiles
○ scripts automating the building process of images
● docker images
○ snapshots of containers or base OS (e.g. Ubuntu) images
● docker containers
○ directories containing everything-your-application
- 23. www.aurorasolutions.io
Install Docker (Ubuntu 14.04)
Step 1: add docker repository key to apt-key for package verification
sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
Step 2: add the docker repository to your list of repositories:
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main >
/etc/apt/sources.list.d/docker.list"
Step 3: finally install docker with an apt-get combo:
sudo apt-get update
sudo apt-get install lxc-docker
- 28. www.aurorasolutions.io
Install & Run 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/
- 30. www.aurorasolutions.io
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
- 31. www.aurorasolutions.io
Build an Image
❏ docker build -t <image name> <Dockerfile PATH>
❏ docker build -t pycon-app .
Step 0 : FROM ubuntu
---> 07f8e8c5e660
Step 1 : RUN apt-get install -y python-setuptools
---> Using cache
---> f2a1db95b4b8
Step 2 : RUN easy_install pip
---> Using cache
---> 643c89e6188d
…(ignore)...
Successfully built 403ed7ef1455