(1)理解Docker容器技术的基本原理,掌握容器与虚拟机的区别; (2)掌握在阿里云ECS/Alibaba Cloud Linux环境中安装Docker引擎的完整流程; (3)掌握Docker镜像与容器的核心操作命令,能够完成镜像拉取、容器创建、启动停止等操作; (4)掌握Dockerfile的编写方法,能够基于基础镜像构建自定义应用镜像; (5)理解Docker容器网络与数据卷的基本概念,具备容器化应用部署的实践能力。
本实验内容主要分为四个阶段:
步骤1:环境准备与引擎安装。
首先登录系统,使用 sudo dnf update -y 更新软件包。安装必要依赖工具 yum-utils、device-mapper-persistent-data 和 lvm2。接着添加阿里云Docker CE软件源,并执行 sudo dnf -y install docker-ce docker-ce-cli containerd.io 安装Docker引擎。安装完成后,运行 sudo systemctl start docker 启动服务并设置开机自启,最后通过 docker -v 命令验证版本信息。
步骤2:配置镜像加速器。
为了加快拉取速度,执行 sudo mkdir -p /etc/docker 创建目录,并通过 tee 命令将阿里云镜像地址写入 /etc/docker/daemon.json 文件。执行 sudo systemctl daemon-reload 和 sudo systemctl restart docker 重载配置并重启服务。使用 docker info | grep -A 5 "Registry Mirrors" 验证加速器配置是否生效。
步骤3:镜像与容器基础操作。
使用 docker pull nginx:latest 拉取官方镜像。执行 docker run -d --name web-nginx -p 8080:80 nginx:latest 后台运行容器,并将宿主机8080端口映射至容器80端口。通过 docker ps 查看运行状态,使用 curl http://localhost:8080 测试访问。利用 docker logs web-nginx 查看日志,docker exec -it web-nginx /bin/bash 进入容器,最后使用 docker stop 和 docker rm 清理容器。
步骤4:构建自定义镜像。
创建工作目录,编写Dockerfile,基于Nginx镜像并使用 RUN 指令修改首页内容。执行 docker build -t custom-nginx:v1 . 构建镜像。运行新镜像 docker run -d -p 8080:80 custom-nginx:v1,再次通过浏览器或curl访问,验证页面内容已修改为自定义信息。
步骤5:网络与数据卷管理。
执行 docker network create mynetwork 创建自定义网络,并运行两个容器加入该网络,使用 docker exec container1 ping container2 测试连通性。创建数据卷 docker volume create mydata,挂载至Nginx容器并写入测试数据。删除容器后重新创建并挂载相同数据卷,验证 docker exec new-web cat /usr/share/nginx/html/data.txt 输出持久化数据。
步骤6:Docker Compose应用编排。
编写 docker-compose.yml 文件定义WordPress和MySQL服务。执行 docker compose up -d 启动所有服务,通过 docker compose ps 检查服务状态,确认所有容器正常运行。最后使用 docker compose down 停止并清理服务,完成实验。
实验结果 本次实验成功在Alibaba Cloud Linux 3环境下完成了Docker引擎的安装与配置,镜像加速器有效提升了拉取速度。通过命令行熟练掌握了镜像与容器的管理操作,Nginx服务端口映射访问正常。自定义构建的Nginx与Python镜像均成功运行,验证了Dockerfile的正确性。容器网络互通测试成功,数据卷挂载在容器重建后数据未丢失,WordPress应用编排部署顺利,各项功能验证均达到预期。
个人收获 通过本次实战,我深入理解了Docker容器技术与传统虚拟机的区别,掌握了容器化部署的核心流程。在编写Dockerfile过程中,学会了如何利用分层构建优化镜像体积。通过对网络和数据卷的配置,我对容器间的通信机制及数据持久化策略有了更直观的认识,同时也提升了使用Docker Compose进行多容器编排运维的能力,为后续学习Kubernetes打下了坚实基础。
本文作者:Linxiong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!