发布微服务
已发行
本章内容概览:
- 容器与镜像的区别
- Docker 基础
- 将微服务封装为 Docker 镜像
- 构建私有容器仓库
- 在容器环境中部署微服务
本章学习如何将第 2 章的视频流微服务发布出去,为部署到 Kubernetes 集群做好准备。
3.1 容器是什么?
定义 容器是一种虚拟化服务器的技术,提供虚拟化操作系统和硬件的方法。
容器比虚拟机更轻量,因为它们虚拟化操作系统和硬件,无需完整的操作系统副本。

3.2 什么是镜像?
定义 镜像是服务器的可启动快照,包含运行服务所需的所有代码、依赖和资产。
镜像具有不可变性,一旦创建无法更改。这确保了经过测试和安全检查的镜像不会被篡改。

3.3 为什么选择 Docker?
Docker 已成为软件行业的标准工具:
- 几乎无处不在的广泛支持
- 标准化开发环境,与生产环境保持一致
- 可视为"通用包管理器"
3.4 Docker 工作流程

关键任务:
- 将微服务打包为 Docker 镜像
- 发布镜像到私有容器仓库
- 在容器中运行微服务
3.4.1 Dockerfile
Dockerfile 是创建镜像的规范文件:
FROM node:18.17.1 # 基础镜像
WORKDIR /usr/src/app # 工作目录
COPY package*.json ./ # 复制依赖文件
RUN npm ci --omit=dev # 安装生产依赖
COPY ./src ./src # 复制源代码
COPY ./videos ./videos # 复制视频文件
CMD npm start # 启动命令
关键指令:
FROM:指定基础镜像COPY:复制文件到镜像RUN:构建时运行命令CMD:容器启动时调用的命令
3.4.2 构建和运行
构建镜像:
docker build -t video-streaming --file Dockerfile .
列出镜像:
docker image list
启动容器:
docker run -d -p 3000:3000 -e PORT=3000 video-streaming
参数:
-d:后台运行-p:端口映射-e:环境变量
检查容器:
docker container list
docker logs <container-id>
3.5 发布微服务
3.5.1 发布步骤
- 创建私有容器仓库
docker login身份验证docker tag标记镜像docker push上传镜像
3.5.2 完整流水线

总结
- Docker 是打包、发布和运行容器的标准工具
- 容器是虚拟化的服务器(如微服务)
- 镜像是准备实例化的容器快照,具有不可变性
- Dockerfile 指定镜像构建脚本
docker build创建镜像,docker run实例化容器docker push发布镜像到容器仓库
下一章将学习如何在开发计算机上运行多个基于 Docker 的微服务。