我听说 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
两者有什么区别?表面上的协议看起来不同,但我想了解两者之间真正的不同之处以及为什么它们不等效。
我是 kubernetes 的新手,我试图了解当 NodePort 向外界公开端口时 kubernetes 网络是如何工作的。
假设我们的 kubernetes 集群中有两个节点,分别称为 Node1 和 Node2。我们在 Node2 上部署了一个 pod。
然后我们为这个 Pod 创建一个 NodePort 服务。为了简单起见,我们假设所有端口(targetPort、nodePort、port)都是 3000。现在,一个数据包到达 Node1 的端口 3000(没有部署 pod)。据我了解,iptables 规则规定该数据包将发送到 Node2 上的 pod。我的问题是 pod 收到数据包时看到的 IP 是什么,以及它的响应数据包如何从外界返回到我们的初始客户端。
安装 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)