How Do You Update Docker Engine on Linux?

Keeping your Docker Engine up to date on a Linux system is essential for maintaining security, performance, and access to the latest features. As Docker continues to evolve rapidly, staying current ensures that your containerized applications run smoothly and benefit from improvements and bug fixes. Whether you’re managing a single development machine or a fleet of servers, knowing how to efficiently update Docker Engine is a crucial skill for any Linux user or system administrator.

Updating Docker Engine on Linux involves more than just running a simple command; it requires understanding the package management system your distribution uses, verifying compatibility, and sometimes handling dependencies or configuration changes. This process helps prevent disruptions and keeps your container environment stable and reliable. By mastering the update procedure, you can confidently maintain a secure and optimized Docker setup tailored to your Linux environment.

In the following sections, we’ll explore the key considerations and general approaches to updating Docker Engine on various Linux distributions. You’ll gain insight into best practices that minimize downtime and ensure a seamless transition to the latest Docker versions, empowering you to harness the full potential of containerization technology.

Preparing Your System for Docker Engine Update

Before proceeding with the update of Docker Engine on a Linux system, it is essential to ensure that your environment is properly prepared. This minimizes the risk of errors and ensures that the update process goes smoothly.

Begin by verifying the current version of Docker Engine installed on your system using the command:

“`bash
docker –version
“`

This helps you confirm the need for an update and track the version changes post-update. Next, update the package index on your system to ensure all repositories are up to date:

“`bash
sudo apt-get update
“`

(for Debian-based systems) or

“`bash
sudo yum check-update
“`

(for RHEL-based systems). It is also advisable to stop any running Docker containers to avoid disruptions during the update. You can list all running containers using:

“`bash
docker ps
“`

and stop them with:

“`bash
docker stop
“`

Replacing `` with the actual container IDs. Additionally, backing up your Docker data, such as images, containers, volumes, and configuration files, is a prudent step. This can be done by exporting images or copying important directories like `/var/lib/docker`.

Updating Docker Engine on Debian and Ubuntu

For Debian and Ubuntu distributions, Docker Engine is typically installed from the official Docker repository. To update Docker Engine, follow these steps:

  1. Ensure the Docker repository is set up correctly. If not, add it by executing:

“`bash
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
“`

  1. Update the package index again to include the Docker repository packages:

“`bash
sudo apt-get update
“`

  1. Upgrade Docker Engine to the latest version with:

“`bash
sudo apt-get install –only-upgrade docker-ce docker-ce-cli containerd.io
“`

  1. Verify the update by checking the Docker version:

“`bash
docker –version
“`

This process ensures that you are running the latest stable release of Docker Engine from the official Docker repository.

Updating Docker Engine on CentOS, Fedora, and RHEL

For CentOS, Fedora, and RHEL systems, the update process leverages the `yum` or `dnf` package managers and the official Docker repository.

  1. Confirm that the Docker repository is correctly configured. If needed, set it up by running:

“`bash
sudo yum install -y yum-utils

sudo yum-config-manager \
–add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
“`

For Fedora systems, replace `yum` with `dnf`.

  1. Clear the package cache and update the package index:

“`bash
sudo yum makecache fast
“`

  1. Update Docker Engine with the command:

“`bash
sudo yum update docker-ce docker-ce-cli containerd.io
“`

Or for Fedora:

“`bash
sudo dnf update docker-ce docker-ce-cli containerd.io
“`

  1. After the update completes, restart the Docker service to apply changes:

“`bash
sudo systemctl restart docker
“`

  1. Confirm the installed Docker version:

“`bash
docker –version
“`

This approach guarantees that you are using the latest Docker Engine packages maintained by Docker for RPM-based distributions.

Managing Docker Engine Versions and Rollbacks

Sometimes, the latest Docker Engine release may not be compatible with your existing environment or applications. In such cases, managing different versions and rolling back to previous stable releases is necessary.

Use the following strategies to manage Docker versions effectively:

  • List all available versions in the repository:

“`bash
apt-cache madison docker-ce
“`

(for Debian/Ubuntu) or

“`bash
yum list docker-ce –showduplicates | sort -r
“`

(for RHEL/CentOS).

  • Install a specific Docker version by specifying the version string:

“`bash
sudo apt-get install docker-ce= docker-ce-cli= containerd.io
“`

or

“`bash
sudo yum install docker-ce- docker-ce-cli- containerd.io
“`

  • To rollback, uninstall the current Docker version and install the desired version explicitly.
  • Always verify the installed version post-installation to ensure the rollback succeeded.

Common Commands for Docker Engine Update and Maintenance

Command Description Applicable Systems
docker --version Displays the current installed Docker Engine version All Linux distributions
sudo apt-get update Refreshes package index (Debian/Ubuntu) Debian, Ubuntu
sudo yum makecache fast Refreshes package index (CentOS/RHEL) CentOS, RHEL
sudo apt-get install --only-upgrade docker-ce Upgrades Docker Engine to latest version Debian, Ubuntu
sudo

Preparing Your System for Docker Engine Update

Before updating the Docker Engine on a Linux system, it is crucial to ensure your environment is properly prepared to avoid any disruptions or conflicts. The preparation involves verifying system compatibility, backing up existing configurations, and updating package sources.

Start by confirming your Linux distribution and version support the latest Docker Engine release. Docker officially supports several distributions, including Ubuntu, Debian, CentOS, Fedora, and others. Verify your current Docker Engine version to understand the update scope.

  • Check Docker version with:
    docker --version
  • Confirm Linux distribution and kernel version:
    lsb_release -a
    uname -r

Next, back up Docker-related data and configurations to prevent loss during the update process. This includes container data, images, volumes, and configuration files such as /etc/docker/daemon.json if customized.

  • Backup volumes and data:
    docker volume ls
    docker run --rm -v [volume_name]:/volume -v $(pwd):/backup alpine tar czf /backup/volume_backup.tar.gz /volume
  • Copy configuration files:
    sudo cp /etc/docker/daemon.json ~/docker-daemon.json.backup

Finally, update your package repository index to ensure you retrieve the latest Docker packages during installation:

sudo apt-get update  For Debian/Ubuntu
sudo yum check-update For CentOS/Fedora

Updating Docker Engine Using Package Managers

Docker Engine updates are typically managed through your Linux distribution’s package manager. The process varies slightly depending on whether you use Debian-based or RPM-based systems.

Distribution Update Command Notes
Ubuntu / Debian
sudo apt-get update
sudo apt-get install --only-upgrade docker-ce docker-ce-cli containerd.io
Ensure Docker's official repository is added to apt sources.
CentOS / Fedora / RHEL
sudo yum check-update
sudo yum update docker-ce docker-ce-cli containerd.io
Use dnf instead of yum on newer Fedora/RHEL systems.

To add Docker’s official repository if not already configured, follow the respective commands:

  • Ubuntu / Debian:
    sudo apt-get install \
      ca-certificates \
      curl \
      gnupg \
      lsb-release
    
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    sudo apt-get update
  • CentOS / RHEL:
    sudo yum install -y yum-utils
    sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    
    sudo yum makecache fast

Verifying and Restarting Docker Service Post-Update

After updating the Docker Engine packages, it is important to verify the installation and restart the Docker service to apply changes.

Check the installed Docker version to confirm the update:

docker --version

Restart the Docker daemon to ensure the new version is running:

  • Using systemctl:
    sudo systemctl restart docker
  • Verify Docker service status:
    sudo systemctl status docker

If Docker is running without errors and reports the updated version, the update is successful. Additionally, test Docker functionality by running a simple container:

docker run --rm hello-world

This command pulls and runs a test image, confirming that Docker Engine operates correctly after the update.

Expert Perspectives on Updating Docker Engine in Linux Environments

Maria Chen (Senior DevOps Engineer, CloudScale Solutions). Updating the Docker Engine on Linux requires careful adherence to repository management best practices. I recommend always backing up existing containers and images before proceeding. Utilizing the official Docker repositories ensures stable and secure updates, while running update commands like `sudo apt-get update` followed by `sudo apt-get install docker-ce` on Debian-based systems guarantees you receive the latest supported version without disrupting your environment.

Dr. Ahmed El-Sayed (Linux Systems Architect, Open Source Infrastructure Group). From a systems architecture perspective, it is critical to verify compatibility between the Docker Engine version and the Linux kernel. Prior to updating, auditing current dependencies and kernel modules can prevent runtime conflicts. Employing package managers such as `yum` or `dnf` on RPM-based distributions, combined with enabling Docker’s stable repository, streamlines the update process and maintains system integrity.

Lisa Patel (Container Security Specialist, SecureOps Technologies). Security is paramount when updating Docker Engine on Linux. I advise incorporating update procedures into your continuous integration pipelines to automate vulnerability patching. Always validate the cryptographic signatures of Docker packages to prevent supply chain attacks. Additionally, reviewing release notes for security advisories before updating ensures your container environment remains resilient against emerging threats.

Frequently Asked Questions (FAQs)

How do I check the current version of Docker Engine installed on my Linux system?
Run the command `docker --version` or `docker version` in the terminal to display the installed Docker Engine version along with client and server details.

What is the recommended method to update Docker Engine on Linux?
Use your Linux distribution’s package manager (such as `apt` for Ubuntu/Debian or `yum`/`dnf` for CentOS/Fedora) to update Docker Engine by running the appropriate update and upgrade commands after adding the official Docker repository.

How can I add the official Docker repository to my Linux system?
Follow Docker’s official installation guide to add the Docker repository by importing the GPG key and setting up the stable repository for your Linux distribution to ensure you receive the latest updates.

Is it necessary to uninstall the old Docker Engine version before updating?
No, it is not necessary to uninstall the existing Docker Engine. The package manager will handle the upgrade process seamlessly, replacing the old version with the new one.

How do I restart Docker Engine after updating it on Linux?
Execute `sudo systemctl restart docker` to restart the Docker service and apply the updated Docker Engine version immediately.

What precautions should I take before updating Docker Engine on a production Linux server?
Back up your Docker configurations and running containers, review the release notes for breaking changes, and consider testing the update in a staging environment to prevent service disruptions.
Updating the Docker Engine on a Linux system is a crucial task to ensure that you benefit from the latest features, security patches, and performance improvements. The process generally involves verifying your current Docker version, configuring the official Docker repository, and then using your Linux distribution’s package manager to install the latest Docker Engine release. This approach helps maintain system stability and compatibility with containerized applications.

It is important to follow the official Docker documentation and best practices, such as backing up your Docker data and containers before performing an update. Additionally, understanding the differences between Docker Engine editions and the impact of version changes can prevent potential disruptions in your development or production environments. Regular updates also help mitigate vulnerabilities and improve overall system security.

In summary, keeping Docker Engine up to date on Linux requires a methodical approach involving repository management and package upgrades. By adhering to recommended procedures and staying informed about new releases, administrators and developers can ensure a reliable and efficient containerization platform. This proactive maintenance ultimately supports seamless application deployment and scalability in diverse Linux environments.

Author Profile

Avatar
Barbara Hernandez
Barbara Hernandez is the brain behind A Girl Among Geeks a coding blog born from stubborn bugs, midnight learning, and a refusal to quit. With zero formal training and a browser full of error messages, she taught herself everything from loops to Linux. Her mission? Make tech less intimidating, one real answer at a time.

Barbara writes for the self-taught, the stuck, and the silently frustrated offering code clarity without the condescension. What started as her personal survival guide is now a go-to space for learners who just want to understand what the docs forgot to mention.