DockerFile

Posted yqyn-study

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DockerFile相关的知识,希望对你有一定的参考价值。

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构建镜像过程

 

以上是关于DockerFile的主要内容,如果未能解决你的问题,请参考以下文章

构建 Dockerfile 使用非零代码 139 执行

dockerfile部署goweb项目

dockerfile部署goweb项目

dockerfile部署goweb项目

Dockerfile的理解

当使用CICD的Conducto时,我必须创建自己的dockerfile吗?