Easton's Blog Easton's Blog
首页
  • 编程语言

    • Python
  • 框架

    • Django
  • Mdn (opens new window)
  • HTML
  • CSS
  • JavaScript
  • Mysql
  • PostgreSQL
  • Elasticsearch
  • MongoDB
  • Redis
  • 服务器命令
  • Docker
  • GIT
  • 摄影
  • 草稿
  • 归类方式

    • 分类
    • 标签
    • 归档
  • 关于博客

    • 博客教程
    • 友情链接
    • 关于
导航站
GitHub (opens new window)

Easton Yang

爱生活😊爱学习
首页
  • 编程语言

    • Python
  • 框架

    • Django
  • Mdn (opens new window)
  • HTML
  • CSS
  • JavaScript
  • Mysql
  • PostgreSQL
  • Elasticsearch
  • MongoDB
  • Redis
  • 服务器命令
  • Docker
  • GIT
  • 摄影
  • 草稿
  • 归类方式

    • 分类
    • 标签
    • 归档
  • 关于博客

    • 博客教程
    • 友情链接
    • 关于
导航站
GitHub (opens new window)
  • 服务器命令

  • Docker

    • Docker介绍
      • Docker 架构
        • The Docker daemon
        • The Docker client
        • Docker registries
        • Images
        • Containers
      • Docker 底层技术
    • Docker常用命令
    • Docker搭建图片服务器
  • 服务器
  • Docker
eastonyangxu
2023-05-11
目录

Docker介绍

Docker 官网 (opens new window) | Docker 下载地址 (opens new window) | Docker 概述 (opens new window)

Docker 介绍

Docker 是一个用于开发、发布和运行应用程序的开放平台。Docker 使您能够将应用程序从基础设施中分离出来,以便快速交付软件。使用 Docker,您可以像管理应用程序一样管理基础架构。通过利用 Docker 的方法快速交付、测试和部署代码,您可以显著减少编写代码和在生产环境中运行代码之间的延迟。

# Docker 架构

Docker 使用 客户端-服务器架构。Docker 客户端与 Docker 守护进程进行对话,该守护进程完成了构建,运行和分发 Docker 容器的繁重工作。Docker 客户端和守护程序可以 在同一系统上运行,或者您可以将 Docker 客户端连接到远程 Docker 守护程序。Docker 客户端和守护程序在 UNIX 套接字或网络接口上使用 REST API 进行通信。另一个 Docker 客户端是 Docker Compose,它使您可以处理由一组容器组成的应用程序。

# The Docker daemon

Docker 守护程序(Dockerd)侦听 Docker API 请求并管理 Docker 对象,例如图像,容器,网络和卷。守护程序还可以与其他守护程序通信以管理 Docker 服务。

# The Docker client

Docker 客户端(Docker)是许多 Docker 用户与 Docker 交互的主要方式。当您使用诸如之类的命令时 Docker run,客户端会将这些命令发送到 Dockerd,以执行这些命令。该 Docker 命令使用 Docker API。Docker 客户端可以与多个守护程序通信。

# Docker registries

Docker 注册表存储 Docker 镜像。Docker Hub (opens new window) 是任何人都可以使用的公共注册表,并且默认情况下,Docker 已配置为在 Docker Hub (opens new window) 上查找镜像。您甚至可以运行自己的私人注册表。

# Images

Image 镜像 是一个只读模板,带有创建 Docker 容器的说明。通常,一个镜像基于另一个镜像,并进行一些额外的定制。例如,您可以构建一个基于 ubuntu 的镜像,然后安装 Apache web 服务器和您的应用程序,以及使应用程序运行所需的配置细节。

您可以创建自己的镜像,也可以只使用其他人创建并发布在注册表中的镜像。要构建自己的镜像,需要创建一个 Dockerfile,该文件使用简单的语法来定义创建和运行镜像所需的步骤。Dockerfile 中的每条指令都会在镜像中创建一个层。当你改变 Dockerfile 并重建镜像时,只有那些已经改变的层才会被重建。与其他虚拟化技术相比,这是镜像如此轻量级、小巧和快速的部分原因。

# Containers

Containers 容器 是镜像的可运行实例。您可以使用 Docker API 或 CLI 创建、启动、停止、移动或删除容器。您可以将容器连接到一个或多个网络,将存储附加到其上,甚至可以根据其当前状态创建新镜像。

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

容器是由它的镜像以及在创建或启动它时提供给它的任何配置选项定义的。当容器被删除时,任何未存储在持久存储中的状态更改都会消失。

docker run 指令案例。下面的命令运行一个ubuntu容器,以交互方式连接到本地命令行会话,并运行/bin/bash

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

当您运行此命令时,会发生以下情况(假设您使用默认的注册表配置):

  1. 如果你在本地没有 ubuntu 镜像,Docker 会从你配置的注册表中提取它,就像你手动运行 docker pull ubuntu 一样。
  2. Docker 创建一个新容器,就像您手动运行 docker container create 命令一样。
  3. Docker 为容器分配一个读写文件系统,作为它的最后一层。这允许运行中的容器在其本地文件系统中创建或修改文件和目录。
  4. Docker 创建了一个网络接口,将容器连接到默认网络,因为您没有指定任何网络选项。这包括为容器分配一个 IP 地址。默认情况下,容器可以使用主机的网络连接连接到外部网络。
  5. Docker 启动容器并执行 /bin/bash 由于容器以交互方式运行并连接到您的终端(由于 -i 和 -t 标志),因此您可以使用键盘提供输入,同时将输出记录到您的终端。
  6. 当输入 exit 终止 /bin/bash 命令时,容器会停止,但不会被移除。您可以重新启动或删除它。

# Docker 底层技术

Docker 是用 Go 编程语言 (opens new window) 编写的,并利用了 Linux 内核的几个特性来实现其功能。Docker 使用 namespaces 的技术来提供容器的隔离工作空间。当你运行一个容器时,Docker 会为这个容器创建一组命名空间。

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

#Docker
上次更新: 2023/08/08, 20:00:46
linux性能分析
Docker常用命令

← linux性能分析 Docker常用命令→

最近更新
01
攻略制作要点
07-18
02
摄影主题拍摄
07-18
03
延时摄影剧本
07-18
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Easton Yang | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式