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_conf\config\php7_nginx:/webser/tengine/conf/vhost
      - G:\docker_conf\config\php7.ini:/webser/php7/etc/php.ini
      - G:\docker_conf\config\nginx.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 指定为只读。

posted @ 2019-09-26 15:10  Colorful_coco  阅读(162)  评论(0编辑  收藏  举报