May 23, 2020
May 23, 2020
Docker is an open-source technology that is used to deploy applications through containers. It is a relatively new platform but is constantly updated and features a wide community of users.
Docker is a great tool that solves the age-old dilemma between developers and system administrators – while developers say that an app works on their machines, system admins worry about changing its libraries and requirements. With Docker, that is no longer a problem as it allows a more transparent method of communication.
So with this in mind, let’s learn how to install Docker on Ubuntu 18.04.
Limited time offer for VPS hosting. Check the discounts for up to 77% OFF!
Docker is not in the official Ubuntu 18.04 repositories. However, the installation process will not be complicated because of it. Let’s begin.
First, we have to connect to the server using SSH. If you’re having trouble, check out our PuTTY tutorial.
Then, the system needs to be updated to make it safer and reliable to install Docker. Run the following two commands:
sudo apt update sudo apt upgrade
Once we have updated the system, we need to install some necessary packages before we are ready to install Docker. You can do this with the help of a single command:
sudo apt-get install curl apt-transport-https ca-certificates software-properties-common
To better understand the command above here is a short description of what it means:
Now we have to add the Docker repositories. This will make the installation process much easier. This enables us to use the officially supported method of the installation.
First, we add the GPG key, by entering the following command in the command line:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Next, we add the repository:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
After that, just update the repository information:
sudo apt update
Make sure you are installing from the Docker repo instead of the default Ubuntu repo with this command:
apt-cache policy docker-ce
A correct output will look like the following with different version numbers:
docker-ce: Installed: (none) Candidate: 16.04.1~ce~4-0~ubuntu Version table: 16.04.1~ce~4-0~ubuntu 500 500 https://download.docker.com/linux/ubuntubionic/stableamd64packages
As you can see, docker-ce is not installed, so we can move on to the next step.
We are almost done. Use the apt command to install Docker:
sudo apt install docker-ce
Once the installation is complete, it is a good idea to check the status of the service:
sudo systemctl status docker
That’s it, you now know how to install Docker on Ubuntu 18.04. Easy, right? Let’s learn some Docker basics!
Once Docker is installed, all we need to do is use the test image to check that everything is working as it should. Do this with the following command:
sudo docker run hello-world
Now, if we want to search for available images we just have to use the following command:
sudo docker search [search_query]
Just replace your query with the bracketed text.
For example, if we want to search for an image related to Debian, the command and output will look like this:
sudo docker search debian
Then, to download the image to our computer, we will use the name of the image along with the following command:
sudo docker pull [image_name]
For example, the command might look like this:
sudo docker pull debian
Normally, users will have several images in their system. We can list them with the command:
sudo docker images
The list will look much like the one you receive when you enter a search query.
After that, we can execute our image using the pull command and the Image ID.
sudo docker run -i -t [image]
There are options that extend the functionality of the command itself. For example, the -i option makes the image execution interactive. Or the -d option that executes it in the background.
Once we are running an image, we can end its execution by using the key combination CTRL+D.
Finally, if we want to use Docker without root privileges, we need to run the following command:
sudo usermod -aG docker $(whoami)
After that, restart the system, and the changes will be applied.
The Docker command consists of passing options, commands, and arguments. The syntax will follow the following form:
To view all of the available subcommands use the following command:
To view the options available with a command:
docker docker-subcommand --help
Here are Docker 18′ available subcommands:
docker attach – Attach local standard input, output, and error streams to a running container docker build – Build an image from a Dockerfile docker builder – Manage builds docker checkpoint – Manage checkpoints docker commit – Create a new image from a container's changes docker config – Manage Docker configs docker container – Manage containers docker context – Manage contexts docker cp – Copy files/folders between a container and local filesystem docker create – Create a new container docker diff – Inspect changes to files or directories on a container's filesystem docker events – Get real time events from the server docker exec – Run a command in a running container docker export – Export a container's filesystem as a tar archive docker history – Show the history of an image docker image – Manage images docker images – List images docker import – Import the contents from a tarball to create a filesystem image docker info – Display system-wide information docker inspect – Return low-level information on Docker objects docker kill – Kill one or more running containers docker load – Load an image from a tar archive or STDIN docker login – Log in to a Docker registry docker logout – Log out from a Docker registry docker logs – Fetch the logs of a container docker manifest – Manage Docker image manifests and manifest lists docker network – Manage networks docker node – Manage Swarm nodes docker pause – Pause all processes within one or more containers docker plugin – Manage plugins docker port – List port mappings or a specific mapping for the container docker ps – List containers docker pull – Pull an image or a repository from a registry docker push – Push an image or a repository to a registry docker rename – Rename a container docker restart – Restart one or more containers docker rm – Remove one or more containers docker rmi – Remove one or more images docker run – Run a command in a new container docker save – Save one or more images to a tar archive (streamed to STDOUT by default) docker search – Search the Docker Hub for images docker secret – Manage Docker secrets docker service – Manage services docker stack – Manage stacks docker start – Start one or more stopped containers docker stats – Display a live stream of container(s) resource usage statistics docker stop – Stop one or more running containers docker swarm – Manage Swarm docker system – Manage Docker docker tag – Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE docker top – Display the running processes of a container docker trust – Manage trust on Docker images docker unpause – Unpause all processes within one or more containers docker update – Update configuration of one or more containers docker version – Show the Docker version information docker volume – Manage volumes docker wait – Block until one or more containers stop, then print their exit codes
Its main novelty is that it allows you to “package” an application or a set of services in containers. A Docker container is an instance of an application that contains all the libraries and components necessary for an application to work. From a practical point of view, a container is like a reduced virtual machine that functions independently from the operating system where a specific application or service is executed.
A Docker container is generated from an image that is the result of the packaged app or service. It can contain a complete operating system or pre-installed applications. That is to say, the container will start to work from an image.
There are many Docker images that we can use in our daily work cycle. We can also create our own images and further expand the possibilities of this great application.
Docker’s advantages make software deployment much more efficient and convenient than before. Thanks to this, developers will have no problems in knowing how your application will run outside the test environment. On the other hand, the system administrator will not have to struggle with system changes or looking for necessary libraries.
In this tutorial, we showed you the first steps to take with Docker. To unlock the true potential of this great utility, we recommend to check out the official documentation. Happy developing!