• 工具系列 | Docker基本概念


    1、什么是docker?

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

    2、服务模式

     C/S模式。Docker是一个客户端-服务端(c/s)的架构程序。docker是以客户端(client)和守护进程(server)来运行。

    3、通信方式

    Unix的socket套接字,如:unix:///var/run/docker/sock(默认连接方式)

    4、完整的Docker组成

    (1)Docker Client客户端
    (2)Docker Daemon服务端(守护进程)
    (3)Docker Image 镜像
    (4)Docker Container 容器

    5、Docker 仓库(hub)

    仓库(Repository)是集中存放镜像的地方。目前 Docker 官方维护了一个公共仓库 dDocker Hub。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。

    6、镜像(image)

    可理解为一个面向Docker引擎的只读模板,包含了文件系统。如:一个镜像可以只包含一个完整的操作系统环境,也可以安装了其他的应用程序。通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像。

    7、镜像构建

    即创建一个镜像,它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。默认是从 Docker Hub 公共镜像源下载。

    dockerfile 的作用是从无到有的构建镜像。它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。Dockerfile  为 docker build 命令准备的,用于构建一个自定义的 image 镜像。

    docker-compose 里也可以用来实时 build。docker-compose.yml  为 docker-compose 准备的脚本,可以同时管理多个镜像,多个镜像之间可以使用官方 image 、和自定义的Dockerfile 构建的 image混合编排容器以及各种网络端口定义、储存空间定义等。

    如果 image 镜像是从 docker hub registry 拉取下来的,那么 Dockerfile 就不需要;如果镜像是需要 build 的,那就需要提供 Dockerfile .

    Dockerfile 就是记录了一个镜像的制作过程。把脚本把安装过程全部记录下来,再次安装的时候,执行脚本就行了。只要有了 Dockerfile 脚本文件(shell脚本), 只需执行 docker build . 就能制作镜像,而且 Dockerfile 就是文本文件,修改也很方便。

    8、容器启动

    容器最终运行起来是通过拉取构建好的镜像,通过一系列运行指令(如端口映射、外部数据挂载、环境变量等)来启动服务的。

    (1)针对单个容器,这可以通过 docker run 来运行。

    (2)针对多个容器,这可以通过 docker-compose up 来运行。

    9、多个容器的运行

    而如果涉及多个容器的运行(如服务编排)就可以通过 docker-compose 来实现,它可以轻松的将多个容器作为 service 来运行(当然也可仅运行其中的某个),并且提供了 scale (服务扩容) 的功能。

    docker-compose 是编排容器的。例如,你有一个php镜像,一个mysql镜像,一个nginx镜像。如果没有docker-compose,那么每次启动的时候,你需要敲各个容器的启动参数,环境变量,容器命名,指定不同容器的链接参数等等一系列的操作,相当繁琐。

    而用了docker-composer之后,你就可以把这些命令一次性写在docker-composer.yml文件中,以后每次启动这一整个环境(含3个容器)的时候,你只要敲一个docker-composer up命令就可以了

    docker-compose 是解决项目需要哪些镜像、每个镜像怎么配置、要挂载哪些 volume、映射哪些端口 等等信息,都包含在 docker-compose.yml 里。

    要启动服务,只需要 docker-compose up 就行,停止也只需要 docker-compse stop/down

    Dockerfile 与 docker-compse.yml 文件的区别

    Dockerfile 记录单个镜像的构建过程, docker-compse.yml 记录一个编排容器(多个镜像)的构建过程。

  • 相关阅读:
    当Java遇到XML 的邂逅+dom4j
    idea集成项目管理工具 --- Maven 并且【配置tomcat】
    C#连接操作MySQL数据库详细步骤 帮助类等(二次改进版)
    MySQL 中国省市区SQL表数据
    LeetCode-28. 实现 strStr()
    LeetCode-66 加一
    头插法将单链表原地逆转
    LeetCode:27 移除元素
    LeetCode:26删除有序数组中相同的数.(Python3)
    LeetCode-21 有序链表的合并
  • 原文地址:https://www.cnblogs.com/tinywan/p/12079601.html
Copyright © 2020-2023  润新知