在世界上最快速的情况下,建立“Docker + PHP7 + CentOS7 + 确保安全”的环境的方法
回答
$ s2i build --copy ./html centos/php-70-centos7 php-image
$ docker run -p 80:8080 php-image
$ s2i build --copy "ドキュメントルートに配置したいソースコードがあるローカルフォルダ" centos/php-70-centos7 "docker イメージネーム"
$ docker run -p 80:8080 "docker イメージネーム"
以下是关于如何在世界上最快的速度下搭建Docker + PHP7 + CentOS7环境的说明。
现在您可以连接到 http://localhost/。
到目前为止的经过
[Docker + PHP7 + CentOS7]我想要创建这个环境,所以调查了一些资料,并参考了一些个人上载了Docker镜像的文章,但是我最不喜欢的是大部分的资讯都以[–privileged]来指定以特权模式运行容器。
因为这是通过[systemctl启动服务]→[通过/sbin/init]来启动服务,所以需要特权模式才能实现。
我觉得这可能有问题,因为从容器中可以轻松访问各种资源,存在安全性问题,所以我相信一定有其他的方法。我进行了一些调查,并找到了一个解决方案。
解释
跳过Docker的安装。
S2I(Source-to-Image)
s2i 是一个可以从源代码创建 Docker 镜像的框架。
使用 s2i,CentOS 官方为我们准备了各种环境。
链接:https://hub.docker.com/u/centos/
CentOS官方是很重要的
有了它就不用考虑其他了哈哈
安装方式
$ brew install source-to-image
这次我们使用了PHP进行编写,但是由于提供了各种不同的环境,比如Python、Ruby、Node.js等等,所以我们可以轻松地创建出与我所写的内容相同的开发环境。
机构的概述
由于CentOS为我们提供了完整的开发环境,我们只需通过参数传递实际应用程序的源代码,并创建镜像。
然后,只需使用该镜像启动容器。
服务的启动方法
当然,服务已经被启动,而不需要特权模式。当我查看源代码时,我发现服务是通过[exec httpd -D FOREGROUND]启动的。因为直接启动,所以不需要特权模式。这正是我一直在寻找的。
总结
在这里,我简单地解释了一下s2i命令,它不仅可以使用本地源代码创建镜像,还可以指定远程GitHub上的源代码来创建镜像。此外,由于”centos/php-70-centos7″镜像可以从外部自定义Apatch配置,所以它具有灵活的设计。要了解更多详细信息,请参考此链接:
https://hub.docker.com/r/centos/php-70-centos7/
说明:
– “s2i”是一种命令,可以使用源代码构建和生成Docker镜像。
– “Apatch”指的是Apache Web服务器。