Containers How To: Difference between revisions
Jump to navigation
Jump to search
Created page with "== How to install Docker (Windows Platform) == * Login to the machine using privileged account * Download the latest Docker build from: : https://download.docker.com/win/edge/..." |
No edit summary |
||
(7 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
* Download the latest Docker build from: | * Download the latest Docker build from: | ||
: https://download.docker.com/win/edge/Docker%20Desktop%20Installer.exe | : https://download.docker.com/win/edge/Docker%20Desktop%20Installer.exe | ||
== How to install Docker (Ubuntu) == | |||
* Login to the machine using privileged account | |||
* Follow the instructions below: | |||
: https://docs.docker.com/install/linux/docker-ce/ubuntu/ | |||
== How to install Docker (RHEL / CentOS) == | |||
* Login to the machine using privileged account | |||
* Follow the instructions below: | |||
: https://docs.docker.com/install/linux/docker-ce/centos/ | |||
== Common Docker commands == | |||
* Check the Docker version: | |||
: '''docker --version''' | |||
* Pull and run '''“hello-world”''' image from Docker hub: | |||
: '''docker run hello-world''' | |||
* List images: | |||
: '''docker images''' | |||
* List all images: | |||
: '''docker image ls''' | |||
* Pull an image from Docker hub: | |||
* '''docker image pull alpine''' | |||
* Remove Docker image (by image name) from the local machine: | |||
: '''docker image rm nginx''' | |||
* List all containers: | |||
: '''docker container ls --all''' | |||
* List active containers: | |||
: '''docker ps''' | |||
* List all container processes (same as docker container ls command) | |||
: '''docker ps --all''' | |||
* Pull nginx web server from Docker hub and run it on port 80 on the local machine: | |||
: '''docker run --detach --publish 80:80 --name webserver nginx''' | |||
: Note: Open browser and enter the URL http://localhost to make sure the web server is working | |||
* Start a container in the background: | |||
: '''docker run -d jenkins''' | |||
* Start an interactive shell command from a container (by image name): | |||
: '''docker run -it nginx bash''' | |||
* Mount a folder from the local machine into a docker container, and map port 8080 locally to port 80 on the container (container name nginx): | |||
: '''docker run -v /full/path/to/html/directory:/usr/share/nginx/html:ro -p 8080:80 -d nginx''' | |||
* Stop running container (by container name) from the local machine: | |||
: '''docker container stop webserver''' | |||
* Start (a stopped) docker container (by container name) on the local machine: | |||
: '''docker container start webserver''' | |||
* Kill all running containers: | |||
: '''docker kill $(docker ps -q)''' | |||
* Remove all stopped containers: | |||
: '''docker rm $(docker ps -a -q)''' | |||
* Remove container (by container name) from the local machine: | |||
: '''docker container rm webserver''' | |||
* View logs from a running container (by container name): | |||
: '''docker container logs webserver''' | |||
* Show live logs of running container: | |||
: '''docker logs -f c7337''' | |||
* View top processes inside a container (by container name): | |||
: '''docker container top webserver''' | |||
* Show exposed ports of a container: | |||
: '''docker port c7337''' | |||
== Building a Docker image == | |||
* Create a sample '''Dockerfile''' on the local machine, with the following content: | |||
: '''FROM nginx''' | |||
: '''COPY html /usr/share/nginx/html''' | |||
* Run the command below (from the local folder containing Dockerfile and html folder) to build a custom docker image: | |||
: '''docker build -t mynginx .''' | |||
* Build a Docker image from a Dockerfile: | |||
: '''docker build -f path/to/Dockerfile -t mynginx .''' | |||
* Force rebuild of Docker image (from the current directory): | |||
: '''docker build --no-cache .''' | |||
* Convert a container to image: | |||
: '''docker commit c7337 myimage''' | |||
* Run the newly created custom docker image: | |||
: '''docker run --name mynginx -d -p 8080:80 mynginx''' | |||
* Open a browser and check that the custom image web server is running (http://localhost:8080) | |||
== Docker file instructions == | |||
* '''FROM <base_image_name>:<image_version>''' | |||
: Purpose: Set the base image to create the container from | |||
: Example: '''FROM Ubuntu:15.04''' | |||
* '''RUN <command>''' | |||
: Purpose: Execute commands inside the container | |||
: Example: '''RUN apt-get update -y''' | |||
* '''CMD [“command”,”parameter1”,”parameter2”]''' | |||
: Purpose: Define a default command to run when the container starts | |||
: Example: '''CMD [“echo”,”Hello World!”]''' | |||
* '''EXPOSE <port>''' | |||
: Purpose: Informs docker that the container listens on specific port number at runtime | |||
: Example: '''EXPOSE 80/tcp''' | |||
* '''COPY <src> <dest>''' | |||
: Purpose: Copy files/folders from the local machine into the Docker container | |||
: Example: '''COPY html /www/html #Copy html folder into /www/html inside the container''' | |||
* '''ADD <src_file> <dest>''' | |||
: Purpose: Copy archive file from the local machine into the docker container and extract it, or copy the content of a folder inside a URL into the docker container | |||
: Example 1: '''ADD myfile.tar.gz /myfolder''' | |||
: Example 2: '''ADD http://www.example.com/folder /folder''' | |||
* '''ENV variable_name=variable_data''' | |||
: Purpose: Creates an environment variable inside a docker container | |||
Reference: | |||
: https://linuxize.com/post/how-to-build-docker-images-with-dockerfile/ | |||
== Common Docker commands for using Docker hub registry == | |||
* Login to the docker hub using registered account: | |||
: '''docker login -u <username> -p <password>''' | |||
* Tag a docker image created locally: | |||
: '''docker tag <image-id> <username>/<repo-name>:<tag>''' | |||
: Example: '''docker tag 3fd9065eaf02 shrikantlavhate/kerneltalks''' | |||
* Push a docker image from the local machine into the docker hub: | |||
: '''docker push <username>/<repo-name>:<tag>''' | |||
: Example: '''docker push shrikantlavhate/kerneltalks''' | |||
* Pull a docker image from docker hub: | |||
: '''docker pull <username>/<repo-name>:<tag>''' | |||
: Example: '''docker pull alpine:latest''' | |||
* Logoff docker hub: | |||
: '''docker logout''' | |||
== References == | |||
* Intro Guide to Dockerfile Best Practices | |||
: https://blog.docker.com/2019/07/intro-guide-to-dockerfile-best-practices/ |
Latest revision as of 06:20, 7 July 2019
How to install Docker (Windows Platform)
- Login to the machine using privileged account
- Download the latest Docker build from:
How to install Docker (Ubuntu)
- Login to the machine using privileged account
- Follow the instructions below:
How to install Docker (RHEL / CentOS)
- Login to the machine using privileged account
- Follow the instructions below:
Common Docker commands
- Check the Docker version:
- docker --version
- Pull and run “hello-world” image from Docker hub:
- docker run hello-world
- List images:
- docker images
- List all images:
- docker image ls
- Pull an image from Docker hub:
- docker image pull alpine
- Remove Docker image (by image name) from the local machine:
- docker image rm nginx
- List all containers:
- docker container ls --all
- List active containers:
- docker ps
- List all container processes (same as docker container ls command)
- docker ps --all
- Pull nginx web server from Docker hub and run it on port 80 on the local machine:
- docker run --detach --publish 80:80 --name webserver nginx
- Note: Open browser and enter the URL http://localhost to make sure the web server is working
- Start a container in the background:
- docker run -d jenkins
- Start an interactive shell command from a container (by image name):
- docker run -it nginx bash
- Mount a folder from the local machine into a docker container, and map port 8080 locally to port 80 on the container (container name nginx):
- docker run -v /full/path/to/html/directory:/usr/share/nginx/html:ro -p 8080:80 -d nginx
- Stop running container (by container name) from the local machine:
- docker container stop webserver
- Start (a stopped) docker container (by container name) on the local machine:
- docker container start webserver
- Kill all running containers:
- docker kill $(docker ps -q)
- Remove all stopped containers:
- docker rm $(docker ps -a -q)
- Remove container (by container name) from the local machine:
- docker container rm webserver
- View logs from a running container (by container name):
- docker container logs webserver
- Show live logs of running container:
- docker logs -f c7337
- View top processes inside a container (by container name):
- docker container top webserver
- Show exposed ports of a container:
- docker port c7337
Building a Docker image
- Create a sample Dockerfile on the local machine, with the following content:
- FROM nginx
- COPY html /usr/share/nginx/html
- Run the command below (from the local folder containing Dockerfile and html folder) to build a custom docker image:
- docker build -t mynginx .
- Build a Docker image from a Dockerfile:
- docker build -f path/to/Dockerfile -t mynginx .
- Force rebuild of Docker image (from the current directory):
- docker build --no-cache .
- Convert a container to image:
- docker commit c7337 myimage
- Run the newly created custom docker image:
- docker run --name mynginx -d -p 8080:80 mynginx
- Open a browser and check that the custom image web server is running (http://localhost:8080)
Docker file instructions
- FROM <base_image_name>:<image_version>
- Purpose: Set the base image to create the container from
- Example: FROM Ubuntu:15.04
- RUN <command>
- Purpose: Execute commands inside the container
- Example: RUN apt-get update -y
- CMD [“command”,”parameter1”,”parameter2”]
- Purpose: Define a default command to run when the container starts
- Example: CMD [“echo”,”Hello World!”]
- EXPOSE <port>
- Purpose: Informs docker that the container listens on specific port number at runtime
- Example: EXPOSE 80/tcp
- COPY <src> <dest>
- Purpose: Copy files/folders from the local machine into the Docker container
- Example: COPY html /www/html #Copy html folder into /www/html inside the container
- ADD <src_file> <dest>
- Purpose: Copy archive file from the local machine into the docker container and extract it, or copy the content of a folder inside a URL into the docker container
- Example 1: ADD myfile.tar.gz /myfolder
- Example 2: ADD http://www.example.com/folder /folder
- ENV variable_name=variable_data
- Purpose: Creates an environment variable inside a docker container
Reference:
Common Docker commands for using Docker hub registry
- Login to the docker hub using registered account:
- docker login -u <username> -p <password>
- Tag a docker image created locally:
- docker tag <image-id> <username>/<repo-name>:<tag>
- Example: docker tag 3fd9065eaf02 shrikantlavhate/kerneltalks
- Push a docker image from the local machine into the docker hub:
- docker push <username>/<repo-name>:<tag>
- Example: docker push shrikantlavhate/kerneltalks
- Pull a docker image from docker hub:
- docker pull <username>/<repo-name>:<tag>
- Example: docker pull alpine:latest
- Logoff docker hub:
- docker logout
References
- Intro Guide to Dockerfile Best Practices