Doker: 基于 Dockerfile 构建新镜像

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/Allan_shore_ma/article/details/82856878

Doker: 基于 Dockerfile 构建新镜像

概述

Docker 官方并不推荐使用 docker commit 的方法来构建镜像,而是推荐使用 Dockerfile 定义的文件和 docker build 命令来构建镜像。Dockerfile 使用基于 DSL 语法的指令来构建一个 Docker 镜像,之后使用 docker build命令基于改 Dockerfile 中的指令构建一个新的镜像。

1. 创建 Dockerfile

cd /d/vm/
mkdir website
cd website
touch Dockerfile

Dockerfile 内容:

# Version: 0.0.1
FROM ubuntu:latest
MAINTAINER Allan Ma
RUN apt-get update
RUN apt-get install -y nginx
RUN echo 'Hi, I am in your container' \
       >/usr/share/nginx/html/index.html
EXPOSE 80

Dockerfile 由一系列指令和参数组成。每条指令,如 FROM,都必须为大写字母,且后面跟随一个参数:FROM ubuntu:latest。Dockerfile 中的指令会按顺序从上到下执行,所以应该根据需要合理安排指令的顺序。
每条指令都会创建一个新的镜像层并对镜像进行提交。Docker 大体上按照如下流程执行 Dockerfile 中的指令:

  • Docker 从基础镜像运行一个容器;
  • 执行一条指令,对容器做出修改;
  • 执行类似 docker commit 的操作,提交一个新的镜像层;
  • Docker 再基于刚提交的镜像运行一个新容器;
  • 执行 Dockerfile 中的下一条指令,直到所有指令都执行完毕。

如果你的 Dockerfile 由于某些原因(如,某条指令失败了)没有正常结束,那么你将得到一个可以使用的镜像。这对调试非常由帮助:可以基于改镜像运行一个具备交互功能的容器,使用最后创建的镜像对为什么你的指令会失败进行调试。

2. 创建镜像流程

docker build -t=“allan01/website” .

在这里插入图片描述

Dockerfile 文件因为路径不对报错
在这里插入图片描述
进入生成的 < none > 镜像,查看路径,然后修改 Dockerfile 指令并保存

docker run -it 8804a8d010db bash

在这里插入图片描述
再次执行 docker build,成功创建新镜像
在这里插入图片描述
查看 index.html 文件
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Allan_shore_ma/article/details/82856878
今日推荐