Containerizing web application_with_docker
Transcript of Containerizing web application_with_docker
DOCKER PLATFORM OVERVIEW
Docker is a platform for developing, shipping and running applications using container virtualization technology.
The Docker Platform consists of multiple products/tools:
Docker Engine
Docker Hub
Docker Machine
Docker Swarm
Docker Compose
Kitematic
3
DOCKER PLATFORM OVERVIEW
Docker containers wrap up a piece ofsoftware in a complete filesystem thatcontains everything it needs to run: code,runtime, system tools, system libraries –anything you can install on a server.
This guarantees that it will always run thesame, regardless of the environment it isrunning in.
4
DOCKER INSTALLATION
Docker website: https://www.docker.com/
Windows : https://docs.docker.com/windows/
Mac : https://docs.docker.com/mac/
Linux : https://docs.docker.com/linux/
6
sudo apt install docker.io from ubuntu repo
curl -fsSL https://get.docker.com/ | sh from Docker (latest)
docker info to verify installation
DOCKER COMMANDS
docker search ubuntu
docker search –s 1000 ubuntu
docker images
7
Searching images …
DOCKER COMMANDS
docker pull ubuntu:14.04
docker pull mariadb
docker pull mariadb:latest
docker pull joomla:3.5.0-apache-php7
docker pull joomla:3.5.0-fpm-php7
docker pull wordpress:4.5.2-apache
docker pull mysql:5.7
8
Pulling images …
DOCKER COMMANDS
docker run -it ubuntu:16.04 bash
#in docker – ubuntu shell
apt update
apt upgrade –y
apt install apache
apt clean all
#to exit press CTRL-C and stop the container OR CTRL-P CTRL-Q to exit without stopping the running container
docker ps
docker ps –a
docker commit -a authorname <container-id> <new-image-id>
10
Creating an image your own …
DOCKER COMMANDS
docker run hello-world
docker run -i -t ubuntu bash
docker run --name mynginx1 -d -P nginx
docker run -d -p 3000:8080 nginx
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
docker run -d -p 80:80 -p 3306:3306 webkul/joomla:latest
docker run --name docker-nginx -p 80:80 -d -v ~/docker-nginx/html:/usr/share/nginx/html nginx
11
Launching new containers …
DOCKER COMMANDS
docker ps -a
docker attach <container-id>
docker attach <container-name>
** to exit/detach press CTRL-P CTRL-Q
13
Attaching to a running container …
DOCKER COMMANDS
docker ps -a
docker stop <container-id>
docker stop <container-name>
14
Stopping a running container …
DOCKER COMMANDS
docker run --name mysql1 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
docker run --name joomla1 --link mysql1:mysql -d joomla
docker run --name some-joomla --link mysql1:mysql -p 8080:80 -d joomla
docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -d mysql:5.7
docker run -e WORDPRESS_DB_PASSWORD=password -d --name wordpress --link wordpressdb:mysql wordpress
16
Linking two containers …
DOCKER COMMANDS
mkdir myapp1
cd myapp1
vi Dockerfile
docker build -t myapp1 .
17
Dockerfile …
FROM ubuntu:latestMAINTAINER [email protected] apt-get updateRUN apt-get install –y curlRUN curl –silent –location https://deb.nodesource.com/setup_4.X| sudo bash -RUN apt-get install –y nodejsRUN apt-get clean allRUN mkdir /srcWORKDIR src/CMD [“npm”,”start”]
DOCKER COMMANDS
FROM ENTRYPOINT
MAINTAINER VOLUME
RUN USER
CMD WORKDIR
LABEL ARG
EXPOSE ONBUILD
ENV STOPSIGNAL
ADD
COPY
18
Dockerfile …