服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

如果容器没有Guest OS,为什么我们使用Docker的OS Base Image?

我刚刚开始研究Docker,对我来说有一些困惑。 正如我在Docker的网站上看到的,容器与虚拟机不同。 据我所知,一个容器只是一个内部运行整个隔离文件系统的沙箱。 我也读过一个容器没有安装Guest OS。 相反,它依赖于底层的操作系统内核。 所有这一切都很好。 我感到困惑的是Docker镜像以操作系统命名。 我们看到像Ubuntu,Debian,Fedora,CentOS等图像。 我的观点是:那些图像是什么,真的? 与创build虚拟机和安装Debian相比,创build基于Debian映像的容器有什么不同? 我以为容器没有安装Guest OS,但是当我们创build镜像时,我们将它们放在一个名为OS的命名镜像上。 另外,在例子中,我们看到当我们做docker run ubuntu echo "hello world" ,似乎我们正在Ubuntu上运行一个虚拟机,并运行命令echo "hello world" 。 当我们做docker run -it ubuntu /bin/bash ,看起来我们正在Ubuntu上运行一个虚拟机,并使用命令行来访问它。 无论如何,那些以操作系统命名的图像都是关于什么的? 运行带有其中一个映像的容器和使用相应的客户操作系统启动虚拟机有什么不同? 是这样的想法,我们只是与主机操作系统共享内核(因此我们可以访问底层的机器硬件资源,而不需要虚拟化硬件),但仍然使用容器上每个不同系统的文件和二进制文件支持我们想运行的任何应用程序?

try_files如何工作?

我看了一下nginx的文档,但仍然把我搞糊涂了 try_files如何工作? 这是文件所说的 来自Nginx的HttpCoreModule try_files 语法:try_files path1 [path2] uri 默认:无 上下文:服务器,位置 可用性:0.7.27 按顺序检查文件的存在,并返回find的第一个文件。 尾部的斜线表示一个目录 – $ uri /。 在没有find文件的情况下,调用到最后一个参数的内部redirect。 最后一个参数是回退URI并且必须存在,否则会引发内部错误。 与重写不同,如果后退不是一个命名的位置,$ args不会自动保留。 如果你需要保存参数,你必须明确地这样做: 我不明白它是如何检查path,以及如果我不想要一个内部错误,并让它恢复path的其余部分,以努力find另一个文件? 如果我在/path/app/cache/url/index.html有一个caching文件,如果失败,请尝试/path/app/index.php我该如何写? 如果我写了 try_files /path/app/cache/ $uri include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket; fastcgi_param SCRIPT_FILENAME $document_root/index.php; 我有index index.php index.html index.htm; 当我访问/urlname它会尝试检查/path/app/cache/urlname (index.php然后) /path/app/cache/urlname /path/app/cache/urlname/index.html ? 如果我们在try_files之后忽略所有的东西,try_files是否可以检查这个caching文件夹? 我一直在尝试和失败。