编写dockerfile生成镜像,并且构建容器运行
目录
概述
随着微服务应用越来越多,大家需要尽快掌握docker的基本使用,借着本文简单介绍一下dockerfile文件的结构,希望对读者有所帮助。
一、dockerfile文件详解
Dockerfile是一个文本文件,包含了一系列用于构建镜像的指令。每条指令都会构建一层镜像,指令的内容描述了该层镜像应如何构建。Dockerfile可以使用docker build
命令进行编译,构建出Docker镜像。用户可以将自己的应用打包成镜像,从而让应用在容器中运行,还可以对官方镜像进行扩展,打包成适合生产环境的应用镜像。
Dockerfile的基本结构
Dockerfile包含两种类型的行:以#开头的注释行和以专用"指令"开头的指令行。ImageBuilder按顺序执行各指令,从而完成镜像构建。Dockerfile中的每条指令都会创建一层镜像,指令的执行顺序从上至下。
Dockerfile的常用指令
FROM:初始化一个新的构建阶段,并设置基础镜像。
MAINTAINER:指定作者信息(注意:新版Docker中推荐使用LABEL来替代)。
RUN:在当前镜像之上执行命令。
ADD:复制新的文件、目录或远程文件URL到镜像中。
COPY:复制本地文件、目录或远程文件URL到镜像中。
CMD:运行程序,在docker run时运行。
ENTRYPOINT:配置容器启动时运行的命令。
LABEL:给镜像添加元数据。
ENV:设置环境变量。
EXPOSE:声明容器运行时需要监听的端口。
VOLUME:设置卷,用于数据持久化或共享数据。
WORKDIR:设置工作目录。
USER:指定运行容器时的用户名或UID。
ARG:定义变量,供构建时使用。
ONBUILD:当构建一个被继承的Dockerfile时运行命令。
二、构建过程
构建镜像的命令是:
docker build -t my-image-name:my-tag .
其中,-t 参数用来指定镜像的名字和可选的标签(tag),. 指定了Dockerfile文件所在的目录。
如下示例:
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y \
git \
python3 \
python3-pip
COPY . /app
WORKDIR /app
CMD ["python3", "app.py"]
构建这个Dockerfile的命令是:
docker build -t my-python-app:latest .