Get Docker Linux

/ Comments off

Estimated reading time: 11 minutes

  1. Linux Docker Get Host Ip
  2. Get Docker Linux Command
  3. Get Docker Linux Online
  • Aug 28, 2020 To get started developing apps using Docker with WSL 2, we recommend using VS Code, along with the Remote-WSL extension and Docker extension. Install the VS Code Remote-WSL extension. This extension enables you to open your Linux project running on WSL in VS Code (no need to worry about pathing issues, binary compatibility, or other cross-OS.
  • The preferred choice for millions of developers that are building containerized apps. Docker Desktop is an application for MacOS and Windows machines for the building and sharing of containerized applications. Access Docker Desktop and follow the guided onboarding to build your first containerized application in minutes. Deploying MySQL on Windows and Other Non-Linux Platforms with Docker The Docker deployment framework supports easy installation and configuration of MySQL Server. This section explains how to use a MySQL Server Docker image.

Scan your images for vulnerabilities

Using open source components in your container images can introduce vulnerabilities. Run docker scan to start securing your images using Snyk. If you have a Docker Pro, Team, or a Business subscription, you can automatically scan images when you push an image to Docker Hub. See Hub Vulnerability Scanning for more information.

To get started with Docker Engine on Ubuntu, make sure youmeet the prerequisites, theninstall Docker.


OS requirements

To install Docker Engine, you need the 64-bit version of one of these Ubuntuversions:

  • Ubuntu Hirsute 21.04
  • Ubuntu Focal 20.04 (LTS)
  • Ubuntu Bionic 18.04 (LTS)

Docker Engine is supported on x86_64 (or amd64), armhf, arm64, and s390x architectures.

Ubuntu 16.04 LTS “Xenial Xerus” end-of-life

Ubuntu Linux 16.04 LTS reached the end of its five-year LTS window on April30th 2021 and is no longer supported. Docker no longer releases packages forthis distribution (including patch- and security releases). Users runningDocker on Ubuntu 16.04 are recommended to update their system to a currentlysupported LTS version of Ubuntu.

Uninstall old versions

Older versions of Docker were called docker,, or docker-engine.If these are installed, uninstall them:

It’s OK if apt-get reports that none of these packages are installed.

The contents of /var/lib/docker/, including images, containers, volumes, andnetworks, are preserved. If you do not need to save your existing data, and want tostart with a clean installation, refer to the uninstall Docker Enginesection at the bottom of this page.

Supported storage drivers

Docker Engine on Ubuntu supports overlay2, aufs and btrfs storage drivers.

Docker Engine uses the overlay2 storage driver by default. If you need to useaufs instead, you need to configure it manually.See use the AUFS storage driver

Installation methods

You can install Docker Engine in different ways, depending on your needs:

  • Most usersset up Docker’s repositories and installfrom them, for ease of installation and upgrade tasks. This is therecommended approach.

  • Some users download the DEB package andinstall it manually and manageupgrades completely manually. This is useful in situations such as installingDocker on air-gapped systems with no access to the internet.

  • In testing and development environments, some users choose to use automatedconvenience scripts to install Docker.

Install using the repository

Before you install Docker Engine for the first time on a new host machine, you needto set up the Docker repository. Afterward, you can install and update Dockerfrom the repository.

Set up the repository

  1. Update the apt package index and install packages to allow apt to use arepository over HTTPS:

  2. Add Docker’s official GPG key:

  3. Use the following command to set up the stable repository. To add thenightly or test repository, add the word nightly or test (or both)after the word stable in the commands below. Learn about nightly and test channels.

    Note: The lsb_release -cs sub-command below returns the name of yourUbuntu distribution, such as xenial. Sometimes, in a distributionlike Linux Mint, you might need to change $(lsb_release -cs)to your parent Ubuntu distribution. For example, if you are using Linux Mint Tessa, you could use bionic. Docker does not offer any guarantees on untestedand unsupported Ubuntu distributions.

Install Docker Engine

  1. Update the apt package index, and install the latest version of DockerEngine and containerd, or go to the next step to install a specific version:

    Got multiple Docker repositories?

    If you have multiple Docker repositories enabled, installingor updating without specifying a version in the apt-get install orapt-get update command always installs the highest possible version,which may not be appropriate for your stability needs.

  2. To install a specific version of Docker Engine, list the available versionsin the repo, then select and install:

    a. List the versions available in your repo:

    b. Install a specific version using the version string from the second column, for example, 5:18.09.1~3-0~ubuntu-xenial.

  3. Verify that Docker Engine is installed correctly by running the hello-worldimage.

    This command downloads a test image and runs it in a container. When thecontainer runs, it prints a message and exits.

Docker Engine is installed and running. The docker group is created but no usersare added to it. You need to use sudo to run Docker commands.Continue to Linux postinstall to allow non-privilegedusers to run Docker commands and for other optional configuration steps.

Upgrade Docker Engine

To upgrade Docker Engine, first run sudo apt-get update, then follow theinstallation instructions, choosing the newversion you want to install.

Install from a package

If you cannot use Docker’s repository to install Docker Engine, you can download the.deb file for your release and install it manually. You need to downloada new file each time you want to upgrade Docker.

  1. Go to,choose your Ubuntu version, then browse to pool/stable/, choose amd64,armhf, arm64, or s390x, and download the .deb file for the Docker Engineversion you want to install.


    To install a nightly or test (pre-release) package,change the word stable in the above URL to nightly or test.Learn about nightly and test channels.

  2. Install Docker Engine, changing the path below to the path where you downloadedthe Docker package.

    The Docker daemon starts automatically.

  3. Verify that Docker Engine is installed correctly by running the hello-worldimage.

    This command downloads a test image and runs it in a container. When thecontainer runs, it prints a message and exits.

Docker Engine is installed and running. The docker group is created but no usersare added to it. You need to use sudo to run Docker commands.Continue to Post-installation steps for Linux to allownon-privileged users to run Docker commands and for other optional configurationsteps.

Upgrade Docker Engine

To upgrade Docker Engine, download the newer package file and repeat theinstallation procedure, pointing to the new file.

Install using the convenience script

Docker provides a convenience script at get.docker.comto install Docker into development environments quickly and non-interactively.The convenience script is not recommended for production environments, but can beused as an example to create a provisioning script that is tailored to your needs.Also refer to the install using the repositorysteps to learn about installation steps to install using the package repository.The source code for the script is open source, and can be found in thedocker-install repository on GitHub.

Always examine scripts downloaded from the internet before running them locally.Before installing, make yourself familiar with potential risks and limitationsof the convenience script:

  • The script requires root or sudo privileges to run.
  • The script attempts to detect your Linux distribution and version andconfigure your package management system for you, and does not allow you tocustomize most installation parameters.
  • The script installs dependencies and recommendations without asking forconfirmation. This may install a large number of packages, depending on thecurrent configuration of your host machine.
  • By default, the script installs the latest stable release of Docker, containerd,and runc. When using this script to provision a machine, this may result inunexpected major version upgrades of Docker. Always test (major) upgrades ina test environment before deploying to your production systems.
  • The script is not designed to upgrade an existing Docker installation. Whenusing the script to update an existing installation, dependencies may not beupdated to the expected version, causing outdated versions to be used.

Tip: preview script steps before running

Get Docker Linux

You can run the script with the DRY_RUN=1 option to learn what steps thescript will execute during installation:

This example downloads the script from get.docker.comand runs it to install the latest stable release of Docker on Linux:

Docker is installed. The docker service starts automatically on Debian baseddistributions. On RPM based distributions, such as CentOS, Fedora, RHEL or SLES,you need to start it manually using the appropriate systemctl or service command.As the message indicates, non-root users cannot run Docker commands by default.

Use Docker as a non-privileged user, or install in rootless mode?

The installation script requires root or sudo privileges to install anduse Docker. If you want to grant non-root users access to Docker, refer to thepost-installation steps for Linux.Docker can also be installed without root privileges, or configured to runin rootless mode. For instructions on running Docker in rootless mode, refer torun the Docker daemon as a non-root user (rootless mode).

Install pre-releases

Linux Docker Get Host Ip

Docker also provides a convenience script at test.docker.comto install pre-releases of Docker on Linux. This script is equivalent to thescript at, but configures your package manager to enable the“test” channel from our package repository, which includes both stable andpre-releases (beta versions, release-candidates) of Docker. Use this script toget early access to new releases, and to evaluate them in a testing environmentbefore they are released as stable.

To install the latest version of Docker on Linux from the “test” channel, run:

Upgrade Docker after using the convenience script

If you installed Docker using the convenience script, you should upgrade Dockerusing your package manager directly. There is no advantage to re-running theconvenience script, and it can cause issues if it attempts to re-addrepositories which have already been added to the host machine.

Uninstall Docker Engine

  1. Uninstall the Docker Engine, CLI, and Containerd packages:

  2. Images, containers, volumes, or customized configuration files on your hostare not automatically removed. To delete all images, containers, andvolumes:

You must delete any edited configuration files manually.

Next steps

  • Continue to Post-installation steps for Linux.
  • Review the topics in Develop with Docker to learn how to build new applications using Docker.
requirements, apt, installation, ubuntu, install, uninstall, upgrade, update

Estimated reading time: 11 minutes

On this page you build a simple Python web application running on DockerCompose. The application uses the Flask framework and maintains a hit counter inRedis. While the sample uses Python, the concepts demonstrated here should beunderstandable even if you’re not familiar with it.


Make sure you have already installed both Docker Engineand Docker Compose. You don’t need to install Python or Redis, asboth are provided by Docker images.

Step 1: Setup

Define the application dependencies.

  1. Create a directory for the project:

  2. Create a file called in your project directory and paste this in:

    In this example, redis is the hostname of the redis container on theapplication’s network. We use the default port for Redis, 6379.

    Handling transient errors

    Note the way the get_hit_count function is written. This basic retryloop lets us attempt our request multiple times if the redis service isnot available. This is useful at startup while the application comesonline, but also makes our application more resilient if the Redisservice needs to be restarted anytime during the app’s lifetime. In acluster, this also helps handling momentary connection drops betweennodes.

  3. Create another file called requirements.txt in your project directory andpaste this in:

Step 2: Create a Dockerfile

In this step, you write a Dockerfile that builds a Docker image. The imagecontains all the dependencies the Python application requires, including Pythonitself.

In your project directory, create a file named Dockerfile and paste thefollowing:

This tells Docker to:

Get Docker Linux
  • Build an image starting with the Python 3.7 image.
  • Set the working directory to /code.
  • Set environment variables used by the flask command.
  • Install gcc and other dependencies
  • Copy requirements.txt and install the Python dependencies.
  • Add metadata to the image to describe that the container is listening on port 5000
  • Copy the current directory . in the project to the workdir . in the image.
  • Set the default command for the container to flask run.

For more information on how to write Dockerfiles, see theDocker user guideand the Dockerfile reference.

Step 3: Define services in a Compose file

Create a file called docker-compose.yml in your project directory and pastethe following:

This Compose file defines two services: web and redis.

Web service

The web service uses an image that’s built from the Dockerfile in the current directory.It then binds the container and the host machine to the exposed port, 5000. This example service uses the default port for the Flask web server, 5000.

Redis service

The redis service uses a public Redis image pulled from the Docker Hub registry.

Step 4: Build and run your app with Compose

  1. From your project directory, start up your application by running docker-compose up.

    Compose pulls a Redis image, builds an image for your code, and starts theservices you defined. In this case, the code is statically copied into the image at build time.

  2. Enter http://localhost:5000/ in a browser to see the application running.

    If you’re using Docker natively on Linux, Docker Desktop for Mac, or Docker Desktop forWindows, then the web app should now be listening on port 5000 on yourDocker daemon host. Point your web browser to http://localhost:5000 tofind the Hello World message. If this doesn’t resolve, you can also tryhttp://

    If you’re using Docker Machine on a Mac or Windows, use docker-machine ipMACHINE_VM to get the IP address of your Docker host. Then, openhttp://MACHINE_VM_IP:5000 in a browser.

    You should see a message in your browser saying:

  3. Refresh the page.

    The number should increment.

  4. Switch to another terminal window, and type docker image ls to list local images.

    Listing images at this point should return redis and web.

    You can inspect images with docker inspect <tag or id>.

  5. Stop the application, either by running docker-compose downfrom within your project directory in the second terminal, or byhitting CTRL+C in the original terminal where you started the app.

Step 5: Edit the Compose file to add a bind mount

Edit docker-compose.yml in your project directory to add abind mount for the web service:

The new volumes key mounts the project directory (current directory) on thehost to /code inside the container, allowing you to modify the code on thefly, without having to rebuild the image. The environment key sets theFLASK_ENV environment variable, which tells flask run to run in developmentmode and reload the code on change. This mode should only be used in development.

Step 6: Re-build and run the app with Compose

From your project directory, type docker-compose up to build the app with the updated Compose file, and run it.

Check the Hello World message in a web browser again, and refresh to see thecount increment.

Shared folders, volumes, and bind mounts

  • If your project is outside of the Users directory (cd ~), then youneed to share the drive or location of the Dockerfile and volume you are using.If you get runtime errors indicating an application file is not found, a volumemount is denied, or a service cannot start, try enabling file or drive sharing.Volume mounting requires shared drives for projects that live outside ofC:Users (Windows) or /Users (Mac), and is required for any project onDocker Desktop for Windows that uses Linux containers.For more information, see File sharing on Dockerfor Mac, and the general examples on how toManage data in containers.

  • If you are using Oracle VirtualBox on an older Windows OS, you might encounter an issue with shared folders as described in this VB troubleticket. Newer Windows systems meet therequirements for Docker Desktop for Windows and do notneed VirtualBox.

Step 7: Update the application

Because the application code is now mounted into the container using a volume,you can make changes to its code and see the changes instantly, without havingto rebuild the image.

Change the greeting in and save it. For example, change the Hello World!message to Hello from Docker!:

Refresh the app in your browser. The greeting should be updated, and thecounter should still be incrementing.

Step 8: Experiment with some other commands

If you want to run your services in the background, you can pass the -d flag(for “detached” mode) to docker-compose up and use docker-compose ps tosee what is currently running:

The docker-compose run command allows you to run one-off commands for yourservices. For example, to see what environment variables are available to theweb service:

See docker-compose --help to see other available commands. You can also install command completion for the bash and zsh shell, which also shows you available commands.

Get Docker Linux Command

If you started Compose with docker-compose up -d, stopyour services once you’ve finished with them:

You can bring everything down, removing the containers entirely, with the downcommand. Pass --volumes to also remove the data volume used by the Rediscontainer:

At this point, you have seen the basics of how Compose works.

Where to go next

Get Docker Linux
  • Next, try the Sample apps with Compose
  • To learn more about volumes and bind mounts, see Manage data in Docker

Get Docker Linux Online

documentation, docs, docker, compose, orchestration, containers