zoukankan      html  css  js  c++  java
  • docker

    Docker是一款针对程序开发人员和系统管理员来开发、部署、运行应用的一款虚拟化平台。

    参考:http://www.dockerinfo.net/document

    http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

         Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。Docker 是一个轻量级的容器,因此它可以在很短的时间内启动和关闭。当你需要的时候,你可以启动多个容器引擎,并且在不需要使用他们的时候,可以将他们全部关闭。

    1、images镜像 

      Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板,Docker 根据 image 文件生成容器的实例。在 Docker 的术语里,一个只读层被称为镜像,一个镜像是永久不会变的。由于 Docker 使用一个统一文件系统,Docker 进程认为整个文件系统是以读写方式挂载的。 但是所有的变更都发生顶层的可写层,而下层的原始的只读镜像文件并未变化。由于镜像不可写,所以镜像是无状态的。

      image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件,而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不是从零开始制作。为了方便共享,image 文件制作完成后,可以上传到网上的仓库。Docker 的官方仓库 Docker Hub 是最重要、最常用的 image 仓库。

    获取镜像:可以使用 docker pull 命令来从仓库获取所需要的镜像

    列出本地镜像:使用 docker images 显示本地已有的镜像

    2、Docker Compose

    Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。Mac 和 Windows 在安装 docker 的时候,会一起安装 docker compose。

    Compose 命令说明

    执行 docker-compose [COMMAND] --help 查看具体某个命令的使用说明。

     --version 打印版本并退出。-f, --file FILE 使用特定的 compose 模板文件,默认为 docker-compose.yml

    up:构建,(重新)创建,启动,链接一个服务相关的容器。链接的服务都将会启动,除非他们已经运行。默认情况, docker-compose up 将会整合所有容器的输出,并且退出时,所有容器将会停止。如果使用 docker-compose up -d ,将会在后台启动并运行所有的容器。

     根据docker-compose-lnmp.yaml模板文件创建容器

    docker-compose.yaml配置文件示例如下:

    version: '2'
    services:
      lnmp:
        image: xxx
        restart: always
        container_name: my_lnmp
        volumes:
          - G:2018_svn_projects:/webser/www/svn_code
          - G:2018_git_projects:/webser/www/git_code
          - G:docker_confconfigphp7_nginx:/webser/tengine/conf/vhost
          - G:docker_confconfigphp7.ini:/webser/php7/etc/php.ini
          - G:docker_confconfig
    ginx.conf:/webser/tengine/conf/nginx.conf
        ports:
          - 80:80
        extra_hosts:
          - "account.stnts.com:10.0.6.13"

    YAML 模板文件

    默认的模板文件是 docker-compose.yml,其中定义的每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。

    3、docker容器

    启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。

    启动容器:可以利用 docker start 命令,直接将一个已经终止的容器启动运行;docker restart 命令会将一个运行态的容器终止,然后再重新启动它

    查看容器信息:docker ps( -a)

    终止容器:可以使用 docker stop 来终止一个运行中的容器

     4、数据卷volumes

    数据卷是一个可供一个或多个容器使用的特殊目录。

    挂载一个主机目录作为数据卷:这个功能在进行测试的时候十分方便,比如用户可以放置一些程序到本地目录中,来查看容器是否正常工作。本地目录的路径必须是绝对路径,如果目录不存在 Docker 会自动为你创建它。

    挂载一个本地主机文件作为数据卷:也可以从主机挂载单个文件到容器中

    Docker 挂载数据卷的默认权限是读写,用户也可以通过 :ro 指定为只读。

  • 相关阅读:
    leetcode 33. Search in Rotated Sorted Array
    leetcode 32. Longest Valid Parentheses
    leetcode 28. Implement strStr()
    leetcode 27. Remove Element
    leetcode 26. Remove Duplicates from Sorted Array
    leetcode 24. Swap Nodes in Pairs
    leetcode 22. Generate Parentheses
    树莓派的频率管理和热控制
    sql执行insert插入一条记录同时获取刚插入的id
    全程直播个人博客重构过程,采用springboot+dubbo+jpa技术栈。
  • 原文地址:https://www.cnblogs.com/colorful-coco/p/11583904.html
Copyright © 2011-2022 走看看