docker file 编写教程

 

docker build命令

 

用于从Dockerfile构建映像。

 

-f :指定要使用的Dockerfile路径;

 

--tag, -t: 镜像的名字及标签;

 

示例:

 

docker build -f /path/to/a/Dockerfile
docker build -t SOLO docker/

 

docker file结构

 

FROM:指定基础镜像,必须为第一个命令

 

FROM pytorch/pytorch:1.3-cuda10.1-cudnn7-devel

 

MAINTAINER: 维护者信息

 

MAINTAINER Dodge <83942052@qq.com>

 

RUN:构建镜像时执行的命令

 

1.shell执行

 

RUN apk update

 

2.exec执行

 

RUN ["/etc/execfile", "arg1", "arg1"]

 

注:RUN指令创建的中间镜像会被缓存,并会在下次构建中使用。
如果不想使用这些缓存镜像,可以在构建时指定--no-cache参数,如:docker build --no-cache

 

ADD:将本地文件添加到容器中

 

ADD hom* /mydir/          # 添加所有以"hom"开头的文件

 

将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget

 

copy与add完全一致,但是不能使用网络资源

 

CMD:容器启动时调用的命令。

 

CMD ["/usr/bin/wc","--help"]

 

EXPOSE:指定于外界交互的端口

 

EXPOSE 8080

 

WORKDIR:工作目录

 

WORKDIR /path/to/workdir

 

通过WORKDIR设置工作目录后,Dockerfile中其后的命令RUN、CMD、ENTRYPOINT、ADD、COPY等命令都会在该目录下执行。
在使用docker run运行容器时,可以通过-w参数覆盖构建时所设置的工作目录。

 

ARG:用于指定传递给构建运行时的变量

 

ARG PYTORCH="1.3"
ARG CUDA="10.1"
ARG CUDNN="7"

FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel

 

示例

 

ARG PYTORCH="1.3"
ARG CUDA="10.1"
ARG CUDNN="7"

FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel

ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0+PTX"
ENV TORCH_NVCC_FLAGS="-Xfatbin -compress-all"
ENV CMAKE_PREFIX_PATH="$(dirname $(which conda))/../"

RUN apt-get update && apt-get install -y libglib2.0-0 libsm6 libxrender-dev libxext6 \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/*

# Install SOLO
RUN conda install cython -y && conda clean --all
RUN git clone https://gitee.com/doge_ac_cn/SOLO /SOLO
WORKDIR /SOLO
RUN pip install --no-cache-dir -e .

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Dockerfile 是用于构建 Docker 镜像的脚本文件。要编写 Dockerfile,请按照以下步骤进行: 1. 选择基础镜像:在 Dockerfile 中,您需要选择一个作为构建基础的 Docker 镜像。您可以选择已经存在的公共镜像,如 Ubuntu、Alpine 等,或者使用自己构建的镜像。 2. 安装所需的软件包:在 Dockerfile 中,您需要使用适当的命令安装所需的软件包。这可以通过使用 apt-get、yum 等包管理器来完成。 3. 设置环境变量:在 Dockerfile 中,您需要设置所需的环境变量。这可以通过使用 ENV 命令来完成。 4. 复制文件:在 Dockerfile 中,您需要将应用程序文件复制到容器中。这可以通过使用 COPY 命令来完成。 5. 运行命令:在 Dockerfile 中,您需要指定容器启动后要运行的命令。这可以通过使用 CMD 命令来完成。 编写Dockerfile 后,您可以使用 docker build 命令将其构建为 Docker 镜像。 ### 回答2: Dockerfile是用于构建Docker镜像的文本文件,其中包含一系列命令和指令。下面是安装Dockerfile编写的一般步骤: 1. 首先,你需要创建一个新的文本文件,并将其命名为Dockerfile。 2. 在Dockerfile的第一行,使用以下指令来选择基础镜像: ``` FROM <base_image> ``` `<base_image>`是你选择作为基础的镜像,可以是官方提供的或者是其他用户创建的镜像。 3. 如果需要,可以通过使用一些特定的命令来更新基础镜像。例如,使用RUN指令来运行系统命令,安装软件包等: ``` RUN <command> ``` 4. 接下来,通过使用COPY或ADD指令来将本地文件复制到镜像中: ``` COPY <src> <dest> 或 ADD <src> <dest> ``` `<src>`表示本地文件的路径,`<dest>`表示目标路径。 5. 如果需要,可以使用EXPOSE指令来指定容器运行的端口号: ``` EXPOSE <port> ``` `<port>`是你要公开的端口号。 6. 最后,使用CMD指令来指定容器启动时要执行的命令: ``` CMD <command> ``` `<command>`是容器启动时要运行的命令,可以是一个可执行程序或脚本。 7. 在Dockerfile所在的目录中打开终端,并使用以下命令来构建镜像: ``` docker build -t <image_name> . ``` `<image_name>`是你给镜像起的名字,`.`表示Dockerfile所在的目录。 8. 构建成功后,你可以使用以下命令来运行容器: ``` docker run <image_name> ``` `<image_name>`是你构建的镜像的名字。 以上就是使用Dockerfile编写Docker镜像的一般步骤。你可以根据自己的需求进行适当的修改和扩展。 ### 回答3: Dockerfile是用于构建Docker容器的脚本文件,以指令的方式描述了如何从一个基础镜像构建出一个新的镜像。 编写Dockerfile的步骤如下: 1. 选择一个合适的基础镜像作为起点,可以根据应用需求选择操作系统、软件版本等。 2. 使用FROM指令指定基础镜像,如FROM ubuntu:latest。 3. 使用RUN指令运行命令,可以安装软件包、依赖等。如RUN apt-get update && apt-get install -y nginx。 4. 使用COPY或ADD指令将本地文件复制到容器中,如COPY index.html /usr/share/nginx/html/。 5. 使用EXPOSE指令声明容器运行的服务端口号,如EXPOSE 80。 6. 使用CMD或ENTRYPOINT指令指定容器启动时要运行的命令或脚本,如CMD ["nginx", "-g", "daemon off;"]。 7. 可以使用其他指令如WORKDIR、ENV、LABEL等进行更多配置,根据实际需求进行设置。 编写Dockerfile时需要注意以下几点: 1. 保持每条指令的幂等性,即每条指令在任何时候都能获得相同的结果。 2. 尽量减少镜像层数,避免每个RUN指令都创建新的镜像层。 3. 使用. dockerignore文件忽略不需要复制到容器的文件或目录。 4. 尽量使用官方或可信的基础镜像,避免使用未知或不受信任的来源。 编写完成Dockerfile后,可以通过docker build命令来构建镜像,如docker build -t <image_name> .,其中<image_name>为镜像名称。 通过合理编写Dockerfile,可以简化容器的构建流程,提高镜像的可移植性和可重复性,方便部署和维护应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值