小编Sha*_*k V的帖子

docker 是否总是需要一个操作系统作为基础镜像

我听说 docker 在 linux 中不需要单独的操作系统,因为它与主机操作系统共享,但是在 hyper-v Windows 中它可以运行 Windows 操作系统,因为它可以超 linux 虚拟机,因此可以在其上运行 linux 软件。

但是,我FROM对 dockerfile 中的阶段感到困惑,所有指南都这样说:

FROM ubuntu:18.04
cp . /usr/local/bin
RUN make
CMD /usr/local/bin/youapp
Run Code Online (Sandbox Code Playgroud)

我可以理解这一步,首先你需要一个操作系统,然后你部署你的应用程序;最后你运行你的应用程序或其他什么。

但是 FROM 阶段的真正含义是什么?

它总是需要操作系统吗?nginx docker 映像中是否有操作系统?

如果我想构建自己的应用程序,我会编写它、编译它、运行它;但是我自己的应用程序需要操作系统吗?如果不是,我应该在FROM阶段写什么?

我得到了这张图片,它说 docker 容器不需要 os,但使用主机 os,现在 docker build 总是需要一个 os 在此处输入图片说明

docker dockerfile

22
推荐指数
3
解决办法
5849
查看次数

2PC(2 阶段提交)和 2 PL(2 阶段锁定)之间的区别

两者有什么区别?表面上的协议看起来不同,但我想了解两者之间真正的不同之处以及为什么它们不等效。

database distributed paxos two-phase-commit

5
推荐指数
1
解决办法
2967
查看次数

Kubernetes NodePort 网络如何在多节点集群上工作?

我是 kubernetes 的新手,我试图了解当 NodePort 向外界公开端口时 kubernetes 网络是如何工作的。

假设我们的 kubernetes 集群中有两个节点,分别称为 Node1 和 Node2。我们在 Node2 上部署了一个 pod。

然后我们为这个 Pod 创建一个 NodePort 服务。为了简单起见,我们假设所有端口(targetPort、nodePort、port)都是 3000。现在,一个数据包到达 Node1 的端口 3000(没有部署 pod)。据我了解,iptables 规则规定该数据包将发送到 Node2 上的 pod。我的问题是 pod 收到数据包时看到的 IP 是什么,以及它的响应数据包如何从外界返回到我们的初始客户端。

networking kubernetes

4
推荐指数
1
解决办法
548
查看次数

来自守护程序的错误响应:客户端版本 1.40 太新。支持的最大 API 版本为 1.39

安装 docker 19.03.09 后,任何涉及 docker 守护进程的 docker 命令都会抛出以下错误。

Error response from daemon: client version 1.40 is too new. Maximum supported API version is 1.39
Run Code Online (Sandbox Code Playgroud)

docker

4
推荐指数
1
解决办法
4009
查看次数