16
Presented By : Jatin Demla Software Consultant Knoldus Software LLP Deploying Microservice on Docker

Deploying Microservice on Docker

Embed Size (px)

Citation preview

Presented By : Jatin DemlaSoftware ConsultantKnoldus Software LLP

Deploying Microservice on Docker

Agenda

● Microservice● Container Vs Vms● Challenge In Deploying Microservice● Docker ● Docker Architecture● Docker File ● Docker Commands● Docker Networking ● Docker Compose● Demo

Microservice

Container Vs VMs

Challenge In Deploying Microservice

● Centralize Monitoring, Logging and Alerting

● Automation

● Micro-services InterCommunication

Docker

➢ Docker is a container based virtualization technology which are lightweight and uses host OS.

➢ Provide a uniformed wrapper around a software package: «Build, Ship and Run Any App, Anywhere»

➢ You don’t have to pre allocate any RAM in container.

Docker Engine

Docker Architecture

Docker File

A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image.

ADD Copies a file from the host system onto the containerCMD The command that runs when the container startsENV Sets an environment variable in the new containerFROM The base image to use in the build. This is mandatory and must be the first command in the file.WORKDIR Set the default working directory for the container

$docker build -t ImageName dir

$docker run -d image-name

Docker Commands

$ docker images Check available Docker images

$ docker stop container_id Stop running container

$ docker ps List all running container

$ docker exec -it container-id bash Enter into docker container

$ docker rm $(docker ps -a -q) Remove all the running container

$ docker rmi image-name Delete an image

$ docker pull <Name-of-Image> download docker container images from its registry server

$ docker inspect <container-id> List properties of container

Docker Networking

● Host : In this mode container will share the host’s network stack and all interfaces from the host will be available to the container.

● None : This mode will not configure any IP for the container and doesn’t have any access to the external network as well as for other containers. It does have the loopback address and can be used for running batch jobs.

● Bridge : Bridge is the Docker default networking mode which will enable the connectivity to the other interfaces of the host machine as well as among containers.

Host and None mode are not configured directly but default bridge network can be configured as well as create your own user-defined bridge networks.

Exposing and publishing ports

$ docker run -d -p 9090:8080 my_image

Cont..

User-defined networks

Docker does not support automatic service discovery on the default bridge network. If you

want containers to be able to resolve IP addresses by container name, you should use user-

defined networks instead.

$ docker network create mynetwork

$ docker network rm mynetwork

$ docker run --network=mynetwork <container-id>

Docker Compose

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration

version: '3' services: webapp: image: examples/web ports: - "8000:8000" networks: - default

$ docker-compose up$ docker-compose down

References

● Microservice and Deployment

– IBM Bluemix: The Cloud Platform for Creating and Delivering Applications

● Docker Networking

― https://docs.docker.com/engine/userguide/networking/