镜像和容器
镜像(Image)就是一堆只读层(read-only layer)的统一视角:
容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。
详细的说明以及 Docker 命令的理解参考:Docker 容器和镜像的区别
第一个 Dockerfile
创建一个名为 web 的目录并在里面创建初始的 Dockerfile,这个目录就是我们的构建环境(build environment),Docker 称此环境为上下文(context)。Docker 会在构建镜像时将上下文和其中的文件及目录上传到 Docker 守护进程,这样守护进程就能直接访问用户想在镜像中存储的任何代码、文件或数据。
# Version: 0.0.1
FROM ubuntu:14.04
MAINTAINER datascience "datascience@example.com"
RUN apt-get update && apt-get install -y nginx
RUN echo 'Hi, I am in your container' > /usr/share/nginx/html/index.html
EXPOSE 80
Dockerfile 由一系列指令和参数组成,指令会按顺序从上到下执行(所以需要合理安排指令的顺序)。
每条指令都会创建一个新的镜像层并提交(参考本文开始图片),大致执行流程:
- Docker 从基础