为不同Linux发行版安装Docker与Docker Compose。可将应用及依赖打包成可移植容器,实现标准化部署并简化多服务管理。
安装Docker
快速安装
可使用Terraform一键运行。这支持在现有实例上安装Docker,或新建一个预装Docker的实例。
新建实例:设置参数
create_instance = true
,依次单击 。选择一个已有实例:设置参数
create_instance = false
和instance_id
,依次单击 。
命令行安装
Alibaba Cloud Linux 3
安装新版Docker前,卸载所有已安装的Docker组件。可以避免潜在的冲突和兼容性问题。
安装Docker社区版本。
非阿里云服务器,需将
http://mirrors.cloud.aliyuncs.com
替换为https://mirrors.aliyun.com
#添加Docker软件包源 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 #Alibaba Cloud Linux3专用的dnf源兼容插件 sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus #安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件 sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动Docker并设置开机自启。
#启动Docker sudo systemctl start docker #设置Docker守护进程在系统启动时自动启动 sudo systemctl enable docker
Ubuntu
安装新版Docker前,卸载所有已安装的Docker组件。可以避免潜在的冲突和兼容性问题。
安装Docker社区版本。
非阿里云服务器,需将
http://mirrors.cloud.aliyuncs.com
替换为https://mirrors.aliyun.com
#更新包管理工具 sudo apt-get update #添加Docker软件包源 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" #安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件 sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动Docker并设置开机自启。
#启动Docker sudo systemctl start docker #设置Docker守护进程在系统启动时自动启动 sudo systemctl enable docker
Debian
安装新版Docker前,卸载所有已安装的Docker组件。可以避免潜在的冲突和兼容性问题。
安装Docker社区版本。
非阿里云服务器,需将
http://mirrors.cloud.aliyuncs.com
替换为https://mirrors.aliyun.com
#更新包管理工具 sudo apt-get update #添加Docker软件包源 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" #安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件 sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动Docker并设置开机自启。
#启动Docker sudo systemctl start docker #设置Docker守护进程在系统启动时自动启动 sudo systemctl enable docker
Red Hat
安装新版Docker前,卸载所有已安装的Docker组件。可以避免潜在的冲突和兼容性问题。
安装Docker社区版本。
非阿里云服务器,需将
http://mirrors.cloud.aliyuncs.com
替换为https://mirrors.aliyun.com
#添加Docker软件包源 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 #安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件 sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动Docker并设置开机自启。
#启动Docker sudo systemctl start docker #设置Docker守护进程在系统启动时自动启动 sudo systemctl enable docker
Fedora
安装新版Docker前,卸载所有已安装的Docker组件。可以避免潜在的冲突和兼容性问题。
安装Docker社区版本。
非阿里云服务器,需将
http://mirrors.cloud.aliyuncs.com
替换为https://mirrors.aliyun.com
#添加Docker软件包源 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 #安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件 sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动Docker并设置开机自启。
#启动Docker sudo systemctl start docker #设置Docker守护进程在系统启动时自动启动 sudo systemctl enable docker
Anolis OS
安装新版Docker前,卸载所有已安装的Docker组件。可以避免潜在的冲突和兼容性问题。
安装Docker社区版本。
非阿里云服务器,需将
http://mirrors.cloud.aliyuncs.com
替换为https://mirrors.aliyun.com
#添加Docker软件包源 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 #安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件 sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动Docker并设置开机自启。
#启动Docker sudo systemctl start docker #设置Docker守护进程在系统启动时自动启动 sudo systemctl enable docker
Alibaba Cloud Linux 2
安装新版Docker前,卸载所有已安装的Docker组件。可以避免潜在的冲突和兼容性问题。
安装Docker社区版本。
非阿里云服务器,需将
http://mirrors.cloud.aliyuncs.com
替换为https://mirrors.aliyun.com
#添加Docker软件包源 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 #Alibaba Cloud Linux2专用的yum源兼容插件 sudo yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus #安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件 sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动Docker并设置开机自启。
#启动Docker sudo systemctl start docker #设置Docker守护进程在系统启动时自动启动 sudo systemctl enable docker
CentOS 7.x
安装新版Docker前,卸载所有已安装的Docker组件。可以避免潜在的冲突和兼容性问题。
安装Docker社区版本。
非阿里云服务器,需将
http://mirrors.cloud.aliyuncs.com
替换为https://mirrors.aliyun.com
#添加Docker软件包源 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 #安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件 sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动Docker并设置开机自启。
#启动Docker sudo systemctl start docker #设置Docker守护进程在系统启动时自动启动 sudo systemctl enable docker
CentOS 8.x
安装新版Docker前,卸载所有已安装的Docker组件。可以避免潜在的冲突和兼容性问题。
安装Docker社区版本。
非阿里云服务器,需将
http://mirrors.cloud.aliyuncs.com
替换为https://mirrors.aliyun.com
#添加Docker软件包源 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 #安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件 sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动Docker并设置开机自启。
#启动Docker sudo systemctl start docker #设置Docker守护进程在系统启动时自动启动 sudo systemctl enable docker
配置镜像源
由于运营商网络原因,从Docker Hub拉取镜像会失败。配置镜像加速器可解决该问题。
docker search
命令会直接查询Docker Hub,因此会执行失败。
登录容器镜像服务控制台,在左侧导航栏选择 ,在镜像加速器页面获取加速器地址。
编辑Docker配置文件
/etc/docker/daemon.json
。若文件不存在,先创建。{ "registry-mirrors": ["<加速器地址>"] }
重启Docker服务应用新配置。
sudo systemctl restart docker
使用Docker快速部署web应用
构建Web程序镜像。
#拉取Nginx镜像 sudo docker pull nginx:latest #创建Dockerfile设置Nginx作为基础镜像,并在Web服务器的根目录创建一个显示Hello World!的index.html文件。 sudo tee Dockerfile <<-'EOF' FROM nginx:latest RUN echo 'Hello World!' > /usr/share/nginx/html/index.html EOF #构建镜像,镜像名称为hello-world sudo docker build . -t hello-world:latest
使用Web应用镜像启动名为
hello-world
的容器。sudo docker run -d -p 80:80 --name hello-world hello-world:latest
执行
curl http://localhost
命令,验证Web程序是否正确显示Hello World!
。
安装Docker Compose
当应用包含多个服务,或服务间存在启动顺序依赖时,可以使用Docker Compose,通过一个YAML文件来定义、运行和统一管理。
Alibaba Cloud Linux、CentOS、Red Hat、Anolis、Fedora
sudo yum -y install docker-compose-plugin
Ubuntu、Debian
sudo apt-get -y install docker-compose-plugin
使用Docker Compose部署应用
创建编排文件
docker-compose.yaml
。#创建编排文件,添加Mysql与WordPress sudo tee docker-compose.yaml <<-'EOF' version: '3.1' services: wordpress: image: wordpress restart: always ports: - "80:80" environment: #数据库地址 WORDPRESS_DB_HOST: wordpress_db #数据库用户名 WORDPRESS_DB_USER: wordpress #数据库密码 WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD} #数据库名称 WORDPRESS_DB_NAME: wordpress volumes: - wordpress:/var/www/html db: image: mysql:5.7 restart: always container_name: wordpress_db environment: #数据库名称 MYSQL_DATABASE: wordpress #数据库用户名 MYSQL_USER: wordpress #数据库密码 MYSQL_PASSWORD: ${WORDPRESS_DB_PASSWORD} #数据库ROOT用户密码 MYSQL_RANDOM_ROOT_PASSWORD: ${WORDPRESS_DB_PASSWORD} volumes: - db:/var/lib/mysql volumes: wordpress: db: EOF
启动WordPress服务。将命令中的
<数据库密码>
调整为MySQL数据库密码。使用Docker Compose时,命令不用连字符,比如
docker compose version
。#启动服务容器。 sudo env "PATH=$PATH" "WORDPRESS_DB_PASSWORD=<数据库密码>" docker compose -f docker-compose.yaml up -d
在浏览器中输入
http://云服务器ECS实例的公网IP
,访问WordPress。需要在安全组放行
80
端口。
常见问题
Docker配置非root用户权限
http://mirrors.cloud.aliyuncs.com无法访问
执行dnf config-manager命令报错
执行dnf install docker-ce命令报错
相关文档
Docker的更多使用方法,请参见Docker官方文档。
阿里云推出了制品中心,为开发者免费提供了来源于阿里云官方、龙蜥社区的安全可信容器基础镜像。
使用企业P2P加速功能提升镜像拉取速度。具体操作,请参见在其他容器环境中使用P2P加速。
在Docker中配置CLI来管理阿里云资源。具体操作,请参见在Docker容器中运行阿里云CLI。
在轻量应用服务器上部署Docker,可参考基于轻量应用服务器上部署并使用Docker。