diff --git a/install/mac.md b/install/mac.md index 25f80c5..e29eadb 100644 --- a/install/mac.md +++ b/install/mac.md @@ -42,7 +42,7 @@ $ brew install --cask docker ```bash $ docker --version -Docker version 29.1.4, build 048e46e +Docker version 26.1.1, build 4cf5afa ``` 如果 `docker version`、`docker info` 都正常的话,可以尝试运行一个 [Nginx 服务器](https://hub.docker.com/_/nginx/): diff --git a/introduction/_images/docker-on-linux.png b/introduction/_images/docker-on-linux.png new file mode 100644 index 0000000..3c8c0ee Binary files /dev/null and b/introduction/_images/docker-on-linux.png differ diff --git a/introduction/what.md b/introduction/what.md index 1f03760..f771960 100644 --- a/introduction/what.md +++ b/introduction/what.md @@ -6,7 +6,7 @@ **Docker** 使用 `Google` 公司推出的 [Go 语言](https://golang.google.cn/) 进行开发实现,基于 `Linux` 内核的 [cgroup](https://zh.wikipedia.org/wiki/Cgroups),[namespace](https://en.wikipedia.org/wiki/Linux_namespaces),以及 [OverlayFS](https://docs.docker.com/storage/storagedriver/overlayfs-driver/) 类的 [Union FS](https://en.wikipedia.org/wiki/Union_mount) 等技术,对进程进行封装隔离,属于 [操作系统层面的虚拟化技术](https://en.wikipedia.org/wiki/Operating-system-level_virtualization)。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 [LXC](https://linuxcontainers.org/lxc/introduction/),从 `0.7` 版本以后开始去除 `LXC`,转而使用自行开发的 [libcontainer](https://github.com/docker/libcontainer),从 `1.11` 版本开始,则进一步演进为使用 [runC](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 -![Docker 架构](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/media/docker-on-linux.png) +![Docker 架构](./_images/docker-on-linux.png) > `runc` 是一个 Linux 命令行工具,用于根据 [OCI容器运行时规范](https://github.com/opencontainers/runtime-spec) 创建和运行容器。 diff --git a/network/README.md b/network/README.md index 336aa74..b081d5a 100644 --- a/network/README.md +++ b/network/README.md @@ -6,7 +6,7 @@ 当创建一个 Docker 容器的时候,同时会创建了一对 `veth pair` 接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 `eth0`;另一端在本地并被挂载到 `docker0` 网桥,名称以 `veth` 开头(例如 `vethAQI2QT`)。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker 就创建了在主机和所有容器之间一个虚拟共享网络。 -![Docker 网络](./_images/network.png) + ## 用户自定义网络 diff --git a/swarm_mode/overview.md b/swarm_mode/overview.md index 0c7be41..e69c192 100644 --- a/swarm_mode/overview.md +++ b/swarm_mode/overview.md @@ -4,6 +4,9 @@ 使用 `Swarm` 集群之前需要了解以下几个概念。 +> [!NOTE] +> 虽然 Swarm 是 Docker 引擎内置的集群管理工具,但在大规模生产环境中,Kubernetes 已经成为容器编排的事实标准。如果您主要是为了学习容器编排,建议重点关注 Kubernetes 章节。 + ## 节点 运行 Docker 的主机可以主动初始化一个 `Swarm` 集群或者加入一个已存在的 `Swarm` 集群,这样这个运行 Docker 的主机就成为一个 `Swarm` 集群的节点 (`node`) 。