• 12
  • 12
分享
  • 小白也都能听懂的Docker讲解和应用——软件测试圈
  • 曼倩诙谐 2021-07-08 10:39:40 字数 2575 阅读 1876 收藏 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软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   近日,#董明珠怒斥员工吃着碗里看着锅里#上了热搜。  董明珠在访谈中表示,她曾找员工来谈话,让他们去持有格力的股票,有的可能认为买这个没什么用,也许过两年就走了;有的买了,捞一把,最后还是走了。有的人吃着碗里还看着锅里的,绝对不会允许他在格力待下去。  在这个话题下,有接近10万位网友留言,不仅如此,这个采访在企业内部也引起了讨论。  作为企业高管及董事之一的CC认为,“吃着碗里的看着锅里”的员工明显是对企业的忠诚度不够,这样的员工不能留。  公司给员工的薪资福利根据员工的能力已充足,即“德配位”,职业规划也不错,员工依然“吃着碗里的看着锅里”,这样的员工“胃口”太大养不活,甚至不客气的说...
            0 0 1469
            分享
          •   支持人工智能的个人电脑正在缓慢但稳步地渗透市场。根据 Canalys 的最新数据,2024 年第二季度全球人工智能 PC 出货量为 880 万台。在截至 6 月 30 日的三个月期间,这相当于所有笔记本电脑和台式机出货量的 14%,虽然数量不多,但意义重大。  该市场分析公司称,在人工智能个人电脑中,60%是使用苹果公司带有神经引擎的M系列芯片的Mac电脑。Windows占其余大部分份额(39%),运行微软操作系统的AI PC连续增长127%。  其中,联想凭借 Yoga Slim 7x 和 ThinkPad T14s 等产品成为本季度领先的个人电脑供应商,惠普也凭借 Omnibook X...
            0 0 257
            分享
          •   不管是对刚毕业的大学生、工作几年的打工仔亦或者是久不入职场的老人来说,进入职场的方向都值得我们深思。  今天我就来解答下大家最常问的问题:开发和测试作为一个项目中很重要的角色,他们有什么区别呢?  薪资方面  作为初级的开发和测试人员,薪资有区别但是差的不会很多,但是随着工作年限的增长,开发和测试的薪资水平就出现了较大的差异。  一般3-5年的开发人员是比较吃香的,工资待遇方面也是非常不错的,但是作为同样一个3-5年的测试人员来讲,工资可能就只有同等经验的开发人员的2/3左右。  当然不排除测试人员非常优秀的情况,比如说在安全测试方面比较精通,在性能测试方面比较有经验,有这种更高技术水平的...
            0 0 1076
            分享
          •   作为一名初出茅庐的软件测试员,职业发展的道路的确蜿蜒曲折,面对一次次的岗位竞争,挑战一道道的面试关卡,一边带着疑惑,一边又要做出选择,只能无奈的感叹:比你优秀的人比你还努力,你有什么资格不去奋斗……  那软件测试员,你究竟该如何规划下一份工作?路该怎么走?又该如何避免测试岗位的优胜劣汰?  作为过来人,分享一下我的经验,写给对测试未来迷茫的测试从业者。  软件测试员,你有这些困惑吗?  为什么我工作5年,工资不涨;他工作5年,年薪30w+,同为测试,差距竟然这么大?  总会考虑软件测试的未来:中年危机怎么办?好担心自己能力不够,思维太局限,总是瞎担心,一点长进都没有,我能怎么办?  软件测...
            0 0 1131
            分享
      • 51testing软件测试圈微信