什么是Docker
Docker 包括三个基本概念,理解了这三个概念,就理解了 Docker 的整个生命周期。
- 「镜像(Image)」
Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。
- 「容器(Container)」
容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
- 「仓库(Repository)」
一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。一个 Docker Registry 中可以包含多个 仓库(Repository);每个仓库可以包含多个 标签(Tag);每个标签对应一个镜像。
前提条件
在讲解Docker在测试中的应用之前,先简单给大家介绍一下如何使用Docker部署一个服务。
假设你的服务器已经部署安装了Docker服务。(安装部署比较简单,各位小伙伴可以自行进行操作。)
- 安装docker
https://docs.docker.com/get-docker/
部署步骤
- 将工程代码clone到服务器;
git clone https://test.git
- 在工程目录新建一个Dockerfile文件,内容如下:
# 基于某个基础Docker镜像进行运行,如下的镜像已经包含了nginx+lua的环境 FROM docker-reg.sogou-inc.com/library/nginx-sogou-lua:2.1.8.0-10 ADD resources/vhosts /usr/local/nginx/conf/vhosts ADD resources/html /usr/local/nginx/html ADD resources/lua /usr/local/nginx/lua
- 使用Docker build命令打包我们的服务镜像:
# v1为tag标签,跟git的tag标签类似,方便记忆 docker build -t helloworld:v1 .
- 打包后我们可以看到镜像
- 运行该镜像
# -p 指定主机端口和容器端口的映射关系 # -d 指定容器在后台运行 docker run -p 8080:80 -d helloworld:v1
总结
- 根据服务需要的运行环境,编写Dockerfile文件;
- 使用build命令依据Dockerfile打包镜像;
- 镜像可以本地运行,或发布到公有/私有平台,以供他人使用。
# 官方docker镜像平台 https://hub.docker.com/
下集预告
「3个场景快速上手Docker容器技术」
- 使用Docker管理测试环境
- 使用Docker提高测试执行效率
- 使用Docker管理测试数据