• Docker学习总结


    Docker学习总结

    一、docker简介

      Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

    二、docker组成

      一个完整的Docker有以下几个部分组成:

    1. DockerClient客户端
    2. Docker Daemon守护进程
    3. Docker Image镜像
    4. DockerContainer容器

    三、使用docker的好处

      使用docker可以更轻松的实现部署和迁移,能保持环境的一致性。

    四、docker基本概念

    1. 镜像

        相当于一个文件系统。除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。

        镜像是分层的,前一层是后一层的基础。

    1. 容器

        容器是镜像运行时的实体,容器的实质是进程。

    1. 仓库

        集中存储、分发镜像的服务。

    五、生成镜像

    1. 选择机器作为生成镜像的机器
    2. /data/docker/daemon.js配置

        (mac有图形界面,直接在界面中配置)配置IP和端口,指明仓库地址,生成的镜像会拷贝到这里。使用其他镜像作为基础的,要指明基础镜像来源地址,例如"ampregistry:5000",表明基础镜像来自这里,ampregistry要在hosts中配置。

           3.生成镜像准备工作

        创建空白目录,再放入Dockerfile文件、需要打成镜像的文件。

        目录结构如下:

    DockerTest

    ----test

    -------- test_webboot.jar

    ---- Dockerfile

    ---- application.properties

    Dockerfile    生成镜像文件的docker配置文件,指明了基础镜像的来源、时区等环境信息、镜像要包含的文件、启动命令等。

     1 FROM ampregistry:5000/base:1.0.0          //当前镜像的基础镜像,以该镜像为基础,ip:端口/镜像名称
     2 
     3 ENV TZ Asia/Shanghai                                                   //时区、语言、编码
     4 ENV LANG zh_CN.UTF-8
     5 ENV LANGUAGE zh_CN:zh
     6 ENV LC_ALL zh_CN.UTF-8
     7 
     8 WORKDIR /opt/project
     9 
    10 ADD application.properties /opt/project/config/application.properties   //镜像包中要包含的文件,以及docker运行后文件拷贝到的目录
    11 ADD test/test_webboot.jar /opt/project/
    12 
    13 CMD ["java", "-jar", " test_webboot.jar"]                //镜像包中jar包启动命令

      4.执行生成镜像命令

        docker build -t ampregistry:5000/test:dev .

        命名规则为:名称:标签

        最后的.表示当前上下文。

    六、运行镜像

           docker run

    七、docker发放

           可以使用tar包进行部署。

    1、保存tar包

    如果想要把镜像存出到本地文件,可以使用docker save命令,例如,存出本地的刚才创建的testimage:lastest为镜像文件testimage.tar文件:

    docker images

    REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

    testimage           latest              baea98d5a437        25 minutes ago      188.3 MB

    ubuntu              latest              fa81ed084842        3 days ago          188.3 MB

    docker save –o /data/testimage.tar testimage:latest

    得到tar包后,可以拿到其他机器进行载入。

    docker load —input testimage.tar

    或者

    docker load < testimage.tar

    八、常用命令

      镜像操作:

      build     Build an image from a Dockerfile

      commit    Create a new image from a container's changes

      images    List images

      load      Load an image from a tar archive or STDIN

      pull      Pull an image or a repository from a registry

      push      Push an image or a repository to a registry

      rmi       Remove one or more images

      search    Search the Docker Hub for images

      tag       Tag an image into a repository

      save      Save one or more images to a tar archive (streamed to STDOUT by default)

      history   显示某镜像的历史

      inspect   获取镜像的详细信息

     

      容器及其中应用的生命周期操作:

      create    Create a new container (创建一个容器)      

      kill      Kill one or more running containers

      inspect   Return low-level information on a container, image or task

      pause     Pause all processes within one or more containers

      ps        List containers

      rm        Remove one or more containers (删除一个或者多个容器)

      rename    Rename a container

      restart   Restart a container

      run       Run a command in a new container (创建并启动一个容器)

      start     Start one or more stopped containers (启动一个处于停止状态的容器)

      stats     Display a live stream of container(s) resource usage statistics (显示容器实时的资源消耗信息)

      stop      Stop one or more running containers (停止一个处于运行状态的容器)

      top       Display the running processes of a container

      unpause   Unpause all processes within one or more containers

      update    Update configuration of one or more containers

      wait      Block until a container stops, then print its exit code

      attach    Attach to a running container

      exec      Run a command in a running container

      port      List port mappings or a specific mapping for the container

      logs      获取容器的日志 

  • 相关阅读:
    userdir 希望用户能够以http://X.X.X.X/~username 方式来访问自己的网页
    var_export() 函数的使用
    mb_detect_encoding — 检测字符的编码
    详解PHP fsockopen的使用方法
    jQuery 返回顶部
    Mysql函数
    sql where 1=1和 0=1 的作用
    Numpy基础学习(三)
    Numpy 中的矩阵
    Numpy数组的全通用函数
  • 原文地址:https://www.cnblogs.com/leanfish/p/8718344.html
Copyright © 2020-2023  润新知