Docker -- DockerFile 讲解

本文介绍了DockerFile的基础知识,重点讲解了FROM指令的Multiple FROM机制,以及COPY指令的两种拷贝方式:本地到镜像和不同编译阶段的拷贝。FROM指令用于指定基础镜像,并通过Multiple FROM实现编译和运行环境的分离。COPY指令则允许将文件从本地或不同编译阶段复制到镜像中。
部署运行你感兴趣的模型镜像

写在开头:实验室给的电脑只能装 20.04 然后跑仿真需要在 18.04 (20.04 的 Gazebo 居然不能支持!要是有人知道如何在 20.04 中使用 Gazebo GPU 欢迎留言;电脑配置是 Nvidia 3060)又是被迫学习一下 Docker

DockerFile 指令讲解

DockerFile 指定了 Docker 镜像的制作过程。通常用于自定义镜像。

FROM

FROM 指令是指定基本的镜像。这里着重讲解 Multiple FROM 机制。Multiple FROM 机制通常是在一个镜像下编译,将编译结果放在另一个镜像下运行。类似于 develruntime 区别。

  • Example
# syntax=docker/dockerfile:1
FROM golang:1.16 AS builder
WORKDIR /go/src/github.com/alexellis/href-counter/
RUN go get -d -v golang.org/x/net/html  
COPY app.go    ./
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .

FROM alpine:latest  
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /go/src/github.com/alexellis/href-counter/app ./
CMD ["./app"]  

每一个 FROM 构成一个新的基础镜像,之后的代码会在基础镜像中运行。第一段中在环境一中编译代码得到结果 app 。第二段通过指令

COPY --from=builder /go/src/github.com/alexellis/href-counter/app ./

将第一段中的结果拷贝到当前镜像。其中 --from=builderbuilder 是由第一段中的 FROM golang:1.16 AS builder 决定。二镜像中不会留有其余一镜像的残余。

COPY

COPY [--chown=<user>:<group>] <src>... <dest>
COPY [--chown=<user>:<group>] ["<src>",... "<dest>"]

两种拷贝方式 – 本地到镜像 与 不同编译阶段的拷贝(上文的 Multi FROM 机制)。

本地到镜像注意: <src> 需要在 docker build <path> 的目录下

不同编译之间的拷贝可以看上文的:

COPY --from=builder /go/src/github.com/alexellis/href-counter/app ./

这就是从一个编译阶段拷贝到另一个编译阶段。

您可能感兴趣的与本文相关的镜像

Qwen-Image

Qwen-Image

图片生成
Qwen

Qwen-Image是阿里云通义千问团队于2025年8月发布的亿参数图像生成基础模型,其最大亮点是强大的复杂文本渲染和精确图像编辑能力,能够生成包含多行、段落级中英文文本的高保真图像

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值