当前位置: 首页 > news >正文

容器云 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.tar

docker images

镜像导入成功后,可以在本地镜像列表中看到 httpd:2.2.32 镜像,为后续 web 容器部署做好准备。

2.2 创建并启动 httpd 网页容器

使用 httpd 镜像创建后台运行容器,配置宿主机与容器端口映射,外部通过 8080 端口访问网页服务:

docker run -d -p 8080:80 --name sad_gates httpd:2.2.32

docker 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 容器ID

docker 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.0'

services:

redis:

hostname:lxh-redis

container_name:lxh-redis

image: server:5000/lxh-redis:v1.1

ports:

- 6379:6379

restart: always

5.3 启动 Redis 容器服务

执行编排启动命令,后台运行服务:

plaintext

docker-compose up -d

docker ps

redis 容器自动创建、网络配置、端口映射一键完成,运维更加简洁高效。

5.4 Redis 功能实测验证

进入 redis 客户端,执行 set、get 命令测试数据库读写功能:

docker exec -it lxh-redis redis-cli

set name lxh

get name

数据正常写入与读取,自定义 redis 镜像配置无误,服务稳定运行。

六、实验总结与心得体会

本次完整完成 Docker 全流程实操,从最基础的镜像导入、容器创建、端口访问,到私有仓库镜像分发、Dockerfile 自定义镜像制作、Docker Compose 编排部署,内容层层递进,收获非常多。首先,理解了镜像与容器的区别:镜像是只读模板,容器是镜像运行后的可读写实例,容器删除不会影响镜像,适合环境复用。其次掌握了端口映射、容器网络隔离、内部交互式操作,明白了容器轻量化、快速部署、环境一致性的优势。 在自定义镜像环节,学会了 Dockerfile 编写规则,FROM、RUN、CMD、COPY 等指令的作用,理解镜像分层构建原理。私有仓库的搭建让我明白企业内部镜像管理的实际方案,离线环境下镜像打包、导入导出在生产运维中非常实用。 通过 Docker Compose 部署 Redis,体会到编排工具在多服务项目中的重要性,统一配置、一键启停、方便迁移维护,是现代云原生运维必备技能。本次实验也遇到部分问题,例如私有仓库 http 协议需要配置不安全仓库、redis 绑定地址未修改导致外部无法连接、端口冲突服务启动失败等,通过排查配置文件、查看日志、检查端口占用逐一解决,提升了排错能力。

总的来说,Docker 容器化技术极大简化了服务部署与环境维护,本次实操为后续学习 K8s、微服务、云原生架构打下扎实基础,后续会继续深入学习容器网络、数据卷挂载、容器集群管理等进阶内容。

http://www.jsqmd.com/news/717895/

相关文章:

  • CANoe+VH6501实战:手把手教你用CAPL精准干扰CAN-FD的Rx报文(附完整Demo)
  • VS Code MCP插件生态从零搭建:7步精准配置+4类典型报错实时修复(附官方未公开的server.json校验清单)
  • 探索C++数组初始化与动态填充
  • 【GD32笔记】:P01 GD32F103C8T6 DWT的使用
  • SOCD Cleaner终极指南:键盘输入冲突解决方案,4种模式提升游戏操作精度
  • 英语副词进阶版
  • SeqGPT-560M从零开始:无需标注数据的中文文本理解模型完整指南
  • 网页视频本地化:VideoDownloadHelper如何重塑你的内容获取体验
  • C++ 智能指针代码解析
  • VS Code MCP生态冷启动避坑图谱:从零搭建可商用MCP服务栈的6个关键决策点(含架构选型矩阵)
  • NEURAL MASK 学术写作助手:自动生成论文中的技术示意图与图表
  • Banana Pi BPI-F4工业级边缘AI开发板解析与应用
  • 提示的错误为Saving Environment to FAT ... Unable to use mmc 0:1... Failed(1)
  • 什么样的人,才算真正的 AI 产品评测专家?
  • 从零开始:HS2-HF_Patch游戏增强补丁完全配置指南
  • QueryWrapper和LambdaQueryWrapper
  • 5步解锁免费VIP音乐体验:MoeKoeMusic跨平台播放器完全指南
  • MedGemma X-Ray 快速入门:小白也能用的医疗影像AI助手
  • TradingView Lightweight Charts:5分钟构建高性能金融图表应用
  • ITSS 项目服务经理:报考条件 + 报考全流程
  • Embedding 学习笔记
  • Si826x数字隔离门驱动器:工业电机控制的高效解决方案
  • Kubernetes攻防 特殊路径挂载导致的容器逃逸
  • 《池上》唐·白居易
  • Linux系统下的深度学习环境配置:从入门到精通
  • 启动mysql失败/usr/libexec/mysqld: Operation not permitted
  • 零基础玩转Qwen2.5-VL-7B:RTX 4090专属视觉助手,开箱即用图文交互
  • Python + FastAPI+ uniapp 健身房预约系统
  • 图形验证码的技术原理与应用场景深度解析
  • OpenClaw 安全复盘:“龙虾”漏洞到底发生了什么?