【发布时间】:2021-09-27 06:59:56
【问题描述】:
我想构建 freebsd docker 镜像,因为基准测试表明它具有更低延迟、更好组织的网络堆栈,我想在我的应用程序中使用它。所以我有以下 docker 文件
考虑 Dockerfile:
FROM alpine:latest
RUN echo $(uname -a)
CMD [echo]
sudo docker build . 打印内核版本
如果我将 Dockerfile 更改为另一个
FROM lexaguskov/freebsd:latest
RUN echo $(uname -a)
CMD [echo]
它不工作,打印一个错误:
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM lexaguskov/freebsd:latest
latest: Pulling from lexaguskov/freebsd
Image docker.io/lexaguskov/freebsd:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
9503d02123d7: Pull complete
operating system is not supported
所以docker pull 命令行为不端,如何解决?
如果 linux 不支持运行基于 freebsd 的图像,至少它必须允许我使用 docker image inspect 反转,但我什至无法检查。码头工人拉有什么问题?我认为它行为不端
【问题讨论】:
-
您应该已经提取了图像。海事组织。你能做一个 docker image ls 并检查吗?它只告诉您使用过时清单的图像并且您的操作系统不支持使用该图像。由于 docker 容器与主机共享内核。
-
图片是6岁。即使你可以让它运行,给它打安全补丁也将是一场噩梦。
-
网络堆栈通常是在 OS 内核中实现的,但 Docker 容器总是共享主机的内核。您可以想象在容器中运行 BSD 用户空间,但它仍然具有底层 Linux 内核 和网络堆栈。您可能需要一个虚拟机来进行此设置。
-
@TheFool 没有它没有被拉, ls 只显示我高山和我的测试图像。因为拉命令失败并出现错误。我认为拉命令旨在拉图像,而不是分析它,所以我认为它行为不端,没有做它应该做的事情。如果我想交叉编译怎么办?
-
@HansKilian 我猜你的通知超出了范围。我对安全性或补丁不感兴趣。我想比较基于 linux 的 docker 和基于 freebsd 的性能,什么是延迟、抖动,以及小型软件定义的回显数据包 (pps) 的吞吐量是多少
标签: docker