Skip to content
章节导航

Dockerfile 定制容器镜像

dockerfile 执行顺序,从上往下逐步执行

镜像分类

  • 1、基础镜像,例如:CentOS、Ubuntu、alpine
  • 2、环境镜像,例如:jdk、php、go
  • 3、项目镜像,将项目项目与环境镜像打包一起

Dockerfile 常用指令

指令描述
FROM构建新镜像是基于哪个镜像
LABEL标签
RUN构建镜像时运行的 Shell 命令
COPY拷贝文件或目录到镜像中
ADD解压压缩包并拷贝设置环境变量
ENV设置环境变量
USER为 RUN、CMD 和 ENTRYPOINT 执行命令指定运行用户
EXPOSE声明容器运行的服务端口
WORKDIR为 RUN、CMD、ENTRYPOINT、COPY 和 ADD 设置工作目录
CMD运行容器时默认执行,如果有多个 CMD 指令,最后一个生效
ENTRYPOINT如果与 CMD 一起用,CMD 将作为 ENTRYPOINT 的默认参数,如果如果有多个 ENTRYPOINT 指令,最后一个生效

第一个 Dockerfile

创建一个文件夹,并进入文件夹

shell
mkdir itdachen
cd itdachen

创建测试文件

shell
touch a.txt
touch b.txt
tar zcvf b.tar.gz b.txt

创建 Dockerfile

shell
vi Dockerfile

Dockerfile 文件文件内容

shell
FROM centos:7
LABEL maintainer itdachen
RUN yum install gcc -y 
COPY a.txt /opt
ADD b.tar.gz /opt
ENV ABC=123
EXPOSE 80
WORKDIR /usr/local
CMD ["sleep", "360000"]

docker build 构建镜像

shell
docker build [OPTIONS]PATH|URL|-[flags]
  • OPTIONS -t, --tag list #镜像名称 -f, --file string # 指定 Dockerfile 文件位置

案例

构建第一个 Dockerfile

  • 第一种方式,在同一个目录下, 使用点( . )代替
shell
docker build -t test .
  • 第二种方式,指定 Dockerfile 文件
shell
docker build -t test -f Dockerfile

启动容器

shell
docker run -d test

进入容器

shell
docker exec -it [ID] bash

查看设置的变量

shell
echo $ABC

输出: 123

查看拷贝的文件

shell
ls /opt/

输出: a.txt b.txt