我刚开始使用docker。
我真的很困惑应该作为码头图片打包什么?
在docker hub中,我可以找到一个完整的操作系统作为docker镜像:ubuntu,centos ......
以及流行的平台和数据库,如:nodejs,mongodb ......
在我看来,docker hub就像一个软件存储库。
是否应将所有内容打包为图像?如何只是一个命令行工具:ls,cd,git ???它们也是软件,什么才有资格成为码头图像?
请帮助澄清
答案 0 :(得分:-1)
Docker将在映像中的程序和主机环境之间提供一些隔离。在docker镜像中,可以将任何东西从单个二进制文件打包到完整的环境(除Linux内核之外的所有内容)。
将其视为一种便利。它提供了一种方便的表单来部署需要复杂环境的程序,这些环境可能与主机上安装的程序冲突。例如,如果您正在尝试打包webapp(例如某些博客软件),则docker容器将允许您发送应用程序代码,以及其解释器的测试版本(php,python等),兼容的网络服务器,也许是数据库环境 - 在一起。从用户安装容器/应用程序的角度来看,运行应用程序只需要容器。它完全独立,比设置虚拟机更简单。
如果图片中的二进制文件依赖于ls
命令,那么您也可以包含该命令。通常,在图像中,您包含二进制文件(入口点)及其所有依赖项。
如果您熟悉chroot
,除了文件系统之外,您可能会将docker镜像视为花哨的chroot,其中网络和进程地址空间也是隔离的。
您可以将dockerhub视为应用商店。