Docker入门介绍

1. Docker

在这里插入图片描述

Docker是一个开发平台,用于开发应用、交付应用、运行应用。

Docker允许用户将基础设施中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。

Docker容器与虚拟机类似,但两者的原理不同。容器是将操作系统层虚拟化,虚拟机是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。容器更多的用于软件的一个标准化单元。

由于容器的标准化,因此它可以部署到任何一个地方。

Docker利用Linux核心中的资源分离机制,例如cgroups,以及Linux核心名字空间(namespaces),来创建独立的容器。

2. 基础架构

Docker引擎

Docker引擎是一个服务端-客户端结构的应用,主要有这些不好:Docker守护进程、Docker Engine API,Docker客户端。

  • Docker守护进程(也叫dockerd),是一个持久化的进程,用户管理容器。守护进程会监听Docker Engine API的请求。
  • Docker Engine API,是用于与Docker守护进程交互用的API。
  • Docker客户端,也叫docker,大部分用户与Docker交互的主要方式。用户通过客户端将命令发送给守护进程。

Docker注册中心

Docker注册中心(Docker registry)是用于存储Docker的镜像。

对象

Docker的对象是指Images、Containers、Networks、Volumes、Plugins等等。

  • 容器 是镜像的可运行的实例。容器可通过API或CLI(命令行)进行操控;
  • 镜像是一个只读模板,用于指示创建容器。
  • 服务允许用户跨越不同的Docker守护进程的情况下增加容器,并将这些容器分成管理者和工作者。

3. 文件格式

Docker有两种文件格式,Dockerfile 和 Compose file。Dockerfile定义了单个容器的内容和启动时候的行为。Compose file定义了一个多容器应用。

Dockerfile

Docker可以依照Dockerfile的内容,自动化地构建镜像。Dockerfile是包含用户想要如何构建镜像的所有命令的文本。

FROM ubuntu:18.04
COPY ./app
RUN make /app
CMD python /app/app.py

关键词:

  • RUN. RUN 会在当前镜像的顶层上添加新的一层(layer),并在该层上执行命令,执行结果将会被提交。提交后的结果将会用于Dockerfile的下一步。
  • ENTRYPOINT,入口点。ENTRYPOINT允许你配置容器,使之成为可执行程序。即,ENTRYPOINT允许你为容器增加一个入口点。
  • CMD用于为已创建的镜像提供默认的操作,当不想要用默认操作时候,可用docker run IMAGE[:TAG|@DIGEST][COMMAND]进行替换。

Compose文件

Compose文件是一个YAML文件,定义了服务、网络、卷。

  • **服务(service)**定义各容器的配置,定义内容将命令行参数的方式传给docker run命令。
  • 网络(network),将定义内容给docker network create命令。
  • 卷(volume),将定义内容传给docker volume create命令。

docker run命令中有一些选项,和Dockerfile文件中的指令效果一样(如:CMD,EXPOSE,VOLUME,ENV)。

Compose文件可使用Shell变量(Variable)。

4. 网络

Brige

在Docker里,网桥网络使用的是软件形式的网桥。使用相同的网桥的容器进入该网络,而非该网络的容器刷故无法接入。

bridge 是网桥驱动,是Docker默认的网络驱动(接口名为 docker0

  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页

打赏

rosefunR

你的赞赏是我创作的动力!

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者