引言
在云服务器ECS上使用Ubuntu系统安装Docker及Docker Compose,是提升开发效率、简化部署流程的重要步骤,下面是在阿里云ECS云服务器上安装、配置及高效使用Docker与Docker Compose的文章以及体验感受分享。
需求介绍
Docker及其生态工具Docker Compose成为了构建、运行和管理容器化应用的首选。在云服务器ECS上,通过Ubuntu系统安装Docker及Docker Compose,可以满足快速部署、弹性扩展和高效管理的需求,为开发者和运维人员提供便捷的开发和运维环境。
使用步骤
安装Docker
- 执行以下命令安装Docker社区版本
#更新包管理工具
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
sudo systemctl start docker
#设置Docker守护进程在系统启动时自动启动
sudo systemctl enable docker
- 通过查看Docker版本命令,验证Docker是否安装成功。
sudo docker -v
配置镜像源
当Docker Hub镜像拉取受网络影响时,可配置Docker镜像源提升速度。但请注意,镜像源配置不适用于docker search命令,因为它直接查询Docker Hub。
需要编辑Docker的配置文件/etc/docker/daemon.json,如果该文件不存在,您需要创建它。
{
"registry-mirrors": ["<加速器地址>"]
}
完成编辑后,保存文件并退出。然后,为了使新的配置生效,您需要重启Docker服务。这可以通过执行以下命令来完成。
sudo systemctl restart docker
- 创建简单Web程序镜像
以下是创建基于Nginx镜像的简单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程序镜像的容器,并且命名容器名称为jupiter。
sudo docker run -d -p 80:80 --name jupiter jupiter:latest
执行curl http://localhost命令,验证Web程序是否正确显示jupiter。
安装Docker Compose
- 如果参考的本文安装Docker,那么Compose插件将默认安装到您的实例中。您可以通过如下命令查看。
sudo docker compose version
如果Compose插件未成功安装或您需要使用Compose独立版(docker-compose)可参考下面内容。
使用Docker Compose部署应用
以下是创建基于WordPress镜像的Web程序。
- 创建Compose编排文件并启动WordPress服务。
#创建编排文件,添加Mysql与WordPress
sudo 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 -d
- 在浏览器中输入http://云服务器ECS实例的公网IP,访问WordPress。
使用感受
阿里云提供的实例配置灵活多样,能够满足不同规模和复杂度的应用需求。在性能表现上,无论是计算速度还是网络延迟,都展现出了卓越的能力,确保了业务的流畅运行。
操作界面友好直观,让我能够快速上手并进行实例的管理和配置。同时,阿里云提供的安全防护措施也给了我极大的信心,确保数据的安全性和业务的稳定性。
在使用过程中,我还深刻感受到了阿里云服务的可靠性和稳定性。即使在面对高并发访问或突发流量时,实例也能保持稳定的性能,没有出现明显的卡顿或崩溃现象。
总的来说,阿里云实例为我提供了一个强大、灵活且可靠的云计算环境,极大地提升了业务处理能力和运营效率。