1. docker简介
互联网公司发展到现在都不得不面对一个问题,特别是各种版本的迭代之后,不同版本环境的兼容,对技术人员都是考验。Docker之所以发展这么快,也是因为它对此给出了一个标准化的解决方案。
复杂的项目,往往环境配置是比较麻烦的,特别是换一台机器,就要重新来一次,费时费力。所以很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是安装的时候,把原始环境一模一样地复制过来。所以开发人员利用Docker就可以消除协作编码时“在我机器上可以正常工作”的问题。
因为容器化技术的盛行,所以测试人员不得不去了解容器化测试技术,这也是我们现在初步学习和使用Docker的原因之一,另外,又因为很多时候我们测试是经常需要隔离环境的,传统的虚拟机技术比较麻烦,同时占用的系统资源又很多,那么这些问题都可以用Docker轻松解决。
什么是docker?
Docker时Docker.Lnc公司开源的一个基于LXC(Linux Container)技术之上搭建的Container容器引擎。提供一系列更强的功能,比如镜像、Dockerfile等。源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。Docker属于Linux容器的一种封装,Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上。Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。
docker架构
Docker使用C/S架构,Client 通过接口与Server进程通信实现容器的构建,运行和发布。client和server可以运行在同一台集群,也可以通过跨主机实现远程通信。
主要组件见下图:
- Server是一个常驻进程;
- REST API 实现了client和server间的交互协议;
- CLI实现容器和镜像的管理,为用户提供统一的操作界面。
核心概念
镜像(Image):镜像是只读的,镜像中包含需要运行的文件(提供容器运行时所需的程序、库、资源、配置等文件,还包含了一些为运行时准备的一些配置参数)。镜像用来创建container,一个镜像可以运行多个container;镜像可以通过Dockerfile创建,也可以从Docker hub/registry上下载。
容器(Container):是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。
仓库(Repository):从认识上来说,就好像软件包上传下载站,有各种软件的不同版本被上传供用户下载,共享和管理Docker镜像,官方地址为:
https://registry.hub.docker.com/
2. docker windows环境安装
Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。
Docker 实质上是在已经运行的 Linux 下面制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。
因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟系统 Linux 环境。
在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统在虚拟机中运行 Docker。
Win10 系统
Docker Desktop 是 Docker 在 Windows 10 和 macOS 操作系统上的官方安装方式,这个方法依然属于先在虚拟机中安装 Linux 然后再安装 Docker 的方法。
Docker Desktop 官方下载地址:
https://hub.docker.com/editions/community/docker-ce-desktop-windows
注意:此方法仅适用于 Windows 10 操作系统专业版、企业版、教育版和部分家庭版!
安装 Hyper-V
Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。
但是,这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!
开启 Hyper-V
程序和功能
启用或关闭Windows功能
选中Hyper-V
也可以通过命令来启用 Hyper-V ,请按右键开始菜单并以管理员身份运行 PowerShell,执行以下命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
安装 Docker Desktop for Windows
点击 Get started with Docker Desktop,并下载 Windows 的版本,如果你还没有登录,会要求注册登录:
运行安装文件
双击下载的 Docker for Windows Installer 安装文件,一路 Next,点击 Finish 完成安装。
安装完成后,Docker 会自动启动。通知栏上会出现个小鲸鱼的图标
,这表示 Docker 正在运行。
桌边也会出现三个图标,如下图所示:
我们可以在命令行执行 docker version 来查看版本号,docker run hello-world 来载入测试镜像测试。
如果没启动,你可以在 Windows 搜索 Docker 来启动:
启动后,也可以在通知栏上看到小鲸鱼的图标:
注意:如果启动中遇到因 WSL 2 导致地错误,请安装 WSL 2:
https://docs.microsoft.com/zh-cn/windows/wsl/install
安装之后,可以打开 PowerShell 并运行以下命令检测是否运行成功:
docker run hello-world
在成功运行之后应该会出现以下信息:
win7、win8 系统
win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:
http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
安装比较简单,双击运行,点下一步即可,可以勾选自己需要的组件:
docker toolbox 是一个工具集,它主要包含以下一些内容:
- Docker CLI – 客户端,用来运行 docker 引擎创建镜像和容器。
- Docker Machine – 可以让你在 Windows 的命令行中运行 docker 引擎命令。
- Docker Compose – 用来运行 docker-compose 命令。
- Kitematic – 这是 Docker 的 GUI 版本。
- Docker QuickStart shell – 这是一个已经配置好Docker的命令行环境。
- Oracle VM Virtualbox – 虚拟机。
下载完成之后直接点击安装,安装成功后,桌边会出现三个图标,如下图所示:
点击 Docker QuickStart 图标来启动 Docker Toolbox 终端。
如果系统显示 User Account Control 窗口来运行 VirtualBox 修改你的电脑,选择 Yes。
$ 符号那你可以输入以下命令来执行。
$ docker run hello-world
Unable to find image hello-world:latest locally
Pulling repository hello-world
91c95931e552: Download complete
a8219747be10: Download complete
Status: Downloaded newer image for hello-world:latest
Hello from Docker.
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker Engine CLI client contacted the Docker Engine daemon.
2. The Docker Engine daemon pulled the "hello-world" image from the Docker Hub.
(Assuming it was not already locally available.)
3. The Docker Engine daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker Engine daemon streamed that output to the Docker Engine CLI client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
For more examples and ideas, visit:
https://docs.docker.com/userguide/
3. docker 基本命令
# 镜像有关命令
docker image pull # 拉取镜像
docker images # 查看镜像
docker rmi image-id/镜像名字 # 删除某个镜像
docker rmi $(docker images | grep -v RESPOSITORY | awk {print $3}) # 删除所有镜像
docker search 镜像名字 # 搜索某个镜像
docker build -t 镜像名称:版本 . # 构建镜像,注意后面的 .
# docker命令
docker -v # 查看docker版本
docker info # 查看docker系统信息
# 容器有关命令
docker ps -a # 查看所有容器列表
docker ps -a -n=10 # 查看10个容器
docker inspect 容器ID # 查看某个容器的信息
docker rm 容器ID # 删除某个容器
docker rm $(docker ps -a) # 删除所有容器
docker stop 容器ID # 关闭运行中的某个容器
docker start 容器ID # 启动某个容器但是不进入
docker start -i 容器ID # 启动并进入某个容器
docker restart 容器ID # 重启某个容器
docker attach 容器ID # 进入一个运行中的容器
docker run -it 镜像名称:版本 # 启动容器并且以交互式进入容器
docker exec -it 容器ID /bin/bash # 以交互模式进入容器
Docker的入门今天就讲到这里。下篇分享
1、docker centos 环境搭建及配置
2、docker centos 开启远程访问
请继续关注。如果喜欢请大家点赞转发,谢谢支持!
最后,如果你对软件测试感兴趣,欢迎百度搜索“特斯汀软件测试腾讯课堂”或关注公众号“特斯汀软件测试”,里面涵盖很多精彩免费视频或干货知识