封面

版权信息

版权

版权声明

内容提要

前言

NOTE

本篇介绍Docker公司(Docker, Inc.)、Docker(Moby)项目、什么是OCI、为什么需要容器

2022-03-10 17:31:26

NOTE

TLS、RBAC、与AD的集成,以及备份

2022-03-10 17:31:48

资源与支持

第一部分 Docker概览

第2章 走进Docker

第3章 Docker安装

第4章 纵观Docker

NOTE

● 运维(Ops)视角。● 开发(Dev)视角。

2022-06-02 14:09:39

NOTE

读者只需一个可连接到互联网的Docker主机

2022-06-02 14:10:24

NOTE

Play With Docker(PWD)

2022-06-02 14:10:44

NOTE

Docker客户端和Docker daemon(有时也被称为“服务端”或者“引擎”)。

2022-06-02 14:23:16

NOTE

使用Linux默认安装时,客户端与daemon之间的通信是通过本地IPC/UNIX Socket完成的(/var/run/docker.sock);在Windows上是通过名为npipe:////./pipe/docker_engine的管道(pipe)完成的

2022-06-02 14:23:30

NOTE

docker version命令来检测客户端和服务端是否都已经成功运行,并且可以互相通信

2022-06-02 14:46:08

NOTE

如果加上sudo之后命令正常运行,那么读者需要将当前用户加入到docker用户组,或者给本书后面的命令都加上sudo前缀。

2022-06-02 14:53:32

NOTE

OS文件系统和应用的对象

2022-06-02 15:05:35

NOTE

虚拟机模板本质上是处于关机状态的虚拟机

2022-06-02 15:06:13

NOTE

在Docker世界中,镜像实际上等价于未运行的容器。如果读者是一名开发者,可以将镜像比作类(Class)。

2022-06-02 15:06:21

NOTE

Windows Nano Server

2022-06-02 15:09:58

NOTE

用户可以通过引用镜像的ID或名称来使用镜像

2022-06-02 15:10:20

NOTE

这是因为-it参数会将Shell切换到容器终端——现在已经位于容器内部了!

2022-06-02 15:10:48

NOTE

在容器内部运行ps命令查看当前正在运行的全部进程

2022-06-02 15:11:20

NOTE

这是由 Windows 操作系统工作方式决定的

2022-06-02 15:12:19

NOTE

2022-06-02 15:14:50

NOTE

Ctrl-PQ

2022-06-02 15:23:15

NOTE

执行docker container exec命令,可以将Shell连接到一个运行中的容器终端。

2022-06-02 15:23:32

NOTE

通过docker container stop和docker container rm命令来停止并杀死容器。

2022-06-02 15:24:26

第二部分 Docker技术

第6章 Docker镜像

NOTE

镜像可以理解为一种构建时(build-time)结构,而容器可以理解为一种运行时(run-time)结构

2022-03-10 17:34:10

NOTE

Docker镜像通常不会包含6个不同的Shell让读者选择——通常Docker镜像中只有一个精简的Shell,甚至没有Shell。镜像中还不包含内核——容器都是共享所在Docker主机的内核。所以有时会说容器仅包含必要的操作系统(通常只有操作系统文件和文件系统对象)

2022-03-10 17:34:38

第7章 Docker容器

第8章 应用的容器化

第9章 使用Docker Compose部署应用

NOTE

Docker Compose,它能够在Docker节点上,以单引擎模式(Single-Engine Mode)进行多容器应用的部署和管理。

2022-06-02 15:33:28

NOTE

Swarm模

2022-06-02 15:33:35

NOTE

通过一个声明式的配置文件描述整个应用,从而使用一条命令完成部署

2022-06-02 15:34:04

NOTE

Fig

2022-06-02 15:34:31

NOTE

Orchard公司

2022-06-02 15:34:34

NOTE

Fig是一个基于Docker的Python工具,允许用户基于一个YAML文件定义多容器应用,从而可以使用fig命令行工具进行应用的部署。Fig还可以对应用的全生命周期进行管理

2022-06-02 15:34:53

NOTE

Docker for Windows, DfW

2022-06-02 15:36:59

NOTE

YAML是JSON的一个子集,因此也可以使用JSON

2022-06-02 15:37:34

NOTE

它包含4个一级key:version、services、networks、volumes。

2022-06-02 16:26:29

NOTE

version是必须指定的,而且总是位于文件的第一行。它定义了Compose文件格式(主要是API)的版本。建议使用最新版本。

2022-06-02 16:26:39

NOTE

Docker Compose会创建bridge网络。这是一种单主机网络,只能够实现同一主机上容器的连接。当然,也可以使用driver属性来指定不同的网络类型

2022-06-02 16:27:46

NOTE

定义了两个服务,一个名为counter-net的网络和一个名为counter-vol的卷

2022-06-02 16:28:40

NOTE

Docker Compose会将每个服务部署为一个容器,并且会使用key作为容器名字的一部分

2022-06-02 16:29:01

NOTE

指定Docker将容器内(-target)的5000端口映射到主机(published)的5000端口

2022-06-02 16:29:31

NOTE

综上,Docker Compose会调用Docker来为web-fe服务部署一个独立的容器。该容器基于与Compose文件位于同一目录下的Dockerfile构建的镜像。基于该镜像启动的容器会运行app.py作为其主程序,将5000端口暴露给宿主机,连接到counter-net网络上,并挂载一个卷到/code。

2022-06-02 16:30:40

NOTE

由于两个服务都连接到counter-net网络,因此它们可以通过名称解析到对方的地址。

2022-06-02 16:31:17

NOTE

默认情况下,docker-compose up会查找名为docker-compose.yml或docker-compose.yaml的Compose文件。如果Compose文件是其他文件名,则需要通过-f参数来指定。

2022-06-02 16:31:51

第10章 Docker Swarm

第11章 Docker网络

NOTE

容器网络模型(CNM)

2022-03-10 17:52:11

第12章 Docker覆盖网络

第13章 卷与持久化数据

NOTE

如果希望自己的容器数据保留下来(持久化),则需要将数据存储在卷上。卷与容器是解耦的,从而可以独立地创建并管理卷,并且卷并未与任意容器生命周期绑定。最终效果即用户可以删除一个关联了卷的容器,但是卷并不会被删除

2022-03-10 17:39:31

NOTE

通常与微服务挂钩的词有暂时以及无状态。所以,微服务就是无状态的、临时的工作负载,同时容器即微服务

2022-03-12 14:41:31

第14章 使用Docker Stack部署应用

第15章 Docker安全

第16章 企业版工具

第17章 企业级特性

附录A 安全客户端与daemon的通信

附录B DCA考试

附录C 延伸