首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使docker pull正确运行

如何使docker pull正确运行
EN

Stack Overflow用户
提问于 2021-09-26 16:42:57
回答 1查看 45关注 0票数 0

我想构建freebsd docker镜像,因为基准测试表明,它具有更低的延迟,更好地组织网络堆栈,我想在我的应用程序中使用它。所以我有以下docker文件

考虑Dockerfile:

代码语言:javascript
复制
FROM alpine:latest
RUN echo $(uname -a)
CMD [echo]

sudo docker build .会打印内核版本

如果我将Dockerfile更改为另一个

代码语言:javascript
复制
FROM lexaguskov/freebsd:latest
RUN echo $(uname -a)
CMD [echo]

它不工作,打印一个错误:

代码语言:javascript
复制
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 pull有什么问题?我认为它行为不端

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-26 22:59:56

容器不提供内核,它们只是在主机内核下使用一些隔离设置运行一个进程。如果你想运行一个内核,你应该运行一个VM而不是一个容器。

您尝试运行的特定映像是在2015年构建的,使用了一个过时的模式,并且已将OS/体系结构设置为freebsd/amd64而不是linux/amd64。假设您的docker引擎在Linux上(您可以使用docker info进行验证),它将正确地拒绝运行此镜像。问题不在于docker不能拉出图像,它确实被拉到了构建器中。更确切地说,镜像可能包含不能在内核上运行的二进制文件,就像试图在Linux主机上运行Windows exe一样,因此docker拒绝使用它。

似乎有一个port of Docker to Freebsd,但那个doesn't appear to be working已经有好几年了。您可能能够运行较旧的docker安装,但预计会出现问题和安全漏洞,并且不会与Linux上的docker进行同类比较。为此,您首先需要安装Freebsd (例如,在虚拟机上),这很可能与在您的情况下运行docker容器的目的不符。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69336935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档