上一篇,我们正式进入了本课程第四部分 “架构篇”的学习。本篇是第一个主题 “Docker>Docker 核心架构及拆解” 的中篇。在上一篇中,我为你从较高的层次介绍了 Docker>Docker 基础的核心组件,包括 containerd 和 runc 等相关组件,知道了容器创建的一个基本的组件间的调用关系。本篇,我来为你介绍尚未介绍到的其他相关组件。
docker-proxy
我们来回忆下之前介绍过的,如何将容器的端口暴露出来。在 docker run ...
的时候,通过 -p
或者 -P
选项可以将容器内的端口暴露出来,映射到主机上。
比如,我运行一个 Nginx 的容器,并将其 80 端口映射到主机的 8765 端口上:
(MoeLove) ➜ ~ docker run --rm -d -p 8765:80 nginx
6e2597332e8d6ba74c3b0f59122743148c2a5e83be5763dc11d676abe3518f07
(MoeLove) ➜ ~ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e2597332e8d nginx "nginx -g 'daemon of…" 51 seconds ago Up 49 seconds 0.0.0.0:8765->80/tcp great_germain
(MoeLove) ➜ ~ curl -I localhost:8765
HTTP/1.1 200 OK
Server: n