• 12
  • 12
分享
  • 小白也都能听懂的Docker讲解和应用——软件测试圈
  • 曼倩诙谐 2021-07-08 10:39:40 字数 2575 阅读 1947 收藏 12

  什么是Docker

  Docker按照通俗易懂的理解来说就是一个用来装应用的容器,就像可以把水装到杯子里,把饭装到碗里,把钱装到钱包里......

  可以把网站放在Docker中,可以把任何想得到的程序放在Docker中。

  Docker能解决的问题

  环境配置的问题

  软件开发最大的麻烦事之一,就是环境配置。

  比如一个java web应用,运行起来需要一个操作系统,操作系统之上还需要jdk、tomcat、mysql、系统环境问题、配置问题,甚至jdk、tomcat版本问题都能导致程序运行失败。

  所以Docker来了,它把操作系统、jdk、tomcat等全部放在集装箱里,再打包放到鲸鱼上,由鲸鱼给我们送到服务器上。

  在我的机器上怎么运行,在别的机器上也怎么运行,不会有任何的问题。

  一句话就是Docker解决了运行环境不一致所带来的问题。

  资源消耗的问题

  普通windows系统里运行的Linux虚拟机存在资源占用多、操作步骤冗余、启动慢等问题,但Docker就不一样。

  Docker属于Linux容器的一种封装,提供简单易用的容器使用接口,相比其他虚拟机它启动快、资源占用少、体积小,所以它是目前最流行的Linux容器解决方案。

  Docker的三个概念

  镜像(image)

  从本质上来说镜像就是一系列文件,可以包括我们应用程序的文件,也可以包括我们应用的运行环境的文件。

  容器(container)

  容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。

  仓库(docker hub)

  Docker仓库可以共享和管理Docker镜像,可以把镜像传到仓库中,也可以从仓库中把镜像拉取到目的地。

  镜像就相当于打包好的版本,镜像启动之后运行在容器中,仓库就是装存储镜像的地方。

  Centos上安装Docker

  查看是否支持

  Docker要求centos系统内核版本高于3.10,所以要输入命令查看是否支持。

  使用uname -r查看:

1-1.png


  设置仓库


$ yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

   


  安装Docker


$ yum-config-manager \
    --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

   


  安装Docker Engine-Community

$ yum install docker-ce docker-ce-cli containerd.io


  启动Docker

$ systemctl start docker


  运行hello-world

  校验Docker安装是否成功。

$ docker run hello-world

 

1-2.png


  出现如图所示即代表安装成功。

  Docker基本命令使用

  ·docker imgaes 查看本地的镜像

  ·docker pull tomcat:7.0.108 从仓库拉取镜像到本地

  ·docker run -d -p 8080:8080 tomcat:7.0.108

   -d 代表在后台运行

   -p 代表将容器的8080端口映射到主机的8080端口,前面是主机后面是容器端口

  ·docker ps  查看运行的容器

  ·docker ps -a 查看所有的容器

  ·docker exec -it xxxxx bash 进入容器

   xxxx是使用docker ps命令查看到的容器的id

1-3.png


  使用Docker部署一个简单的web应用

  拉取所需的mysql镜像

  1.使用命令:docker pull mysql:5.6 从仓库拉取镜像到本地;

  2.使用命令:

docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

  name:给容器命令为mysql。

  -e:在创建mysql容器的同时创建一个root用户,密码为123456。

  3.进入这个容器查看一下:

  使用命令:docker ps查看容器id后;

  使用命令:docker exec -it xxx bash。

1-4.png


  如上图所示代表成功。

  配置tomcat镜像中的内容

  1.使用命令进入tomcat容器:

1-5.png

  此时,在本地浏览器访问tomcat主页是访问不了的,是因为tomcat容器中存在两个webapps文件夹。

  如上图所示,所以需要把webapps.dist里的内容复制到webapps文件夹里,并删掉webapps.dist这个文件夹,此时就可以正常访问了。

  2.从本地拷贝系统部署包到tomcat容器中的webapps目录下:

  使用命令:

docker cp xxx c4d18fd1a170:/usr/local/tomcat/webapps

   

1-6.png

  3.tomcat会自动部署该部署包,配置一下系统配置文件,修改一下数据库等路径以及密码,数据库地址进入mysql容器中查看,要对应mysql容器的ip地址以及端口。

1-7.png

  如果容器中提示没有vi命令,可以使用如下命令:

apt-get update
apt-get install vim docker

  来安装。

  查看部署的系统

  直接访问虚拟机的ip地址加预设的端口号以及war包文件名即可,可以正常访问并且登录,至此,在容器中部署java web应用已全部完成。

1-8.png

  总结

  使用docker部署应用,对于测试人员来说,无疑大幅度减轻了系统环境配置的问题,以及大大节省了部署时间。

  只需要简简单单的从代码仓库拉取所需要的镜像即可完成配置,再也不用繁琐的一步一步去安装软件、安装依赖,然后一步一步配置环境,大大提高了部署工作的效率。

  使用也相对简单,由此看出,不管开发测试还是运维,绝大多数人都应该会接触到Docker,所以学Docker还是很有必要的。



作者:windfall   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 使用python3.6编写一个单元测试demo,例如:对学生Student类编写一个简单的单元测试。1、编写Student类:#!/usr/bin/env python3 # -*- coding: utf-8 -*-   class Student(object):   def __init__(self,name,score): self.name = name self.score = score def get_grade(self): if&nb...
            0 0 1432
            分享
          •   秘鲁媒体 andina 报道称,该国外交部长哈维尔?冈萨雷斯-奥拉埃切亚(Javier González-Olaechea)正式访问中国,他表示中国政府和企业都提供了更多的技术合作。  秘鲁外交部长称在参观华为公司总部和比亚迪汽车厂时所见到的景象令其印象深刻。他表示中国汽车制造商比亚迪正考虑在秘鲁建装配厂,就像在拉丁美洲其他两个国家(墨西哥、巴西)一样。▲ 巴西马瑙斯比亚迪电池工厂  据IT之家此前报道,比亚迪巴西生产基地综合体已于 3 月正式开工,一期年产能预计为 15 万辆;比亚迪墨西哥总经理在 6 月称当地工厂选址已进入最后谈判阶段,将创造约 10000 个工作岗位。▲ 比亚迪在墨西...
            0 0 427
            分享
          • 1. Charles安装官网下载安装Charles:https://www.charlesproxy.com/download/2. HTTP抓包(1)查看电脑IP地址  例如:192.168.1.169(2)设置手机HTTP代理手机连上电脑,点击“设置->无线局域网->连接的WiFi”,设置HTTP代理:服务器为电脑IP地址:如192.168.1.169端口:8888设置代理后,需要在电脑上打开Charles才能上网(3)电脑上打开Charles进行HTTP抓包手机上打开某个App或者浏览器什么的,如果不能上网,检查前面步骤是否正确点击“Allow”允许,出现手机的HT...
            1 0 4701
            分享
          • 跨浏览器测试是一种测试,需要大量的精力和时间。通过不同的浏览器,操作系统,设备,屏幕分辨率测试Web应用程序,以评估针对各种受众的Web内容呈现的过程是一项活动。特别是如果手动处理。使用Selenium进行的自动跨浏览器测试可以帮助您节省例行测试活动的时间,并帮助您缩短回归测试的时间。但是,人们很少喜欢变化。如果手动测试在您的组织中很流行,那么当您要求他们实施测试自动化时,管理层显然会提出问题。测试自动化虽然非常有益,但通常可能会证明是昂贵的,但值得吗?在说服高层管理人员的同时,您可能会发现这是一个难题。在开发Web应用程序时,将需要您提供使用Selenium进行测试自动化的有效ROI,并通过...
            0 2 2354
            分享
          •   小米本月即将发布新一代折叠屏手机小米 MIX Fold 3,还有超大屏幕的小米平板 6 Max。  up 主 @YANGER_ZONE 放出了小米 MIX Fold 3 的实拍照,并得到 @熊猫很禿然 的证实。  小米手机已经官宣,小米 MIX Fold 3 折叠屏手机将于 8 月发布,宣传标语为“徕卡影像光学新范式”,徕卡光学全焦段四摄首次在轻薄折叠屏上呈现。  从这次曝光的外观来看,小米 MIX Fold 3 采用了精致的皮革材质,后置矩阵式四摄,其中包括 3.2X 人像中焦和 5X 潜望长焦镜头,右侧则是长条状闪光灯以及徕卡影像标识。  据博主 @数码闲聊站 此前爆料,小米 MIX ...
            0 0 998
            分享
      • 51testing软件测试圈微信