当 OS 已经安装了 python/node.js 时,我还需要通过 docker 容器文件安装 Node.js 或 Python 吗?

Do I still need to install Node.js or Python via docker container file when the OS is installed with python/node.js already?

我正在尝试为我正在创建的 Web 应用程序创建 docker 文件(图像文件)。基本上,Web 应用程序是用 Node.js 和 Vue.js 编写的。为了为应用程序创建一个 docker 容器,我从 vue.js 获得了创建一个 docker 文件的文档。给出的步骤是工作文件。我只是想澄清一下我对这部分的理解。

link:- https://cli.vuejs.org/guide/deployment.html#docker-nginx

如果必要的包 Node/Python 安装在 OS 中(不在容器中),容器是否能够获取 npm 脚本并执行 python 脚本?如果是,它真的也依赖于 OS 软件包吗?

请帮助我理解。

是的,您需要在容器中安装 Node 或 Python 或您在应用程序中需要的任何软件。原因是容器应该能够 运行 在任何安装了 Docker 的主机上,无论主机是如何设置的或者它安装了什么软件。

一开始确保您的 Dockerfile 安装所有需要的软件可能有点乏味,但是当您想 运行 在另一台机器上安装您的容器时它会变得非常有用.然后你所要做的就是输入 docker run 它应该可以工作!

就像大卫在上面所说的那样,Docker 容器与您的主机隔离,它应该被视为完全不同的 machine/host。容器与其他容器或有时主机通信的方式是通过网络端口。

一个 "exception" 容器和主机之间的隔离是容器有时可以写入主机中的文件,以便即使在容器已停止后也能持久保存数据。您可以使用 volumes or mounts 允许容器写入主机上的文件。

我建议 Docker Overview 以获得有关 Docker 的更多信息。