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

容器云docker部署

部署服务第一阶段

一、实训目的

1. 完成两台CentOS 7虚拟机的**主机名、静态IP、网关、DNS**标准化配置。

2. 关闭防火墙与SELinux,开启内核转发,满足Docker运行的系统要求。

3. 配置hosts文件,实现server与client节点名称互通。

4. 在server节点搭建**FTP共享服务**,为后续本地YUM源提供支撑。

5. 挂载ISO镜像、配置本地与FTP YUM源,实现离线软件安装。

6. 为Docker安装、私有仓库、容器部署打下稳定的系统环境基础。

二、实训环境信息

| 节点 | 主机名 | 内存 | 硬盘 | 静态IP | 网关 | DNS |

|------|--------|------|------|--------|------|-----|

| 服务端 | server | 4G | 40G | 10.70.3.137/24 | 10.70.3.1 | 114.114.114.114 |

| 客户端 | client | 4G | 40G | 10.70.3.138/24 | 10.70.3.1 | 114.114.114.114 |

三、实训步骤与操作记录

1. 虚拟机基础配置

- 修改主机名:`hostnamectl set-hostname server/client`

- 使用`nmtui`配置静态IP、网关、DNS

- 重启网络:`systemctl restart network`

2. 关闭防火墙与SELinux

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

# 编辑配置文件永久关闭 SELINUX=disabled

3. 配置内核转发

编辑`/etc/sysctl.conf`添加:

net.ipv4.ip_forward = 1

net.ipv4.conf.default.rp_filter = 0

net.ipv4.conf.all.rp_filter = 0

执行`sysctl -p`生效。

4. 配置hosts解析

在`/etc/hosts`添加:

10.70.3.137 server

10.70.3.138 client

5. 配置YUM源与FTP服务

- 更换腾讯云Base源

- 安装vsftpd,设置`anon_root=/opt/`

- 启动并设置开机自启

- 验证FTP共享可用

6. 挂载ISO并配置本地源

- 挂载paas.iso与centos.iso,拷贝文件到`/opt`

- 安装createrepo,生成yum元数据

- server配置file本地源,client配置ftp源

- 清理并重建缓存:`yum clean all && yum makecache`

四、实训结果

1. 两台虚拟机网络互通,主机名解析正常。

2. 系统安全组件关闭,内核转发开启,满足Docker运行要求。

3. FTP服务正常,client可访问server的资源文件。

4. YUM源配置成功,可离线安装docker-ce等软件包。

5. 整体环境稳定,为后续Docker实训提供可靠支撑。

五、实训总结

本次实训完成了Docker部署前的**全流程系统环境搭建**,涵盖网络、安全、内核、文件共享、YUM源等关键配置。我掌握了CentOS 7系统初始化标准流程,理解了容器运行对网络与系统的要求,提升了Linux系统管理与排错能力。环境配置是容器化的基础,每一步正确设置都直接影响后续实验,为整个Docker实训奠定了重要基础。

第二阶段实训

一、实训目的

1. 掌握在 CentOS 7 环境下通过本地 YUM 源安装 Docker 社区版(docker-ce)。

2. 熟练使用 Docker 基础命令,完成查看信息、加载镜像、创建容器、进入容器、停止删除容器等操作。

3. 实现容器端口映射,并在客户端验证服务可正常访问。

4. 理解容器运行机制,掌握 Docker 日常运维基本流程。

二、实训环境

服务端:server,IP:10.70.3.137

客户端:client,IP:10.70.3.138

系统:CentOS 7.5.1804

软件:Docker-CE、httpd 2.2.32 镜像

已完成:第一阶段网络、YUM 源、vsftpd 配置

三、实训步骤与操作记录

1. 安装 Docker-CE

在 server 和 client 分别执行:

yum install -y docker-ce

systemctl start docker

systemctl enable docker

完成 Docker 安装、启动与开机自启配置。

2. 查看 Docker 信息

docker info

docker version

查看 Docker 版本、驱动、存储等信息,确认服务正常运行。

3. 查看容器与镜像

docker ps

docker images

初始状态无运行容器与本地镜像,结果为空。

4. 加载 httpd 镜像

docker load -i /opt/paas/images/httpd-2.2.32.tar

docker images

成功加载镜像,记录镜像 ID,用于后续创建容器。

5. 创建并运行 httpd 容器

docker run -d --restart=unless-stopped -p 8080:80 <镜像ID前四位>

参数说明:

d:后台运行

restart=unless-stopped:异常自动重启

p 8080:80:宿主机 8080 映射容器 80 端口

使用 docker ps 查看容器运行状态。

6. 客户端验证服务

在 client 执行:

curl http://server:8080

返回 It works! 说明容器服务部署成功、端口映射正常。

7. 进入容器内部操作

docker exec -it <容器ID前四位> bash

uname -a

ip address

ls -l

cd bin

httpd

exit

完成系统信息查看、网络检查、目录浏览、服务启动等操作。

8. 停止并删除容器

docker stop <容器ID>

docker rm <容器ID>

验证容器停止、删除命令,理解容器生命周期管理。

四、实训结果

1. Docker-CE 在 server 和 client 均安装成功,服务运行正常。

2. 成功加载 httpd 镜像,创建容器并实现端口映射。

3. 客户端可正常访问容器内 httpd 服务,返回预期页面。

4. 熟练完成容器进入、查看、停止、删除等操作。

5. 所有命令执行正常,无报错,实训目标全部达成。

五、实训总结

本次实训完成了 Docker 安装与基础命令的全流程操作。我掌握了 `docker install/start/info/version/ps/images/load/run/exec/stop/rm` 等核心命令,理解了镜像与容器的关系、端口映射原理和容器重启策略。通过客户端验证,进一步巩固了容器网络互通的知识。整体操作顺畅,为后续私有仓库、Dockerfile、Docker Compose 学习打下了坚实基础。

第三阶段

一、实训目的

1. 掌握在 CentOS 7 上搭建 Docker 本地私有仓库(Registry)的完整流程。

2. 学会配置 Docker 非安全仓库(insecure-registries),支持 HTTP 协议访问。

3. 掌握镜像打标签、推送至私有仓库、客户端从私有仓库拉取镜像的操作。

4. 实现服务端与客户端镜像共享,验证私有仓库可用性。

5. 熟练使用 `docker tag`、`docker push`、`docker pull` 等镜像管理命令。

二、实训环境

服务端(server):IP **10.70.3.137**

客户端(client):IP **10.70.3.138**

系统:CentOS 7.5.1804

组件:Docker CE、Registry 私有仓库

前置条件:第一、二阶段环境正常,Docker 已安装,httpd 镜像已加载

三、实训步骤与操作内容

(一)准备 Registry 镜像并加载

1. 创建目录 `/opt/images`,上传 `registry.tar` 到该目录。

2. 加载 Registry 镜像:

docker load -i /opt/images/registry.tar

(二)启动私有仓库容器

1. 运行 registry 容器,挂载数据卷并映射 5000 端口:

docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest

2. 测试仓库是否正常:

curl -v http://server:5000/v2

(三)配置 Docker 非安全仓库(Server 端)

1. 创建并写入 `daemon.json`:

tee /etc/docker/daemon.json > /dev/null <<'EOF'

{

"insecure-registries": ["server:5000"]

}

EOF

2. 重启 Docker 服务:

systemctl daemon-reload

systemctl restart docker

(四)镜像打标签并推送至私有仓库

1. 给镜像添加仓库前缀标签:

docker tag registry server:5000/registry

docker tag httpd:2.2.32 server:5000/httpd:2.2.32

2. 推送到私有仓库:

docker push server:5000/registry

docker push server:5000/httpd:2.2.32

3. 查看仓库镜像列表:

curl http://server:5000/v2/_catalog

(五)Client 端配置并验证私有仓库

1. 同样配置 `daemon.json` 并重启 Docker。

2. 查看仓库镜像与标签:

curl http://server:5000/v2/_catalog

curl http://server:5000/v2/httpd/tags/list

3. 从私有仓库拉取镜像:

docker pull server:5000/httpd:2.2.32

  1. 查看本地镜像并验证可正常创建容器、访问服务。

四、实训结果

1. 成功在 server 节点搭建 Docker 私有仓库,端口 5000 正常监听。

2. 成功配置 HTTP 非安全仓库,Docker 可正常连接私有仓库。

3. 完成镜像打标签、推送,私有仓库可正常存储镜像。

4. client 节点可正常查看、拉取私有仓库镜像。

5. 拉取后的 httpd 镜像可正常创建容器并提供 Web 访问,验证仓库完全可用。

6. 所有命令执行无误,实训目标全部达成。

五、实训总结

本次实训完成了 Docker 私有仓库的完整搭建与使用,我掌握了 Registry 容器部署、`daemon.json` 非安全仓库配置、`tag/push/pull` 镜像生命周期管理等核心技能。理解了私有仓库在企业环境中用于镜像统一管理、安全分发的作用。通过服务端与客户端联调,加深了对 Docker 网络与仓库机制的理解,为后续使用 Dockerfile 构建镜像、Docker Compose 编排服务打下重要基础。

第四阶

一、实训目的

1. 掌握使用 **Dockerfile** 自定义构建 Redis 服务镜像的完整流程。

2. 学会配置本地 YUM 源、修改 Redis 配置、暴露端口、设置启动命令。

3. 掌握镜像构建、打标签、推送私有仓库、本地导出的操作。

4. 在客户端安装 **Docker Compose**,使用 YAML 文件一键编排启动容器。

5. 完成容器部署、端口映射、Redis 功能测试,验证服务可用。

二、实训环境

- 服务端(server):IP 10.70.3.137

- 客户端(client):IP 10.70.3.138

- 系统:CentOS 7.5.1804

- 组件:Docker、Docker Registry 私有仓库、Docker Compose v1.25.5、Redis

- 前置条件:前三阶段环境正常,私有仓库可正常 push/pull

三、实训步骤与操作记录

(一)Server 端:Dockerfile 构建 Redis 镜像

1. 准备工作目录

cd ~

mkdir redis

cd redis

2.编写 Dockerfile

dockerfile

FROM server:5000/centos

MAINTAINER 姓名

RUN rm -rf /etc/yum.repos.d/*

COPY ./local.repo /etc/yum.repos.d/

RUN yum install redis -y && sed -i "s/^bind 127.0.0.1/bind 0.0.0.0/g;s/^protected-mode yes/protected-mode no/g" /etc/redis.conf

EXPOSE 6379

CMD ["redis-server","/etc/redis.conf"]

3. 准备基础镜像并推送仓库

docker load -i /opt/paas/images/centos-centos7.5.1804.tar

docker tag 镜像ID server:5000/centos

docker push server:5000/centos

4.编写本地 YUM 源 local.repo

[docker]

name=docker

baseurl=ftp://10.70.3.137/paas

gpgcheck=0

enabled=1

[centos]

name=centos

baseurl=ftp://10.70.3.137/centos

gpgcheck=0

enabled=1

[gpmall]

name=gpmall

baseurl=ftp://10.70.3.137/paas/ChinaskillMall/gpmall-repo

gpgcheck=0

enabled=1

5. 构建 Redis 镜像

docker build -t 姓名-redis:v1.1 .

6. 推送镜像到私有仓库

docker tag 姓名-redis:v1.1 server:5000/姓名-redis:v1.1

docker push server:5000/姓名-redis:v1.1

7. 导出镜像到本地文件

docker save -o 姓名-redis.tar 姓名-redis:v1.1

(二)Client 端:安装 Docker Compose

1. 从 FTP 下载 Docker Compose

wget ftp://server/paas/docker-compose/v1.25.5-*

2. 移动并授权

mv v1.25.5-* /usr/bin/docker-compose

chmod +x /usr/bin/docker-compose

3. 验证安装

ll /usr/bin/docker-compose

(三)Client 端:Docker Compose 部署 Redis

1. 创建工作目录

cd ~

mkdir redis

cd redis

2. 编写 docker-compose.yaml

```yaml

version: '2.0'

services:

redis:

hostname: 姓名-redis

container_name: 姓名-redis

image: server:5000/姓名-redis:v1.1

ports:

- 6379:6379

restart: always

3.启动容器

docker-compose up -d

4. 查看容器状态

docker ps | grep 姓名

5. 进入容器测试 Redis

docker exec -it 姓名-redis redis-cli

set name 姓名

get name

Exit

四、实训结果

1. 成功通过 Dockerfile 构建自定义 Redis 镜像,配置、端口、启动项均正常。

2. 镜像成功推送到私有仓库,并可导出本地保存。

3. Docker Compose 安装成功,可正常执行编排命令。

4. 容器一键启动成功,端口 6379 映射正常。

5. Redis 服务运行正常,`set/get` 数据成功,功能验证通过。

6. 全流程无报错,实训任务全部完成。

五、实训总结

本次实训完成了从 **Dockerfile 镜像构建** 到 **Docker Compose 容器编排** 的完整容器化部署流程。我掌握了 FROM/RUN/COPY/EXPOSE/CMD 等指令用法,理解了镜像分层构建原理;同时学会了 Compose 编排文件编写、批量启动容器、端口映射、重启策略等关键技能。通过私有仓库共享镜像、客户端拉取启动,加深了对企业级容器交付流程的理解,为微服务部署打下扎实基础。

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

相关文章:

  • CefFlashBrowser:Flash内容重获新生的终极解决方案
  • 用 n8n + AI 搭建专属「AI 情报员」
  • 2026能源电力行业制服及棉马甲推荐榜 - 优质品牌商家
  • OpenClaw 2.6.4(小龙虾)虾壳云版|Windows10/11 64 位一键部署教程
  • DNN加速器互连功耗优化:基于1-bit计数的近似排序设计
  • 原神帧率解锁工具:3个步骤告别60FPS限制,畅享丝滑游戏体验
  • 改进残差收缩网络轴承声发射信号识别【附代码】
  • 如何高效重置JetBrains IDE试用期:实用免费工具指南
  • 英文论文AI率95%怎么办?2026最新实测:5款降AI软件与3大人工指令
  • 网络安全趋势分析
  • 5分钟部署FontCenter:AutoCAD字体管理插件的终极解决方案
  • 05、Doris部署与数据同步指南
  • 纯RAG就是个“半成品“:FAQ+RAG让大模型客服真正能打
  • 全屏图像与动态元素的完美结合
  • VMware Workstation Pro 17 免费激活终极指南:5000+许可证密钥完整教程
  • Day06-06.实现点赞功能-实现点赞或取消点赞接口24:07
  • 10分钟搞定黑苹果配置:OpCore-Simplify自动化工具终极指南
  • Layerdivider终极指南:一键将单张图片智能分层为可编辑PSD文件
  • 小六壬排盘工具源码 自适应双端 纯原生HTML+JS
  • AArch64处理器特性寄存器解析与应用实践
  • 隐于无形,触手可及:Chrome 互动滚动条的六个设计密码
  • NVIDIA Jetson AGX Thor:边缘AI性能优化与量化技术实战
  • 灭蚊器哪个好用?灭蚊器哪种品牌效果好?口碑爆款灭蚊灯十大名牌,小白精选款!
  • MacOS上使用CoreBluetooth框架的BLE适配器选择指南
  • 本地部署 Qwen2.5-1.5B-Instruct 全流程教程|Ollama + 魔搭双方案
  • 火箭发射极端环境成像:硬件算法协同设计突破
  • Laravel 12新特性×AI工程化落地:从Native JSON Schema Validation到AI生成Migration的全自动闭环(含可复用Composer包)
  • 如何用DyberPet桌面宠物框架重构你的数字生活体验?
  • 状态空间模型与长序列建模:MemMamba的创新与实践
  • 当网络消失时,你的小说图书馆依然存在:fanqienovel-downloader 离线阅读解决方案