Docker is an open platform on which you can develop, publish, and run applications. This topic describes how to install and use Docker on an Elastic Compute Service (ECS) instance.
Install Docker
Alibaba Cloud Linux 3
Before you install the latest version of Docker, run the docker -v
command to query the current Docker version. If the command output indicates that the command is unavailable, Docker is not installed. If you installed an earlier version of Docker, you must first uninstall Docker and related components.
Update your package management tool.
sudo dnf -y update
Add an Alibaba Cloud repository to your ECS instance. The repository contains the Docker software package, which allows you to run commands to install and update Docker.
ImportantIf you skip this step, you may fail to install Docker due to network reasons.
If your ECS instance can access the Internet, run the following command:
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
If your ECS instance cannot access the Internet, use the virtual private cloud (VPC) endpoint and run the following commands:
sudo dnf config-manager --add-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 the Docker Community Edition (Docker-CE), the containerd.io container runtime, and the Docker Build and Compose plug-ins.
NoteWhen you use the Docker Compose plug-in, do not enter a hyphen (-) between docker and compose in a command. Sample command:
docker compose version
.sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Start Docker and configure the Docker daemon to start on system startup. This ensures that the Docker service automatically starts every time the system starts.
NoteIf an error occurs when you run the systemctl command, troubleshoot the error. For more information, see What do I do if an error occurs when I run the systemctl command on a Linux instance?
sudo systemctl start docker sudo systemctl enable docker
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.
Alibaba Cloud Linux 2
Before you install the latest version of Docker, run the docker -v
command to query the current Docker version. If the command output indicates that the command is unavailable, Docker is not installed. If you installed an earlier version of Docker, you must first uninstall Docker and related components.
Update your package management tool.
sudo yum -y update
Add an Alibaba Cloud repository to your ECS instance. The repository contains the Docker software package, which allows you to run commands to install and update Docker.
ImportantIf you skip this step, you may fail to install Docker due to network reasons.
If your ECS instance can access the Internet, run the following command:
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
If your ECS instance cannot access the Internet, use the virtual private cloud (VPC) endpoint and run the following commands:
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 the Docker Community Edition (Docker-CE), the containerd.io container runtime, and the Docker Build and Compose plug-ins.
NoteWhen you use the Docker Compose plug-in, do not enter a hyphen (-) between docker and compose in a command. Sample command:
docker compose version
.sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Start Docker and configure the Docker daemon to start on system startup. This ensures that the Docker service automatically starts every time the system starts.
NoteIf an error occurs when you run the systemctl command, troubleshoot the error. For more information, see What do I do if an error occurs when I run the systemctl command on a Linux instance?
sudo systemctl start docker sudo systemctl enable docker
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.
CentOS 7.x
Before you install the latest version of Docker, run the docker -v
command to query the current Docker version. If the command output indicates that the command is unavailable, Docker is not installed. If you installed an earlier version of Docker, you must first uninstall Docker and related components.
Update your package management tool.
sudo yum -y update
Add an Alibaba Cloud repository to your ECS instance. The repository contains the Docker software package, which allows you to run commands to install and update Docker.
ImportantIf you skip this step, you may fail to install Docker due to network reasons.
If your ECS instance can access the Internet, run the following command:
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
If your ECS instance cannot access the Internet, use the virtual private cloud (VPC) endpoint and run the following commands:
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 Docker Community Edition (Docker-CE), the containerd.io container runtime, and the Docker Build and Compose plug-ins.
NoteWhen you use the Docker Compose plug-in, do not enter a hyphen (-) between docker and compose in a command. Sample command:
docker compose version
.sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Start Docker and configure the Docker daemon to start on system startup. This ensures that the Docker service automatically starts every time the system starts.
NoteIf an error occurs when you run the systemctl command, troubleshoot the error. For more information, see What do I do if an error occurs when I run the systemctl command on a Linux instance?
sudo systemctl start docker sudo systemctl enable docker
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.
CentOS 8.x
Before you install the latest version of Docker, run the docker -v
command to query the current Docker version. If the command output indicates that the command is unavailable, Docker is not installed. If you installed an earlier version of Docker, you must first uninstall Docker and related components.
Update your package management tool.
sudo dnf -y update
Add an Alibaba Cloud repository to your ECS instance. The repository contains the Docker software package, which allows you to run commands to install and update Docker.
ImportantIf you skip this step, you may fail to install Docker due to network reasons.
If your ECS instance can access the Internet, run the following command:
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
If your ECS instance cannot access the Internet, use the virtual private cloud (VPC) endpoint and run the following commands:
sudo dnf config-manager --add-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 Docker Community Edition (Docker-CE), the containerd.io container runtime, and the Docker Build and Compose plug-ins.
NoteWhen you use the Docker Compose plug-in, do not enter a hyphen (-) between docker and compose in a command. Sample command:
docker compose version
.sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Start Docker and configure the Docker daemon to start on system startup. This ensures that the Docker service automatically starts every time the system starts.
NoteIf an error occurs when you run the systemctl command, troubleshoot the error. For more information, see What do I do if an error occurs when I run the systemctl command on a Linux instance?
sudo systemctl start docker sudo systemctl enable docker
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.
Ubuntu
Before you install the latest version of Docker, run the docker -v
command to query the current Docker version. If the command output indicates that the command is unavailable, Docker is not installed. If you installed an earlier version of Docker, you must first uninstall Docker and related components.
Update your package management tool.
sudo apt-get update
Add an Alibaba Cloud repository to your ECS instance. The repository contains the Docker software package, which allows you to run commands to install and update Docker.
ImportantIf you skip this step, you may fail to install Docker due to network reasons.
If your ECS instance can access the Internet, run the following command:
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
If your ECS instance cannot access the Internet, use the virtual private cloud (VPC) endpoint and run the following commands:
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 the Docker Community Edition (Docker-CE), the containerd.io container runtime, and the Docker Build and Compose plug-ins.
NoteWhen you use the Docker Compose plug-in, do not enter a hyphen (-) between docker and compose in a command. Sample command:
docker compose version
.sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Start Docker and configure the Docker daemon to start on system startup. This ensures that the Docker service automatically starts every time the system starts.
NoteIf an error occurs when you run the systemctl command, troubleshoot the error. For more information, see What do I do if an error occurs when I run the systemctl command on a Linux instance?
sudo systemctl start docker sudo systemctl enable docker
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.
Debian
Before you install the latest version of Docker, run the docker -v
command to query the current Docker version. If the command output indicates that the command is unavailable, Docker is not installed. If you installed an earlier version of Docker, you must first uninstall Docker and related components.
Update your package management tool.
sudo apt-get update
Add an Alibaba Cloud repository to your ECS instance. The repository contains the Docker software package, which allows you to run commands to install and update Docker.
ImportantIf you skip this step, you may fail to install Docker due to network reasons.
If your ECS instance can access the Internet, run the following command:
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable" sudo apt-get update
If your ECS instance cannot access the Internet, use the virtual private cloud (VPC) endpoint and run the following commands:
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" sudo apt-get update
Install the Docker Community Edition (Docker-CE), the containerd.io container runtime, and the Docker Build and Compose plug-ins.
NoteWhen you use the Docker Compose plug-in, do not enter a hyphen (-) between docker and compose in a command. Sample command:
docker compose version
.sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Start Docker and configure the Docker daemon to start on system startup. This ensures that the Docker service automatically starts every time the system starts.
NoteIf an error occurs when you run the systemctl command, troubleshoot the error. For more information, see What do I do if an error occurs when I run the systemctl command on a Linux instance?
sudo systemctl start docker sudo systemctl enable docker
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.
Fedora
Before you install the latest version of Docker, run the docker -v
command to query the current Docker version. If the command output indicates that the command is unavailable, Docker is not installed. If you installed an earlier version of Docker, you must first uninstall Docker and related components.
Update your package management tool.
sudo dnf -y update
Add an Alibaba Cloud repository to your ECS instance. The repository contains the Docker software package, which allows you to run commands to install and update Docker.
ImportantIf you skip this step, you may fail to install Docker due to network reasons.
If your ECS instance can access the Internet, run the following command:
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/fedora/docker-ce.repo
If your ECS instance cannot access the Internet, use the virtual private cloud (VPC) endpoint and run the following commands:
sudo dnf config-manager --add-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 the Docker Community Edition (Docker-CE), the containerd.io container runtime, and the Docker Build and Compose plug-ins.
NoteWhen you use the Docker Compose plug-in, do not enter a hyphen (-) between docker and compose in a command. Sample command:
docker compose version
.sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Start Docker and configure the Docker daemon to start on system startup. This ensures that the Docker service automatically starts every time the system starts.
NoteIf an error occurs when you run the systemctl command, troubleshoot the error. For more information, see What do I do if an error occurs when I run the systemctl command on a Linux instance?
sudo systemctl start docker sudo systemctl enable docker
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.
Red Hat
Before you install the latest version of Docker, run the docker -v
command to query the current Docker version. If the command output indicates that the command is unavailable, Docker is not installed. If you installed an earlier version of Docker, you must first uninstall Docker and related components.
Update your package management tool.
sudo yum -y update
Add an Alibaba Cloud repository to your ECS instance. The repository contains the Docker software package, which allows you to run commands to install and update Docker.
ImportantIf you skip this step, you may fail to install Docker due to network reasons.
If your ECS instance can access the Internet, run the following command:
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/rhel/docker-ce.repo
If your ECS instance cannot access the Internet, use the virtual private cloud (VPC) endpoint and run the following commands:
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 the Docker Community Edition (Docker-CE), the containerd.io container runtime, and the Docker Build and Compose plug-ins.
NoteWhen you use the Docker Compose plug-in, do not enter a hyphen (-) between docker and compose in a command. Sample command:
docker compose version
.sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Start Docker and configure the Docker daemon to start on system startup. This ensures that the Docker service automatically starts every time the system starts.
NoteIf an error occurs when you run the systemctl command, troubleshoot the error. For more information, see What do I do if an error occurs when I run the systemctl command on a Linux instance?
sudo systemctl start docker sudo systemctl enable docker
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.
Anolis OS
Before you install the latest version of Docker, run the docker -v
command to query the current Docker version. If the command output indicates that the command is unavailable, Docker is not installed. If you installed an earlier version of Docker, you must first uninstall Docker and related components.
Update your package management tool.
sudo yum -y update
Add an Alibaba Cloud repository to your ECS instance. The repository contains the Docker software package, which allows you to run commands to install and update Docker.
ImportantIf you skip this step, you may fail to install Docker due to network reasons.
If your ECS instance can access the Internet, run the following command:
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
If your ECS instance cannot access the Internet, use the virtual private cloud (VPC) endpoint and run the following commands:
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 Docker Community Edition (Docker-CE), the containerd.io container runtime, and the Docker Build and Compose plug-ins.
NoteWhen you use the Docker Compose plug-in, do not enter a hyphen (-) between docker and compose in a command. Sample command:
docker compose version
.sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Start Docker and configure the Docker daemon to start on system startup. This ensures that the Docker service automatically starts every time the system starts.
NoteIf an error occurs when you run the systemctl command, troubleshoot the error. For more information, see What do I do if an error occurs when I run the systemctl command on a Linux instance?
sudo systemctl start docker sudo systemctl enable docker
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.
Create a simple web application image
The following example describes how to create a simple web application image by using an NGINX image as the base image.
Preparations
On your instance that can access the Internet, run the following docker pull
command to obtain the most recent NGINX image:
sudo docker pull nginx:latest
Create an image
Create the
Dockerfile
file. TheDockerfile
file is a special text file that defines how to build a Docker image. In the Dockerfile file, specify a base image for Docker, and specify the software packages to install and settings to configure on the base image.sudo touch Dockerfile
Modify the created
Dockerfile
file by adding content.FROM nginx:latest RUN echo 'Hello World!' > /usr/share/nginx/html/index.html
Use the Dockerfile file to build your image.
sudo docker build . -t hello-world:latest
Create a container based on your new image and name the container
hello-world
.sudo docker run -d -p 80:80 --name hello-world hello-world:latest
Check whether the image runs as expected. Run the
curl http://localhost
command. Ifhello world!
is returned, the image runs as expected.
Use Docker Compose
Docker Compose is an open source container orchestration tool developed by the Docker team to define and run multiple containers. In Docker Compose, you use a YAML file to configure the services of your application, run the docker compose
command to parse the configurations of the YAML file, and then create and start all services based on the configurations. Docker Compose helps reduce O&M costs and improve deployment efficiency.
For more information about Docker Compose, see Docker Compose.
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
, in which 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.
If you use standalone Docker Compose, enter a hyphen (-) between docker and compose in a command. Sample command:
docker-compose up
.If you use the Docker Compose plug-in, do not enter a hyphen (-) between docker and compose in a command. Sample command:
docker compose up
.
Docker Compose plug-in
Install the Docker Compose plug-in.
NoteIf an issue occurs when you install the Docker Compose plug-in, you may need to add an Alibaba Cloud repository to your ECS instance. For information about how to add an Alibaba Cloud repository, see Add an Alibaba Cloud repository to your ECS instance.
Alibaba Cloud Linux 3, CentOS 8.x, or Fedora:
sudo dnf -y install docker-compose-plugin
Ubuntu or Debian:
sudo apt-get -y install docker-compose-plugin
Alibaba Cloud Linux 2, CentOS 7.x, Red Hat, or 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
Expected output:
Docker Compose version vN.N.N
, in which vN.N.N indicates the version of Docker Compose.
Standalone Docker Compose
Download and install standalone Docker Compose.
NoteWhen you try to access GitHub, you might encounter problems such as timeouts or connection failures due to network issues. To resolve these problems, try reconnecting several 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
Query the version of Docker Compose to check whether standalone Docker Compose is installed.
NoteIf an issue occurs when you run the
docker-compose
command after standalone Docker Compose is installed, your system environment variables may not include the installation path of standalone Docker Compose. To resolve the issue, you can create a symbolic link to the/usr/bin
directory or to another directory included in your environment variables.sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo docker-compose version
Use Docker Compose to deploy applications
This section describes how to use Docker Compose to deploy WordPress.
Run the following command to create and edit the
docker-compose.yaml
file:sudo vim docker-compose.yaml
Press the
I
key to enter Insert mode and add the following content to the file to define WordPress and MySQL services:version: '3.1' services: wordpress: image: wordpress restart: always ports: - "80:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: 123456 WORDPRESS_DB_NAME: wordpress volumes: - wordpress:/var/www/html db: image: mysql:5.7 restart: always ports: - "3306:3306" environment: MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: 123456 MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: - db:/var/lib/mysql volumes: wordpress: db:
Press the
Esc
key to exit Insert mode, enter:wq
, and then press the Enter key to save and close the file.Run the following command to start the services:
sudo env "PATH=$PATH" docker compose up -d
Enter an address in the
http://<Public IP address of the ECS instance>
format in the address bar of your browser to go to the WordPress configuration page. On the page, you can configure the parameters as prompted to access WordPress.NoteYou 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 on a Linux ECS instance?
What do I do if an error occurs when I run the dnf install docker-ce command on a Linux ECS instance?
References
For information about how to use Docker, see the Docker documentation.
Alibaba Cloud Container Registry releases the artifact center to provide developers with secure and trusted base container images from the Alibaba Cloud website and OpenAnolis community free of charge. For more information, see Overview of the artifact center.
You can use the P2P acceleration feature of Container Registry Enterprise Edition to accelerate image pulling. For more information, see Use the P2P acceleration feature on hosts where Docker is installed.
You can configure the CLI tool in Docker to manage your Alibaba Cloud resources. For more information, see Run Alibaba Cloud CLI in a Docker container.