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 指定为只读。

  • 相关阅读:
    POJ 2739:Sum of Consecutive Prime Numbers(Two pointers)
    POJ 2566:Bound Found(Two pointers)
    Codeforces 528D Fuzzy Search(FFT)
    挑战程序设计竞赛 3.1 不光是查找值!“二分搜索”
    POJ 3484 Showstopper(二分答案)
    POJ 1759 Garland(二分答案)
    POJ 3662 Telephone Lines(二分答案+SPFA)
    POJ 3579 Median(二分答案+Two pointers)
    POJ 3111 K Best(二分答案)
    POJ 2976 Dropping tests(二分答案)
  • 原文地址:https://www.cnblogs.com/colorful-coco/p/11583904.html
Copyright © 2011-2022 走看看