| 前缀 | 参数 |
|---|---|
| FROM | 镜像名字:tag |
| LABEL | ‘=’ 键值对的形式书写,可以写多个 或者用空格分割 |
| ENV | ‘ ‘或’=’ 键值对的形式书写,创建Dockfile中使用的变量 本质是书写环境变量/etc/profile/ |
| RUN | 具体命令,不建议写多个 |
| ADD | 拷贝宿主机压缩包并解压 会自动创建目录 |
| COPY | 拷贝宿主机文件或目录 |
| VOLUME | 指定挂载随机数据卷的容器的目录,创建的时候使用-v就行 |
| WORKDIR | 相当于cd,配合add、copy使用 |
| USER | 设置程序用户 |
| EXPOSE | 指定容器对外暴露的端口 |
| CMD | 指定容器的入口命令,docket run可以替换 |
| ENTRYPOINT | 指定容器的入口命令,docker run 仅作为参数传入 |
案例
# 获取ubuntuFROM ubuntu:20.04LABEL desrc="这是一个ubuntu为基础的tengine镜像" auther="clq"ENV 变量='变量名'# 开始runRUN sed -ri 's#archive.ubuntu.com|security.ubuntu.com#mirrors.aliyun.com#g' /etc/apt/sources.list \&& apt-get update \&& apt-get install -y wget libssl-dev make gcc pcre2-utils libpcre3-dev zlib1g-dev \&& wget -P /tmp/ http://tengine.taobao.org/download/tengine-2.3.3.tar.gz \&& cd /tmp/ \&& tar xf tengine-2.3.3.tar.gz \&& cd tengine-2.3.3 \&& ./configure --prefix=/app/tools/tengine-2.3.3/ \--user=nginx \--group=nginx \--with-http_ssl_module \--with-http_v2_module \--with-http_realip_module \--with-http_stub_status_module \--with-http_mp4_module \--with-stream \--with-stream_ssl_module \--with-stream_realip_module \--add-module=modules/ngx_http_upstream_check_module/ \--add-module=modules/ngx_http_upstream_session_sticky_module \&& make -j 1\&& make install \&& groupadd nginx \&& useradd -g nginx nginx\&& ln -s /app/tools/tengine-2.3.3/ /app/tools/tengine \&& ln -s /app/tools/tengine/sbin/nginx /sbin/ \&& rm -rf /tmp/* \&& rm -rf /var/cache/*# 复制首页文件COPY index.html /app/tools/tengine/html/index.html# 暴露端口,只为了让别人看EXPOSE 80# 入口命令设置CMD ["nginx","-g","daemon off;"]
- 构建镜像
docker build -f 名字.dockfile -t "设置镜像名字" 文件目录 # 如果文件名就叫Dockerfile可以不用-f
- 运行镜像
docker run -d -p 80:80 --name "tengine-dockerfile-container" tengine:2.3.3-dockerfile-clq
- 进入镜像
docker exec -it tengine-dockerfile-container /bin/bash
