/images/avatar.png

半生戎码

Docker Dockerfile

什么是 Dockerfile

Dockerfile 是一个文本文件,记录了镜像构建的所有步骤。

Dockerfile 构建镜像的过程

  1. 从 base 镜像运行一个容器。
  2. 执行一条指令,对容器做修改。
  3. 执行类似 docker commit 的操作,生成一个新的镜像层。
  4. Docker 再基于刚刚提交的镜像运行一个新容器。
  5. 重复 2 ~ 4 步,直到 Dockerfile 中的所有指令执行完毕。

使用 Dockerfile 定制镜像

这里仅讲解如何运行 Dockerfile 文件来定制一个镜像,具体 Dockerfile 文件内指令详解,将在下一节中介绍,这里你只要知道构建的流程即可。

Docker 网络互通

完整示例请移步 Github

docker 网卡介绍

$ docker network ls
NETWORK ID     NAME                                         DRIVER    SCOPE
60ca2bcc3925   bridge                                       bridge    local
4fba5fc9c823   host                                         host      local
15b262a2e321   none                                         null      local
  • bridge:默认网卡,类似于 VMware 的 NAT 模式,如果需要访问容器内部的端口需要进行端口映射。
  • host:直接使用主机网络,类似于 VMware 的桥接模式,访问容器内部的端口时不需要进行端口映射,直接访问即可,但是可能会与主机的端口号冲突。
  • none:禁止所有联网,没有网络驱动。

docker 自定义网络

使用 docker network create custom-local-net 创建一个名为 custom-local-net 的 Docker 网卡,这个网卡是基于 bridge 模式的,但是和 bridge 模式又有一定的区别。