All Products
Search
Document Center

Elastic Compute Service:Install Docker

Last Updated:Feb 06, 2025

This topic describes how to install and use Docker and Docker Compose on an Elastic Compute Service (ECS) instance.

Install Docker

Alibaba Cloud Linux 3

Before you install the latest version of Docker, uninstall the current version of Docker and related components to prevent potential installation conflicts and compatibility issues.

Uninstall an earlier version of Docker

  1. Run the following commands to uninstall the earlier version of Docker and related software packages and remove the Docker-related repositories. You can specify the packages of all Docker-related programs that you want to uninstall in the command that is used to uninstall Docker and related software packages.

    Note

    If a message appears indicating that specific software packages that you want to remove are not installed, you did not install the software packages.

    # Remove the Docker-related repositories.
    sudo rm -f /etc/yum.repos.d/docker*.repo
    # Uninstall Docker and related software packages.
    sudo dnf -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Manually delete Docker-related data. Docker-related data is stored in the /var/lib/docker/ directory. When Docker is uninstalled, information about images, containers, volumes, and networks is not automatically deleted. If you do not require specific Docker-related data, manually delete the data.

  1. Run the following commands to install Docker Community Edition (Docker-CE).

    Note

    When you use the Docker Compose plug-in, do not include a hyphen (-) between docker and compose in a command. Sample command: docker compose version.

    # Add a Docker repository.
    sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
    sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
    # Install the Dandified YUM (DNF) repository plug-in that is exclusive to Alibaba Cloud Linux 3.
    sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
    # Install Docker-CE, the containerd.io container runtime, and the Docker Build and Compose plug-ins.
    sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    # Start Docker.
    sudo systemctl start docker
    # Configure the Docker daemon to start on system startup.
    sudo systemctl enable docker
  2. Query the Docker version to check whether Docker is installed.

    sudo docker -v

    If the following command output is returned, Docker is installed on the ECS instance.image

Alibaba Cloud Linux 2

Before you install the latest version of Docker, uninstall the current version of Docker and related components to prevent potential installation conflicts and compatibility issues.

Uninstall an earlier version of Docker

  1. Run the following commands to uninstall the earlier version of Docker and related software packages and remove the Docker-related repositories. You can specify the packages of all Docker-related programs that you want to uninstall in the command that is used to uninstall Docker and related software packages.

    Note

    If a message appears indicating that specific software packages that you want to remove are not installed, you did not install the software packages.

    # Remove the Docker-related repositories.
    sudo rm -f /etc/yum.repos.d/docker*.repo
    # Uninstall the earlier version of Docker and related software packages.
    sudo yum -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Manually delete Docker-related data. Docker-related data is stored in the /var/lib/docker/ directory. When Docker is uninstalled, information about images, containers, volumes, and networks is not automatically deleted. If you do not require specific Docker-related data, manually delete the data.

  1. Run the following commands to install Docker Community Edition (Docker-CE).

    Note

    When you use the Docker Compose plug-in, do not include a hyphen (-) between docker and compose in a command. Sample command: docker compose version.

    # Add a Docker repository.
    sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
    sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
    # Install the Yellowdog Updater Modified (YUM) repository plug-in that is exclusive to Alibaba Cloud Linux 2.
    sudo yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
    # Install Docker-CE, the containerd.io container runtime, and the Docker Build and Compose plug-ins.
    sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    # Start Docker.
    sudo systemctl start docker
    # Configure the Docker daemon to start on system startup.
    sudo systemctl enable docker
  2. Query the Docker version to check whether Docker is installed.

    sudo docker -v

    If the following command output is returned, Docker is installed on the ECS instance.image

CentOS 7.x

Before you install the latest version of Docker, uninstall the current version of Docker and related components to prevent potential installation conflicts and compatibility issues.

Uninstall an earlier version of Docker

  1. Run the following commands to uninstall the earlier version of Docker and related software packages and remove the Docker-related repositories. You can specify the packages of all Docker-related programs that you want to uninstall in the command that is used to uninstall Docker and related software packages.

    Note

    If a message appears indicating that specific software packages that you want to remove are not installed, you did not install the software packages.

    # Remove the Docker-related repositories.
    sudo rm -f /etc/yum.repos.d/docker*.repo
    # Uninstall the earlier version of Docker and related software packages.
    sudo yum -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Manually delete Docker-related data. Docker-related data is stored in the /var/lib/docker/ directory. When Docker is uninstalled, information about images, containers, volumes, and networks is not automatically deleted. If you do not require specific Docker-related data, manually delete the data.

  1. Run the following commands to install Docker Community Edition (Docker-CE).

    Note

    When you use the Docker Compose plug-in, do not include a hyphen (-) between docker and compose in a command. Sample command: docker compose version.

    # Add a Docker repository.
    sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
    sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
    # Install Docker-CE, the containerd.io container runtime, and the Docker Build and Compose plug-ins.
    sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    # Start Docker.
    sudo systemctl start docker
    # Configure the Docker daemon to start on system startup.
    sudo systemctl enable docker
  2. Query the Docker version to check whether Docker is installed.

    sudo docker -v

    If the following command output is returned, Docker is installed on the ECS instance.image

CentOS 8.x

Before you install the latest version of Docker, uninstall the current version of Docker and related components to prevent potential installation conflicts and compatibility issues.

Uninstall an earlier version of Docker

  1. Run the following commands to uninstall the earlier version of Docker and related software packages and remove the Docker-related repositories. You can specify the packages of all Docker-related programs that you want to uninstall in the command that is used to uninstall Docker and related software packages.

    Note

    If a message appears indicating that specific software packages that you want to remove are not installed, you did not install the software packages.

    # Remove the Docker-related repositories.
    sudo rm -f /etc/yum.repos.d/docker*.repo
    # Uninstall Docker and related software packages.
    sudo dnf -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Manually delete Docker-related data. Docker-related data is stored in the /var/lib/docker/ directory. When Docker is uninstalled, information about images, containers, volumes, and networks is not automatically deleted. If you do not require specific Docker-related data, manually delete the data.

  1. Run the following commands to install Docker Community Edition (Docker-CE).

    Note

    When you use the Docker Compose plug-in, do not include a hyphen (-) between docker and compose in a command. Sample command: docker compose version.

    # Add a Docker repository.
    sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
    sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
    # Install Docker-CE, the containerd.io container runtime, and the Docker Build and Compose plug-ins.
    sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    # Start Docker.
    sudo systemctl start docker
    # Configure the Docker daemon to start on system startup.
    sudo systemctl enable docker
  2. Query the Docker version to check whether Docker is installed.

    sudo docker -v

    If the following command output is returned, Docker is installed on the ECS instance.image

Ubuntu

Before you install the latest version of Docker, uninstall the current version of Docker and related components to prevent potential installation conflicts and compatibility issues.

Uninstall an earlier version of Docker

  1. Run the following commands to uninstall the earlier version of Docker and related software packages and remove the Docker-related repositories. You can specify the packages of all Docker-related programs that you want to uninstall in the command that is used to uninstall Docker and related software packages.

    Note

    If a message appears indicating that specific software packages that you want to remove are not installed, you did not install the software packages.

    # Remove the Docker-related repositories.
    sudo rm -f /etc/apt/sources.list.d/*docker*.list
    # Uninstall Docker and related software packages.
    for pkg in docker.io docker-buildx-plugin docker-ce-cli docker-ce-rootless-extras docker-compose-plugin docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove -y $pkg; done
  2. Manually delete Docker-related data. Docker-related data is stored in the /var/lib/docker/ directory. When Docker is uninstalled, information about images, containers, volumes, and networks is not automatically deleted. If you do not require specific Docker-related data, manually delete the data.

  1. Run the following commands to install Docker Community Edition (Docker-CE).

    Note

    When you use the Docker Compose plug-in, do not include a hyphen (-) between docker and compose in a command. Sample command: docker compose version.

    # Update the package manager.
    sudo apt-get update
    # Add a Docker repository.
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    # Install Docker-CE, the containerd.io container runtime, and the Docker Build and Compose plug-ins.
    sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    # Start Docker.
    sudo systemctl start docker
    # Configure the Docker daemon to start on system startup.
    sudo systemctl enable docker
  2. Query the Docker version to check whether Docker is installed.

    sudo docker -v

    If the following command output is returned, Docker is installed on the ECS instance.image

Debian

Before you install the latest version of Docker, uninstall the current version of Docker and related components to prevent potential installation conflicts and compatibility issues.

Uninstall an earlier version of Docker

  1. Run the following commands to uninstall the earlier version of Docker and related software packages and remove the Docker-related repositories. You can specify the packages of all Docker-related programs that you want to uninstall in the command that is used to uninstall Docker and related software packages.

    Note

    If a message appears indicating that specific software packages that you want to remove are not installed, you did not install the software packages.

    # Remove the Docker-related repositories.
    sudo rm -f /etc/apt/sources.list.d/*docker*.list
    # Uninstall Docker and related software packages.
    for pkg in docker.io docker-buildx-plugin docker-ce-cli docker-ce-rootless-extras docker-compose-plugin docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove -y $pkg; done
  2. Manually delete Docker-related data. Docker-related data is stored in the /var/lib/docker/ directory. When Docker is uninstalled, information about images, containers, volumes, and networks is not automatically deleted. If you do not require specific Docker-related data, manually delete the data.

  1. Run the following commands to install Docker Community Edition (Docker-CE).

    Note

    When you use the Docker Compose plug-in, do not include a hyphen (-) between docker and compose in a command. Sample command: docker compose version.

    # Update the package manager.
    sudo apt-get update
    # Add a Docker repository.
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian/gpg | sudo apt-key add -
    sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian $(lsb_release -cs) stable"
    # Install Docker-CE, the containerd.io container runtime, and the Docker Build and Compose plug-ins.
    sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    # Start Docker.
    sudo systemctl start docker
    # Configure the Docker daemon to start on system startup.
    sudo systemctl enable docker
  2. Query the Docker version to check whether Docker is installed.

    sudo docker -v

    If the following command output is returned, Docker is installed on the ECS instance.image

Fedora

Before you install the latest version of Docker, uninstall the current version of Docker and related components to prevent potential installation conflicts and compatibility issues.

Uninstall an earlier version of Docker

  1. Run the following commands to uninstall the earlier version of Docker and related software packages and remove the Docker-related repositories. You can specify the packages of all Docker-related programs that you want to uninstall in the command that is used to uninstall Docker and related software packages.

    Note

    If a message appears indicating that specific software packages that you want to remove are not installed, you did not install the software packages.

    # Remove the Docker-related repositories.
    sudo rm -f /etc/yum.repos.d/docker*.repo
    # Uninstall Docker and related software packages.
    sudo dnf -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Manually delete Docker-related data. Docker-related data is stored in the /var/lib/docker/ directory. When Docker is uninstalled, information about images, containers, volumes, and networks is not automatically deleted. If you do not require specific Docker-related data, manually delete the data.

  1. Run the following commands to install Docker Community Edition (Docker-CE).

    Note

    When you use the Docker Compose plug-in, do not include a hyphen (-) between docker and compose in a command. Sample command: docker compose version.

    # Add a Docker repository.
    sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/fedora/docker-ce.repo
    sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
    # Install Docker-CE, the containerd.io container runtime, and the Docker Build and Compose plug-ins.
    sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    # Start Docker.
    sudo systemctl start docker
    # Configure the Docker daemon to start on system startup.
    sudo systemctl enable docker
  2. Query the Docker version to check whether Docker is installed.

    sudo docker -v

    If the following command output is returned, Docker is installed on the ECS instance.image

Red Hat

Before you install the latest version of Docker, uninstall the current version of Docker and related components to prevent potential installation conflicts and compatibility issues.

Uninstall an earlier version of Docker

  1. Run the following commands to uninstall the earlier version of Docker and related software packages and remove the Docker-related repositories. You can specify the packages of all Docker-related programs that you want to uninstall in the command that is used to uninstall Docker and related software packages.

    Note

    If a message appears indicating that specific software packages that you want to remove are not installed, you did not install the software packages.

    # Remove the Docker-related repositories.
    sudo rm -f /etc/yum.repos.d/docker*.repo
    # Uninstall the earlier version of Docker and related software packages.
    sudo yum -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Manually delete Docker-related data. Docker-related data is stored in the /var/lib/docker/ directory. When Docker is uninstalled, information about images, containers, volumes, and networks is not automatically deleted. If you do not require specific Docker-related data, manually delete the data.

  1. Run the following commands to install Docker Community Edition (Docker-CE).

    Note

    When you use the Docker Compose plug-in, do not include a hyphen (-) between docker and compose in a command. Sample command: docker compose version.

    # Add a Docker repository.
    sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/rhel/docker-ce.repo
    sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
    # Install Docker-CE, the containerd.io container runtime, and the Docker Build and Compose plug-ins.
    sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    # Start Docker.
    sudo systemctl start docker
    # Configure the Docker daemon to start on system startup.
    sudo systemctl enable docker
  2. Query the Docker version to check whether Docker is installed.

    sudo docker -v

    If the following command output is returned, Docker is installed on the ECS instance.image

Anolis OS

Before you install the latest version of Docker, uninstall the current version of Docker and related components to prevent potential installation conflicts and compatibility issues.

Uninstall an earlier version of Docker

  1. Run the following commands to uninstall the earlier version of Docker and related software packages and remove the Docker-related repositories. You can specify the packages of all Docker-related programs that you want to uninstall in the command that is used to uninstall Docker and related software packages.

    Note

    If a message appears indicating that specific software packages that you want to remove are not installed, you did not install the software packages.

    # Remove the Docker-related repositories.
    sudo rm -f /etc/yum.repos.d/docker*.repo
    # Uninstall the earlier version of Docker and related software packages.
    sudo yum -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Manually delete Docker-related data. Docker-related data is stored in the /var/lib/docker/ directory. When Docker is uninstalled, information about images, containers, volumes, and networks is not automatically deleted. If you do not require specific Docker-related data, manually delete the data.

  1. Run the following commands to install Docker Community Edition (Docker-CE).

    Note

    When you use the Docker Compose plug-in, do not include a hyphen (-) between docker and compose in a command. Sample command: docker compose version.

    # Add a Docker repository.
    sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
    sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
    # Install Docker-CE, the containerd.io container runtime, and the Docker Build and Compose plug-ins.
    sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    # Start Docker.
    sudo systemctl start docker
    # Configure the Docker daemon to start on system startup.
    sudo systemctl enable docker
  2. Query the Docker version to check whether Docker is installed.

    sudo docker -v

    If the following command output is returned, Docker is installed on the ECS instance.image

Create a simple web application image

The following section describes how to create a simple web application image based on an NGINX image.

  1. Create a web application image.

    # Pull the NGINX image.
    sudo docker pull nginx:latest
    # Create a Dockerfile to specify NGINX as the base image and create an index.html file in the root directory of the web server. The index.html file is used to display Hello World!. 
    sudo tee Dockerfile <<-'EOF'
    FROM nginx:latest
    RUN echo 'Hello World!' > /usr/share/nginx/html/index.html
    EOF
    # Create a web application image named hello-world.
    sudo docker build . -t hello-world:latest
  2. Start the container created based on the web application image and name the container hello-world.

    sudo docker run -d -p 80:80 --name hello-world hello-world:latest
  3. Run the curl http://localhost command to check whether the web application image displays Hello World! as expected.

Install Docker Compose

If you perform the operations described in this topic to install Docker on an ECS instance, the Docker Compose plug-in is automatically installed on the instance. Run the following command to query the version of Docker Compose:

sudo docker compose version

Expected output: Docker Compose version vN.N.N. vN.N.N indicates the version of Docker Compose.

If the Docker Compose plug-in is not installed on the ECS instance or you want to use standalone Docker Compose, perform the following steps.

Important
  • If you use standalone Docker Compose, include a hyphen (-) between docker and compose in a command. Sample command: docker-compose up.

  • If you use the Docker Compose plug-in, do not include a hyphen (-) between docker and compose in a command. Sample command: docker compose up.

Docker Compose plug-in

Alibaba Cloud Linux 3, CentOS 8.x, and Fedora

sudo dnf -y install docker-compose-plugin

Ubuntu and Debian

sudo apt-get -y install docker-compose-plugin

Alibaba Cloud Linux 2, CentOS 7.x, Red Hat, and Anolis OS

sudo yum -y install docker-compose-plugin

Query the version of Docker Compose to check whether the Docker Compose plug-in is installed.

sudo docker compose version

Standalone Docker Compose

  1. Download and install standalone Docker Compose.

    Note

    When you access GitHub, exceptions may occur, such as access timeout or connection failures, due to network issues. To resolve the exceptions, try to reconnect multiple times.

    curl -SL https://github.com/docker/compose/releases/download/v2.30.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
    # Grant execute permissions on the standalone binary file in the path in which you want to install standalone Docker Compose.
    sudo chmod +x /usr/local/bin/docker-compose
    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  2. Query the version of Docker Compose to check whether standalone Docker Compose is installed.

    sudo docker-compose version

Use Docker Compose to deploy an application

The following section describes how to create a web application based on a WordPress image.

  1. Create a Docker Compose orchestration file and start the WordPress service.

    # Create a Docker Compose orchestration file and add MySQL and WordPress to the file.
    sudo tee docker-compose.yaml <<-'EOF'
    version: '3.1'
    
    services:
      wordpress:
        image: wordpress
        restart: always
        ports:
          - "80:80"
        environment:
          # The address of the database.
          WORDPRESS_DB_HOST: db
          # The username that is used to log on to the database.
          WORDPRESS_DB_USER: wordpress
          # The password that is used to log on to the database.
          WORDPRESS_DB_PASSWORD: 123456
          # The name of the database.
          WORDPRESS_DB_NAME: wordpress
        volumes:
          - wordpress:/var/www/html
    
      db:
        image: mysql:5.7
        restart: always
        ports:
          - "3306:3306"
        environment:
          # The name of the database.
          MYSQL_DATABASE: wordpress
          # The username that is used to log on to the database.
          MYSQL_USER: wordpress
          # The password that is used to log on to the database.
          MYSQL_PASSWORD: 123456
          # The password of the root user of the database.
          MYSQL_RANDOM_ROOT_PASSWORD: '1'
        volumes:
          - db:/var/lib/mysql
    
    volumes:
      wordpress:
      db:
    EOF
    # Start the service container. 
    sudo env "PATH=$PATH" docker compose up -d
  2. Enter an address in the http://<Public IP address of the ECS instance> format in the address bar of your browser to access WordPress.

    Note

    You must open port 80 in a security group to which the ECS instance belongs. For information about how to open a port in a security group, see Add a security group rule.

FAQ

What do I do if an error occurs when I run the dnf config-manager command?

  • Problem description: When you run the dnf config-manager command on a Linux ECS instance, the following error message appears:

    /usr/lib/python3/dist-packages/dnf/const.py:22: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives.
  • Cause: The DNF version is outdated.

  • Solution: Run the sudo dnf update dnf command to update the DNF package to the latest version and re-install Docker.

What do I do if an error occurs when I run the dnf install docker-ce command?

  • Problem description: When you run the dnf -y install docker-ce command on a Linux ECS instance, the following error message appears:

    (8-9/12): docker-ce-24.0.7-1.el8.x86_64.rpm 38% [================- ] 8.2 MB/s | 38 MB 00:07 ETA
    The downloaded packages were saved in cache until the next successful transaction.
    You can remove cached packages by executing 'dnf clean packages'.
    Error: Error downloading packages:
    containerd.io-1.6.26-3.1.el8.x86_64: Cannot download, all mirrors were already tried without success.
  • Cause: The installation package in the cache is outdated.

  • Solution: Run the sudo dnf clean packages command to clear the installation package in the cache and re-install Docker.

  • Problem description: When you run the dnf -y install docker-ce command on a Linux ECS instance, the following error message appears:

    CentOS- Base                                                                                                                         0.0  B/s |   0  B     00:30    
    Errors during downloading metadata for repository 'base':
      - Curl error (6): Couldn't resolve host name for http://mirror.centos.org/os/BaseOS/x86_64/os/repodata/repomd.xml [Could not resolve host: mirror.aliyuncs.com]
      - Curl error (28): Timeout was reached for http://mirror.centos.org/os/BaseOS/x86_64/os/repodata/repomd.xml [Connection timed out after 30000 milliseconds]
      - Curl error (6): Couldn't resolve host name for http://mirror.centos.org/os/BaseOS/x86_64/os/repodata/repomd.xml [Could not resolve host: mirror.cloud.aliyuncs.com]
    Error: Failed to download metadata for repo 'base': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
  • Cause: An expired CentOS 8 repository is used.

  • Solution: Replace the expired CentOS 8 repository with an available repository provided by Alibaba Cloud by performing the following steps:

    # Back up the expired repository. 
    sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    # Download the CentOS-Base.repo file provided by Alibaba Cloud to the /etc/yum.repos.d/ directory. 
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.aliyuncs.com/repo/Centos-vault-8.5.2111.repo
    # Replace the repository addresses in the Alibaba Cloud repository with repository addresses that are accessible to the ECS instance. 
    sudo sed -i 's/mirrors.cloud.aliyuncs.com/url_tmp/g' /etc/yum.repos.d/CentOS-Base.repo && sudo sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/CentOS-Base.repo && sudo sed -i 's/url_tmp/mirrors.aliyun.com/g' /etc/yum.repos.d/CentOS-Base.repo
    # Clear the existing installation package in the cache and generate a new installation package in the cache based on the repository that you specified. 
    sudo yum clean all && sudo yum makecache

    After you perform the preceding steps, re-install Docker.

References