容器云 Docker 部署实战
一、实验前言随着云原生技术快速发展Docker 容器技术已经成为企业应用部署、服务迁移、环境统一的核心工具。本次实验完整实操 Docker 基础命令、私有仓库搭建、Dockerfile 自定义镜像构建、Docker Compose 容器编排、httpd 网页服务部署、Redis 数据库容器化部署全流程。结合 CentOS 服务器环境双节点配合操作从镜像导入、容器创建、端口映射、内部命令操作到自定义镜像打包、私有仓库上传下载、compose 批量编排服务一步步落地实操加深对容器隔离性、镜像分层、容器网络与端口映射的理解。二、Docker 基础环境与基础命令操作本次实验环境基于 CentOS 系统提前部署好 Docker 服务首先检查 Docker 运行状态与基础环境保证后续所有操作正常执行。http://10.90.87.77/lfradius/web/admin/login确认 Docker 服务正常运行内核、存储驱动、网络模式全部就绪无报错具备容器运行基础环境。2.1 离线导入 httpd 镜像实验采用离线镜像包部署使用本地 httpd 压缩镜像文件导入本地镜像库。执行命令docker load -i httpd-2.2.32.tardocker images镜像导入成功后可以在本地镜像列表中看到 httpd:2.2.32 镜像为后续 web 容器部署做好准备。2.2 创建并启动 httpd 网页容器使用 httpd 镜像创建后台运行容器配置宿主机与容器端口映射外部通过 8080 端口访问网页服务docker run -d -p 8080:80 --name sad_gates httpd:2.2.32docker ps容器成功启动状态为 Up端口映射 8080:80 生效容器独立运行与宿主机环境隔离。2.3 跨节点访问 web 服务在客户端节点使用 curl 命令访问服务地址测试网页服务可用性curl http://server:8080页面返回经典 It works!证明 httpd 容器服务正常对外提供访问端口映射配置生效容器外部网络访问通畅。2.4 进入容器内部操作为深入了解容器内部环境执行交互式命令进入容器内部docker exec -it sad_gates /bin/bash在容器内查看系统版本、网卡信息、网站目录尝试手动启动 httpd 服务。可以发现容器内部为独立网络、独立文件系统手动启动 httpd 提示端口占用是因为容器默认已后台运行服务充分体现容器进程隔离特性。2.5 容器停止与删除测试实验完成基础测试后执行容器停止与删除操作掌握容器生命周期管理docker stop 容器IDdocker rm 容器ID容器删除后镜像依然保留在本地实现容器临时运行、镜像持久化存储的特点方便重复部署。三、Docker 私有仓库搭建与镜像分发为实现多节点镜像共享本次实验搭建本地私有 Registry 仓库完成镜像打标、推送、跨节点拉取实现企业内网镜像统一管理。部署私有仓库容器本地镜像打标为私有仓库格式推送镜像至 5000 端口私有仓库客户端节点配置不信任仓库拉取镜像并部署。私有仓库搭建完成后局域网内所有节点均可拉取仓库内镜像解决离线环境镜像传输困难的问题提升批量部署效率。四、Dockerfile 自定义 Redis 镜像构建原生官方镜像功能单一实际工作中需要自定义修改配置、内置环境、修改参数本次通过编写 Dockerfile 基于 CentOS 基础镜像自行构建 Redis 自定义镜像。4.1 编写 Dockerfile 与本地 YUM 源编写 Dockerfile配置基础镜像、替换本地 yum 源、安装 redis、修改配置文件放行所有 IP 连接FROM centos:latest# 替换本地源、安装redis、修改bind地址4.2 执行镜像构建使用 build 命令完成分层构建生成自定义镜像docker build -t lxh-redis:v1.1 .构建过程逐层执行命令镜像分层存储减少冗余构建完成后生成专属 Redis 镜像。4.3 自定义镜像打包导出将构建完成的自定义 redis 镜像打包为 tar 文件用于离线迁移、备份、跨设备传输docker save -o lxh-redis.tar lxh-redis:v1.1五、Docker Compose 容器编排部署 Redis单条 docker run 命令适合少量容器多服务场景推荐使用 Docker Compose YAML 文件统一编排管理。5.1 客户端安装配置 docker-compose上传二进制文件添加执行权限完成 compose 工具安装。5.2 编写 compose 编排文件编写 docker-compose.yaml定义镜像地址、容器名称、端口映射、开机自启策略。version: 2.0services:redis:hostname:lxh-rediscontainer_name:lxh-redisimage: server:5000/lxh-redis:v1.1ports:- 6379:6379restart: always5.3 启动 Redis 容器服务执行编排启动命令后台运行服务plaintextdocker-compose up -ddocker psredis 容器自动创建、网络配置、端口映射一键完成运维更加简洁高效。5.4 Redis 功能实测验证进入 redis 客户端执行 set、get 命令测试数据库读写功能docker exec -it lxh-redis redis-cliset name lxhget name数据正常写入与读取自定义 redis 镜像配置无误服务稳定运行。六、实验总结与心得体会本次完整完成 Docker 全流程实操从最基础的镜像导入、容器创建、端口访问到私有仓库镜像分发、Dockerfile 自定义镜像制作、Docker Compose 编排部署内容层层递进收获非常多。首先理解了镜像与容器的区别镜像是只读模板容器是镜像运行后的可读写实例容器删除不会影响镜像适合环境复用。其次掌握了端口映射、容器网络隔离、内部交互式操作明白了容器轻量化、快速部署、环境一致性的优势。 在自定义镜像环节学会了 Dockerfile 编写规则FROM、RUN、CMD、COPY 等指令的作用理解镜像分层构建原理。私有仓库的搭建让我明白企业内部镜像管理的实际方案离线环境下镜像打包、导入导出在生产运维中非常实用。 通过 Docker Compose 部署 Redis体会到编排工具在多服务项目中的重要性统一配置、一键启停、方便迁移维护是现代云原生运维必备技能。本次实验也遇到部分问题例如私有仓库 http 协议需要配置不安全仓库、redis 绑定地址未修改导致外部无法连接、端口冲突服务启动失败等通过排查配置文件、查看日志、检查端口占用逐一解决提升了排错能力。总的来说Docker 容器化技术极大简化了服务部署与环境维护本次实操为后续学习 K8s、微服务、云原生架构打下扎实基础后续会继续深入学习容器网络、数据卷挂载、容器集群管理等进阶内容。