Docker Basics
Prerequisites
For the purpose of this tutorial, I am using a virtual machine running on EXSI 5.5 host. The VM has 2GB of memory, 1 CPU and 60GB of disk. I named the VM Docker2001.The VM is in a DHCP and DNS environment with a docker2001.dfw.ppnet as the FQDN. If you have a bare metal, you can use that also. The VM has Debian Stretch installed on it.
Installation
Login to your server, create a file called docker_install.sh. Copy and paste the script below into the file.
#!/bin/bash sudo apt-get -y install curl curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - sudo apt-get -y install software-properties-common sudo apt-get -y install apt-transport-https sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" sudo apt-get update apt-cache policy docker-ce sudo apt-get install -y docker-ce
Save the file and make the file executable and run the script.
sudo chmod +X docker_install.sh sudo ./docker_install.sh
Check the installation by checking the docker version
ppaul@docker2001:~$ sudo docker --version Docker version 18.06.1-ce, build e68fc7a
Working with images
The first command we are going to us, is the command to list all our images.
ppaul@docker2001:~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED
We can see that for now we have no images.
Download images
The command to download an images is
docker pull "name_of_images
We are going to download the basic Nginx image
sudo docker pull nginx:latest
ppaul@docker2001:~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest f7bb5701a33c 6 days ago 126MB
Now we can see that we have an image.
working with containers
In this section, we are going to create run a container with the Nginx image we download in the previous section. the command to create and run a container is;
docker run --name "name_you_want" -d -p "host_port":"container_port" "image_name"
- Example
docker run --name test_Nginx -d -p 80:80 nginx
- Explanation
The command above will create a container with the name test_Nginx, which will run as a daemon and the port 80 of the host will be mapped to the port 80 of the container. The -d option can be removed if wanted.
Basic containers commands
- List all running container
ppaul@docker2001:~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 08dad63189e1 nginx "nginx -g 'daemon of…" 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp test_Nginx
- List all container
ppaul@docker2001:~$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 08dad63189e1 nginx "nginx -g 'daemon of…" 4 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp test_Nginx
- Delete a container
ppaul@docker2001:~$ sudo docker rm 08dad63189e1