Docker是一个开源的应用容器引擎,提供了容器的自动化打包、分发和运行的工具和服务,具有隔离性好、可移植性强、易于管理等优势。本文主要介绍如何在Linux轻量应用服务器中安装和使用Docker与Docker Compose。
说明
关于Docker的更多信息,请参见Docker概述。
如果您希望快速部署Docker环境。具体操作,请参见快速部署Docker。
远程连接轻量应用服务器。具体操作,请参见远程连接Linux服务器。 根据服务器的操作系统,选择对应的操作,部署Docker。 Alibaba Cloud Linux 3 Alibaba Cloud Linux 2 CentOS 7.x CentOS 8.x Ubuntu Debian Fedora Red Hat Anolis OS 在安装最新版本的Docker之前,请确保先卸载当前安装的Docker及其相关组件,避免潜在的安装冲突和兼容性问题。 执行以下命令安装Docker社区版本。 说明 如果您使用的是非阿里云服务器,请将 通过查看Docker版本命令,验证Docker是否安装成功。 如下图回显信息所示,表示Docker已安装成功。 当Docker Hub镜像拉取受网络影响时,可配置Docker镜像源提升速度。但请注意,镜像源配置不适用于 说明 要配置阿里云容器镜像服务ACR镜像加速器,请登录容器镜像服务控制台,在左侧导航栏选择,在镜像加速器页面获取加速器地址。 网络不稳定可能导致加速器无法成功拉取指定版本的容器镜像。如需进一步解决方案,请参阅Docker Hub拉取失败解决方案。 您需要编辑Docker的配置文件 完成编辑后,保存文件并退出。然后,为了使新的配置生效,您需要重启Docker服务。这可以通过执行以下命令来完成。 重要 重启Docker会使您的Docker服务短暂不可用,请谨慎操作。 以下是创建基于Nginx镜像的简单Web程序镜像。 构建Web程序镜像。 启动Web程序镜像的容器,并且命名容器名称为 执行 如果您参考的本文安装Docker,那么Compose插件将默认安装到您的实例中。您可以通过如下命令查看。 预期输出(vN.N.N代表Compose的版本): 如果您的Compose插件未成功安装或您需要使用Compose独立版( 重要 使用Compose独立版时,命令中间要用连字符,比如 使用Compose插件时,命令中间不用连字符,比如 Compose插件 Compose独立版 Alibaba Cloud Linux 3、CentOS 8.x、Fedora Ubuntu、Debian Alibaba Cloud Linux 2、CentOS 7.x、Red Hat、Anolis OS 使用查看Compose版本命令,验证Compose是否安装成功。 以下是创建基于WordPress镜像的Web程序。 创建Compose编排文件并启动WordPress服务。 在浏览器中输入 Docker的更多使用方法,请参见Docker官方文档。 阿里云推出了制品中心,为开发者免费提供了来源于阿里云官方、龙蜥社区的安全可信容器基础镜像。 您可以使用企业P2P加速功能提升镜像拉取速度。具体操作,请参见在其他容器环境中使用P2P加速。 您可以在Docker中配置CLI来管理您的阿里云资源。具体操作,请参见在Docker容器中运行阿里云CLI。准备工作
部署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#启动Dockersudo systemctl start docker#设置Docker守护进程在系统启动时自动启动sudo systemctl enable dockersudo docker -v
配置镜像源
docker search命令,因为它直接查询Docker Hub。/etc/docker/daemon.json,如果该文件不存在,您需要创建它。{
"registry-mirrors": ["<加速器地址>"]} sudo systemctl restart docker创建简单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-worldsudo docker build . -t hello-world:latesthello-world。sudo docker run -d -p 80:80 --name hello-world hello-world:latestcurl http://localhost命令,验证Web程序是否正确显示Hello World!。安装Docker Compose
sudo docker compose versionDocker Compose version vN.N.N。docker-compose)可参考下面内容。docker-compose up。docker compose up。sudo dnf -y install docker-compose-pluginsudo docker compose version使用Docker Compose部署应用
#创建编排文件,添加Mysql与WordPresssudo tee docker-compose.yaml <<-'EOF'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 #数据库ROOT用户密码
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
EOF#启动服务容器。sudo env "PATH=$PATH" docker compose up -dhttps://轻量应用服务实例的公网IP,即可进入WordPress配置页面,您可以根据界面提示配置相关参数后,访问WordPress。常见问题
相关文档