使用 Dockerfile 创建镜像 | Docker 系列

简介: 之前写镜像的时候说到创建镜像最常用的方式是使用 Dockerfile,这篇就来重点说一下,到底是怎么使用 Dockerfile 来创建的。

之前写镜像的时候说到创建镜像最常用的方式是使用 Dockerfile,这篇就来重点说一下,到底是怎么使用 Dockerfile 来创建的。


基本结构


# 1、第一行必须是 FROM 基础镜像信息
FROM ubuntu
# 2、维护者信息
MAINTAINER docker_user docker_user@email.com
# 3、镜像操作指令
RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list
RUN apt-get update && apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
# 4、容器启动执行指令
CMD /usr/sbin/nginx
复制代码

Dockerfile 基本就长这样,当然这是一个很简单的例子,还有很多其他命令会在下个小节介绍。

有几点需要注意,第一行必须是 FROM 命令,表示是基于哪个基础镜像来创建镜像的。第二行一般是 MAINTAINER 命令,表示维护人信息,但不做硬性要求。最后一行是 CMD 命令,表示启动容器执行的命令,CMD 命令必须在最后一行,如果有多个 CMD 命令,则只有最后一个生效。


常用指令


FROM: 必须是 Dockerfile 的首个命令,定义了使用哪个基础镜像启动构建流程。

MAINTAINER: 声明镜像作者。

COPY: 将宿主机的文件拷贝到镜像内的指定路径。

ADD: 作用类似于 COPY

COPYADD 的区别是:ADD 命令功能更多,比如拷贝一个压缩包,ADD 可以将压缩包解压到镜像内,如果是下载链接,ADD 会先下载文件,然后再拷贝。

但现在 docker 官方更推荐使用 COPY 命令,一个命令只做一件事。

WORKDIR: 指定 Dockerfile 中该命令下的操作所在的工作目录。

RUN: 执行命令行命令。

ENV: 设置环境变量。

VOLUME: 挂载数据卷。

EXPOSE: 暴露端口。

CMD: 服务启动命令。


创建镜像


有了 Dockerfile 之后,在 Dockerfile 所在目录执行命令:


# docker build -t <image_name> .
复制代码


就这么简单,镜像就创建好了。


目录
相关文章
|
6月前
|
Docker 容器 Perl
云效flow构建docker镜像更换apt源为阿里镜像源
在 Dockerfile 中添加命令以更换 Debian 源为阿里云镜像,加速容器内软件包下载。核心命令通过 `sed` 实现源地址替换,并更新 apt 软件源。其中 `cat` 命令用于验证替换是否成功,实际使用中可删除该行。
1222 32
|
5月前
|
缓存 Shell 网络安全
将应用程序打包成Docker镜像时可能遇到哪些问题?
将应用程序打包成Docker镜像时可能遇到哪些问题?
466 77
|
5月前
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
165 16
|
5月前
|
关系型数据库 MySQL Docker
|
6月前
|
Ubuntu Linux 网络安全
Ubuntu Docker镜像:支持systemctl、SSH、VNC
总的来说,创建一个支持systemctl、SSH和VNC的Ubuntu Docker镜像需要一些技术知识,但是通过学习和实践,我们可以掌握这些技术。这将使我们能够更有效地使用Docker,更好地管理我们的应用程序和服务。CentOS系统中的日志文件位置和管理
186 17
|
应用服务中间件 nginx Docker
Docker学习笔记-创建镜像
Docker学习笔记-创建镜像
138 0
Docker学习笔记-创建镜像
|
3月前
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
273 57