Docker 概述

系列文章目录

Docker 概述
Docker getting started



前言

Docker是为开发、运行应用而生的开放的平台。Docker使你可以将应用从依赖中分离,使你可以快速的释放软件。有了Docker你可以像管理管理你的应用一样管理依赖。同通过docker,你可以快速完成写代码、运行、分发等一些列操作。


Docker平台

Docker提供一种称为容器的弱隔离环境,再此环境中可以打包和运行应用。隔离和安全的环境允许你在同一主机上同时运行多个容器。容器是轻量级的,不依赖主机环境,并且它包含运行应用的所有依赖。即便是在开发中,容器也支持轻松多人分享。

Docker 提供管理容器生命周期的工具和平台:

  • 使用容器开发应用和及组件
  • 容器是分发、测试应用的一个单元
  • 准备就绪后,将应用程序部署到生产环境中,作为容器或协调服务。无论您的生产环境是本地数据中心、云提供商还是两者的混合,这都是一样的。

用Docker可以做什么

快速连续交付应用

响应式部署和扩展

轻量级的虚拟机
Docker重量轻,速度快。它为基于虚拟机管理程序的虚拟机提供了一种可行、经济高效的替代方案,因此您可以使用更多的服务器容量来实现业务目标。Docker非常适合高密度环境和中小型部署,因为您需要用更少的资源做更多的事情。

Docker架构

Docker使用 Client-Server架构。Docker客户端与Docker守护进程对话,后者负责构建、运行和分发Docker容器。Docker客户端和守护程序可以在同一系统上运行,也可以将Docker客户端连接到远程Docker守护程序。Docker客户端和守护进程通过UNIX套接字或网络接口使用REST API进行通信。另一个Docker客户端是Docker Compose,它允许您处理由一组容器组成的应用程序
在这里插入图片描述

The Docker daemon

监听Docker API请求,管理Docker对象。
与其他守护进程通讯管理Docker服务。

The Docker client

用户通过Docker客户端与Docker 交互

Docker Desktop

它是个安装程序、程序管理器。
Docker Desktop includes the Docker daemon (dockerd), the Docker client (docker), Docker Compose, Docker Content Trust, Kubernetes, and Credential Helper. For more information, see Docker Desktop.

Docker registries

A Docker registry存储Docker镜像。Docker Hub是一个公共的registry,每个人都可以使用,Docker默认配置为在Docker Hub上寻找镜像。

当使用docker pull 或者 docker run 命令时,image会从你配置的registry上拉取。docker push会镜像推送到registry。

Docker objects

Images

镜像是一个可读的模板,它用于创建Docker 容器。
通常,镜像是根据另一镜像定制而成。例如在ubuntu镜像的基础上安装一些库、配置一些环境等。

创建镜像需要Dockerfile文件,它包含一些简单的创建步骤语法。Dockerfile中的每一行都会在镜像中创建一层。当改变Dockerfile并且rebuild镜像时,只有被改变的层会rebuild。这使得镜像so lightweight, small, and fast, when compared to other virtualization technologies.

Containers

容器是镜像的可运行实例(个人理解有些像面向对象中的类和实例)。通过DockerAPI or CLI可create, start, stop, move, or delete 容器。可以将容器连接到一个或多个网络,将存储连接到容器,甚至可以根据其当前状态创建新映像。

默认情况下容器与其他容器、主机相对隔离。可以控制容器的网络、存储或其他底层子系统与其他容器或主机的隔离程度。

容器由镜像以及在启动时的配置项定义。容器一旦被移除,任何未被存储的改变会丢失。

Example docker runcommand
以下命令运行一个ubuntu容器,以交互方式连接到本地命令行会话,并运行/bin/bash。

$ docker run -i -t ubuntu /bin/bash

默认配置下,当运行次命令时:

  1. 如果本地没有ubuntu镜像,Docker自动从registry中拉取镜像(自动执行docker pull ubuntu命令)。

  2. Docker自动创建一个容器。

  3. Docker为容器分配一个读写文件系统,作为其最后一层。这允许正在运行的容器在其本地文件系统中创建或修改文件和目录。

  4. Docker创建会一个网络接口来将容器连接到默认网络,包括为容器分配IP地址。默认情况下,容器可以使用主机的网络连接连接到外部网络。

  5. Docker启动容器并执行/bing/bash。因为容器是以交互式运行(-i)并且附着在终端上的(-t),可以在终端中直接与容器交互。

  6. 当输入exit时,容器stops但没有removed。可以再次start或remove

相关技术

Docker用go编写,用到了linux内核的特性。通过namespaces提供被称为容器的隔离的工作空间。当运行容器时,Docker创建了一系列的namespaces

这些名称空间提供了一层隔离。容器的每个方面都在一个单独的命名空间中运行,其访问权限仅限于该命名空间。


总结

docker 像一个轻量化的虚拟机。
用户通过client与docker进行交互。
从registry中pull镜像,通过镜像创建容器,应用运行在容器中。

简单地说,容器是计算机上的沙盒进程,与主机上的所有其他进程隔离。这种隔离利用了内核名称空间和cgroups,这些特性在Linux中已经存在了很长时间。Docker致力于使这些功能易于接近和使用。总而言之,容器:

  • 镜像的可运行实例。可以利用Docker API创建、开始、停止、移动、删除容器。
  • 可运行在本地机、虚拟机和云上。
  • 小巧便捷,可运行在任何OS上。
  • 与其他容器隔离。

https://docs.docker.com/get-started/overview/
docker 入门

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值