下载一个nginx镜像

docker pull nginx

运行以下

docker run --name my_nginx -d -p 8080:80 nginx

本机访问

127.0.0.1:8080

编写 dockerfile 文件

在本机创建一个空白目录,用来存放 DockerFile 文件,或者你随意找个地方放

一个简单的 dockerfile 文件填写样式

文件名 /root/dockerfile/nginx_v3
## 拉取Nginx镜像
FROM nginx

## 将 echo 后的内容写入到容器内的相应目录下的相应文件中
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

构建镜像

docker build -t nginx:v3 .

-f 指定文件
docker build -f /root/dockerfile/nginx_v3 -t nginx:v4 .

查看本地镜像

查看本地镜像,发现多了一个 nginx:v3 的

运行这个 nginx:v3 docker run --name nginx_v3 -d -p 8080:80 nginx:v3

详解

FROM 指定基础镜像

找到一个优秀的基础镜像,在这个镜像上面来做一些修改

有一个特殊镜像 scratch 这是一个虚拟镜像,并不实际存在,如果指定这个,就表示不以任何镜像为基础,自己写镜像的第一层

RUN 执行命令

RUN 指令是用来执行命令行命令的

  • shell 格式:RUN <命令>, 比如 RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html 就是这种格式

  • exec 格式:RUN ["可执行文件", "参数1", "参数2"]

比如:

FROM debian:stretch

RUN apt-get update
RUN apt-get install -y gcc libc6-dev make wget
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
RUN mkdir -p /usr/src/redis
RUN tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1
RUN make -C /usr/src/redis
RUN make -C /usr/src/redis install

构建镜像

docker build [选项] <上下文路径/URL/->

示例:docker build -t nginx:v3

镜像构建上下文(Context)