Top Banner
Azure Workshop Docker for Python Developer Wei-Ting Kuo
43
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Azure workshop

Azure Workshop Docker for Python Developer

Wei-Ting Kuo

Page 2: Azure workshop

What is Docker?

Page 3: Azure workshop

The Challenge

Page 4: Azure workshop

The Matrix From Hell

Page 5: Azure workshop

Cargo Transport Pre-1960

Page 6: Azure workshop

The Matrix From Hell

Page 7: Azure workshop

Solution: Intermodal Shipping Container

Page 8: Azure workshop

Docker is a shipping container system for code

Page 9: Azure workshop

Docker eliminates the matrix from hell

Page 10: Azure workshop

Workshop Steps

• Use Docker-Machine to create VM on Azure

• Build your Python web app

• Build Docker Image and deploy to Azure by Docker

• Improve deployment process by Docker-Compose

Page 11: Azure workshop

Step1 Use Docker-Machine to Create VM

• 1. Download your publish setting file

• 2. Install Docker & Docker Machine

• 3. Use Docker-Machine to create a virtual machine on Azure

Page 12: Azure workshop

Download PublishSettings

• Install Azure command line tool:Source: https://github.com/azure/azure-xplat-cli Windows: http://go.microsoft.com/fwlink/?linkid=254279 Mac: http://go.microsoft.com/fwlink/?Linkid=252249 Linux: http://go.microsoft.com/fwlink/?linkid=253472

• Download your publishsettings file $ azure account download

Page 13: Azure workshop

Install Docker (Mac)

• Documenthttps://docs.docker.com/installation/mac/

• https://github.com/boot2docker/osx-installer/releases/latest

Page 14: Azure workshop

Install Docker (Linux)

• Documenthttps://docs.docker.com/installation/ubuntulinux/

• $ sudo apt-get update $ sudo apt-get install wget $ wget -qO- https://get.docker.com/ | sh

Page 15: Azure workshop

Install Docker (Windows)

• Documenthttps://docs.docker.com/installation/windows/

• Installer https://github.com/boot2docker/windows-installer/releases/latest

Page 16: Azure workshop

Check

• $ docker

Page 17: Azure workshop

Install Docker Machine (Mac & Linux)

• Documenthttps://docs.docker.com/machine/

• Install $ curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_darwin-amd64 > /usr/local/bin/docker-machine $ chmod +x /usr/local/bin/docker-machine

Page 18: Azure workshop

Install Docker Machine (Windows)

• Documenthttps://docs.docker.com/machine/

• Install opensslhttp://gnuwin32.sourceforge.net/packages/openssl.htm

• Install Docker Machine $ curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_windows-amd64.exe > /bin/docker-machine

Page 19: Azure workshop

Create a Virtual Machine on Azure (with Docker)

• Create a Machine on Azure with Docker $ docker-machine create -d azure --azure-publish-settings-file PUBLISH-SETTING-FILE A-VERY-UNIQUE-NAME

• Setup docker environment to connect to your new instance $ eval `docker-machine env A-VERY-UNIQUE-NAME`

Page 20: Azure workshop

VM vs Container

Page 21: Azure workshop

Docker

Page 22: Azure workshop

VM vs Container

Page 23: Azure workshop

Demo

• Some basic Docker commands

• docker info docker pull ubuntu docker run ubuntu ls docker imagesdocker ps

Page 24: Azure workshop

Step 2 Build Your Python Web App

• 1. Add requirements.txt

• 2. Build a very simple python web app

• 3. Write a Dockerfile

• 4. build the image

• 5. Deploy it to Azure

Page 25: Azure workshop

Sample Codes

• Please git clone this repo $ git clone https://github.com/waitingkuo/pyconapac2015-azure-workshop

Page 26: Azure workshop

Add requirements

• Add “flask” and “redis” in “requirements.txt” flaskredis

Page 27: Azure workshop

A simple Python Web App

Page 28: Azure workshop

Dockerfile

Page 29: Azure workshop

Build the image

• Build the image $ docker build -t myapp .

• List your images$ docker images

Page 30: Azure workshop

Deploy to Azure• Run redis first

$ docker run -d --name myredis redis

• Check status $ docker ps

• Run your web app$ docker run -d -p 80:5000 --link myredis:redis myapp

• Check status $ docker ps

Page 31: Azure workshop

Add a Endpoint for your VM

• https://portal.azure.com/

Page 32: Azure workshop
Page 33: Azure workshop
Page 34: Azure workshop
Page 35: Azure workshop
Page 36: Azure workshop
Page 37: Azure workshop
Page 38: Azure workshop

Connect to your server

• http://YOUR-MACHINE-NAME.cloudapp.net

• mine is http://pyconapac2015-azure.cloudapp.net

Page 39: Azure workshop

docker-compose

• 1. Install docker-compose

• 2. Write a docker-compose.yml

• 3. Deploy !

Page 40: Azure workshop

Install docker-compose

• $ pip install docker-compose

Page 41: Azure workshop

docker-compose.yml

• myweb: build: . links: - myredis ports - 80:5000myredis: image: redis

Page 42: Azure workshop

Deploy!

• $ docker-compose up

Page 43: Azure workshop

Q & A