51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4424|回复: 1
打印 上一主题 下一主题

[原创] 小白也都能听懂的Docker讲解和应用

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:34
  • 签到天数: 1052 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-6-18 09:51:27 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    什么是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. $ yum install -y yum-utils \
    2.   device-mapper-persistent-data \
    3.   lvm2
    复制代码

      安装Docker
    1. $ yum-config-manager \
    2.     --add-repo \
    3. https://download.docker.com/linux/centos/docker-ce.repo
    复制代码


      安装Docker Engine-Community
    1. $ yum install docker-ce docker-ce-cli containerd.io
    复制代码


      启动Docker
    1. $ systemctl start docker
    复制代码


      运行hello-world
      校验Docker安装是否成功。
    1. $ docker run hello-world
    复制代码



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

      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


      使用Docker部署一个简单的web应用
      拉取所需的mysql镜像
      1.使用命令:docker pull mysql:5.6 从仓库拉取镜像到本地;
      2.使用命令:
    1. docker cp xxx c4d18fd1a170:/usr/local/tomcat/webapps
    复制代码

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

      3.进入这个容器查看一下:
      使用命令:docker ps查看容器id后;
      使用命令:docker exec -it xxx bash。


      如上图所示代表成功。

      配置tomcat镜像中的内容
      1.使用命令进入tomcat容器:


      此时,在本地浏览器访问tomcat主页是访问不了的,是因为tomcat容器中存在两个webapps文件夹。
      如上图所示,所以需要把webapps.dist里的内容复制到webapps文件夹里,并删掉webapps.dist这个文件夹,此时就可以正常访问了。
      2.从本地拷贝系统部署包到tomcat容器中的webapps目录下:
      使用命令:
    1. docker cp xxx c4d18fd1a170:/usr/local/tomcat/webapps
    复制代码



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


      如果容器中提示没有vi命令,可以使用如下命令:
    1. apt-get update
    2. apt-get install vim docker
    复制代码


      来安装。

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


      总结
      使用docker部署应用,对于测试人员来说,无疑大幅度减轻了系统环境配置的问题,以及大大节省了部署时间。
      只需要简简单单的从代码仓库拉取所需要的镜像即可完成配置,再也不用繁琐的一步一步去安装软件、安装依赖,然后一步一步配置环境,大大提高了部署工作的效率。
      使用也相对简单,由此看出,不管开发测试还是运维,绝大多数人都应该会接触到Docker,所以学Docker还是很有必要的。


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-9 14:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2021-6-21 16:34:50 | 只看该作者
    把docker想像成是个虚拟机,就好理解了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-28 02:52 , Processed in 0.063143 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表