美文网首页SpringCloud学习笔记
SpringCloud番外篇1之docker介绍

SpringCloud番外篇1之docker介绍

作者: 青衣敖王侯 | 来源:发表于2019-04-13 20:48 被阅读1次

      最近暂停了对SpringCloud的继续学习,是因为有人说SpringCloud脱离了docker,devops就像一道大餐没有加盐一样。有时候马不停蹄的去学习是为了想缩小与别人的差距,但是,个人觉得要学精一样东西,还是必须要学会一些辅助性或者基本的技能才行。好了,话不多说,这里就简单总结下自己学到的docker方面的内容

    1.什么是docker

      官方说docker是一个开源工程,可以将任何应用以轻量级容器的形式进行打包和发布。(有点抽象)
      其实docker可以粗糙的理解为轻量级的虚拟机,但是它又不是虚拟机。



      虚拟机是在宿主HostOS上有一个Hepervisor层上虚拟出硬件,在这个虚拟硬件上我们会安装独立的GuestOS,然后在里面运行各种各样的程序。
      docker和虚拟机不一样的是,它有一层Docker Engine,它很好的利用了Host OS里面的namespace,然后将应用程序分离,因为没有虚拟层这一层,所以它的运行速度比虚拟机快,启动成本也比虚拟机快很多,这就是docker为什么深受青睐的原因

    2.docker的架构

    docker架构

    DOCKER_HOST是我们进行docker操作的虚拟机,在这里运行了一个叫做Docker daemon的核心程序,通过它可以下载镜像,运行容器。那么我们如何与这个Docker daemon进行交互呢?通过Client的命令与之交互(很废话~)。最右边的Registry是提供镜像的地方,所有的用户都可以在这上面拉取镜像,或者是放镜像上去。


    docker架构2

    3.docker的hello world

      3.1启动docker daemon进程
      service docker start
      3.2拉取一个ubuntu镜像
      sudo docker pull ubuntu
      3.3运行ubuntu镜像,并输出一个hello docker
      docker run ubuntu echo hello docker
      大家可以想象下,如果没有docker,我们启动一个虚拟机,然后打印一个hello docker要耗费多长时间现在有了docker可以说是非常的方便。
      3.4docker images展示目前所有下载的镜像
      3.5docker ps展示docker目前运行的进程

    4.利用docker玩转Nginx

      4.1docker run -p 8080:80 -d nginx运行nginx,将80端口映射为8080端口,-d是后台运行的意思
      4.2docker cp index.html 1e3533e84086://usr/share/nginx/html将一个静态页面放入到容器中
      4.3docker stop 1e3533e84086
    当我们stop掉,再次启动nginx的时候,我们会发现之前放进去的页面失效了。
      4.4docker commit -m 'fun' ce54f745d1c3 可以通过这个命令提交我们的改动,也可以写成docker commit -m '随便写' ce54f745d1c3 nginx-fun,指定一个名字,可以通过docker images看到nginx-fun,否则看到的是none
      4.5docker rmi 120f1ee8f07b删除掉不需要的镜像
      4.6docker ps -a可以展示历史进程
      4.7docker rm ce54f745d1c3 1e3533e84086删掉历史进程(可以删除多个)

    docker命令小结1
    docker命令小结2

    5.dockerfile介绍

    之前我们通过commit创建了一个新的镜像,这里我们用dockerfile来生成新的镜像
      5.1新建一个dockerfile

    FROM ubuntu
    MAINTAINER zzm
    RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
    RUN apt-get update
    RUN apt-get install -y nginx
    COPY index.html /var/www/html
    ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
    EXPOSE 80
    

      5.2创建新镜像

    docker build -t zzm/hello-nginx .
    

      5.3运行新镜像

    docker run -d -p 80:80 zzm/hello-nginx
    
    dockerfile语法小结
    dockerfile语法小结
      详细的dockerfile语法可以见Docker Dockerfile 定制镜像

    6.volume介绍

      6.1定义:提供独立于容器之外的持久化存储
      6.2作用:我们知道docker容器里面是不会保存任何东西的,但是如果我们的容器里面用的数据库想要保存数据信息该怎么办呢?这个时候volume的作用就非常大了,通过它可以挂载容器之外的一些目录或磁盘,这样在容器之外修改了相应的内容,容器内部还是能感知到的。

    7.镜像仓库

    image.png
    与Registry之间的交互
    image.png

    8.容器app

    关于docker-compose的优缺点,大家可以看看这篇文章:
    docker compose

    image.png
    image.png

    相关文章

      网友评论

        本文标题:SpringCloud番外篇1之docker介绍

        本文链接:https://www.haomeiwen.com/subject/lnklwqtx.html