1.DockerFile简介:
Dockerfile: 自动化构建指定镜像的一个脚本文件
传统构建指定镜像过程:
找一个镜像 ===> 创建容器并进入 ===>进行相关操作(安装软件或进行配置) ===>构建新镜像
①基础信息
1)基础镜像信息:FROM <基础镜像> 2)维护者信息:LABEL maintainer=<作者信息> 3)构建镜像时所要执行的操作信息 4)容器启动执行指令:ENTRYPOINT <执行指令>
②构建镜像命令
docker build -t [镜像名]:[版本号] [Dockerfile所在目录]
2.Dockerfile快速入门
示例: 需求:构建一个安装了python3和python3-pip的镜像环境
① 进入/data/docker/base 目录下
cd /data/docker/base wget http://116.62.191.55/share/sources.list # 获取sources.list,换源配置
②创建Dockerfile文件 注:Dockerfile文件名的D必须大写
# ① 基础镜像 FROM ubuntu # ② 作者信息 LABEL maintainer=y960754862@163.com # ③ 执行操作 ADD ./sources.list /etc/apt/sources.list # 安装依赖换源配置 RUN apt-get update RUN apt-get install vim -y RUN apt-get install python3 -y && apt-get install python3-pip -y WORKDIR /root/.pip/ ADD ./pip.conf ./pip.conf WORKDIR / # ④ 入口指令 ENTRYPOINT ["/bin/bash"]
③构建镜像
docker build -t python3:v0.1 .
④ 查看镜像
⑤使用新镜像创建一个容器
docker run -it python3:v0.1
⑥进入容器查看是否成功
3. DockerFile指令
3.1 基础指令
① FROM <image> # 选择镜像
② LABEL maintainer=<name> # 开发者信息
③ RUN <command> (shell模式) RUN echo hello
RUN ["excutable", "param1", "param2"] (exec模式) RUN ["echo", "hello"]
# 表示当前镜像构建时候运行的命令
④ EXPOSE <port> <port2> ... # 设置Docker容器对外暴露的端口号
3.2 文件编辑指令
① ADD <src> <dest> # 将宿主机指定的文件复制到容器文件系统中
(如果源文件是个压缩文件,该指令执行时,则docker会自动帮解压到指定的容器中)
② COPY <src> <dest> # 单纯复制文件场景,Docker推荐使用COPY。
③ VOLUME ["/data"] # VOLUME指令可以在镜像中创建挂载点,这样只要通过该镜像创建的容器都有了挂载点。
3.3 环境指令详解
① ENV <key> <value> # 设置环境变量
② WORKDIR /path/to/workdir # 切换目录
4. Dokerfile构建镜像过程