社区首页 >问答首页 >带有php内置服务器的Docker

带有php内置服务器的Docker
EN

Stack Overflow用户
提问于 2014-08-31 11:13:07
回答 1查看 15.9K关注 0票数 23

我试图通过docker运行php内置服务器(php -S localhost:8080),但我无法从主机访问站点-我总是以重置连接告终。

下面是我构建的一个简单的Dockerfile:

代码语言:javascript
代码运行次数:0
复制
FROM centos:centos6

RUN rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
RUN rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

RUN yum --enablerepo=remi,remi-php55 install -y php php-opcache php-cli php-pear php-common && yum clean all
RUN php -r "readfile('https://getcomposer.org/installer');" | php
RUN echo "date.timezone = Europe/Prague" >> /etc/php.ini
RUN mv composer.phar /usr/bin/composer
RUN php -r "eval('?>'.file_get_contents('http://backend.bolt80.com/piecrust/install'));"
RUN mv piecrust.phar /usr/bin/chef

CMD ["/bin/bash"]

有没有可能用docker来运行这个服务器?在尝试使其工作时,我发现当安装nginx并将其设置为在此端口上侦听时,可以从主机访问它。PHP内置服务器似乎对主机是隐藏的,因此无法处理任何请求。

有没有人成功地完成了这项工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-31 20:49:03

如果您在docker容器中使用php -S localhost:8080启动will服务器,则will服务器将只接受源自docker容器本身的连接。

为了能够从docker主机与您的two服务器通信,您需要进行两项更改:

  • 在Dockerfile文件中添加EXPOSE 8080,或者在运行容器时将-p 8080添加到docker run命令行。这将告诉停靠主机您的容器有一个程序,该程序期望在端口8080
  • 上进行通信,并使用php -S 0.0.0.0:8080启动has服务器,以便它也接受来自停靠容器本身的外部的连接

运行容器并执行这些更改后,在docker主机上打开一个新的终端,并使用docker ps命令查看docker主机上的哪个端口转发到容器中的端口8080。例如:

代码语言:javascript
代码运行次数:0
复制
$ docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                     NAMES
fbccf4058b07        test:latest         "php -S 0.0.0.0:8080   4 minutes ago       Up 4 minutes        0.0.0.0:49153->8080/tcp   sad_hawking

在本例中,将使用docker主机的端口49153。然后查询您的with服务器以验证您是否可以与其通信:

$ curl http://localhost:49153

票数 57
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25591413

复制
相关文章
Team Foundation Server 2010 – Basic Installation
Microsoft Team Foundation Server 2010在安装上非常简单,除了在安装的容易程度上做了很大的简化,提供了向导式的配置,它还针对微软一个早年广为使用的Visual SourceSafe,提供一个非常简单的安装和设置好的安装示范– Basic Configuration,让Visual SourceSafe的使用者通过简单的安装后,马上就可以使用Microsoft Team Foundation Server 2010。 通过一个标准的安装步骤来说明,希望大家能快速的了解 Bas
张善友
2018/01/19
8290
Team Foundation Server 2010 – Basic Installation
TFS(Team Foundation Server)介绍和入门
在本文的两个部分中,我将介绍Team Foundation Server的一些核心特征,重点介绍在本产品的日常应用中是怎样将这些特性结合在一起使用的。
全栈程序员站长
2021/12/09
6K0
DevOps工具介绍连载(31)——Microsoft Team Foundation Server(TFS)
Team Foundation Server(TFS)是一种为 Microsoft 产品提供 源代码管理、数据收集、报告和项目跟踪,而为协作软件开发的项目。它是Microsoft应用程序生命周期管理(ALM)工具的核心协作平台,简单的说它是管理和开发软件项目的整个生命周期的平台工具。
顾翔
2020/04/10
1.8K0
DevOps工具介绍连载(31)——Microsoft Team Foundation Server(TFS)
让Team Foundation Server/TFS自动记住用户名密码解决方案
在使用Team Foundation Server(以下简称TFS) 的时候,在每次打开Visual Studio TFS时候,需要输入用户名和秘密,比较麻烦。 现提供一种方法可以解决这个问题: 依次
磊哥
2018/05/08
1.1K0
让Team Foundation Server/TFS自动记住用户名密码解决方案
SQL server合法标识符
~~ 数据库名是一个标识符,表名也是一个标识符,在SQL SERVER中标识符分为两类:
且陶陶
2023/04/12
5780
Core Foundation & Foundation
Core Foundation 是一组 C 语言接口,Foundation 用 Objective-C 封装了 Core Foundation 的 C 组件,并实现了额外了组件供开发人员使用。而 Core Foundation 也有一些 Foundation 没能彻底封装的功能,这些功能是 Core Foundation 特有的。Core Foundation 有 Foundation 没有的功能,比如 CFDictionary 的 Key 元素无需实现 NSCoping 协议、CFArray 可以不进行对象引用计数等、CFRunloop 提供了比 NSRunloop 更加细致化的 Api、利用 CFStringTransform 将中文转为拼音。反过来,Foundation 也有 Core Foundation 无法胜任的工作,最大的来说就是自动引用计数功能,还有比如 NSBundle 在 Core Foundation 中也没有。
CoderStar
2022/08/24
5380
Core Foundation & Foundation
nginx配置多个server
location = /uaapi { } 请求路径只能写127.0.0.1:8989/uaapi
全栈程序员站长
2022/07/21
2K0
nginx配置多个server
配置phpmyadmin管理多个server
//修改librarise/config.default.php $cfg['AllowArbitraryServer'] = true; //默认是false,改成true 最后添加 $hosts = array( '1'=>array('host'=>'127.0.0.1','user'=>'root','password'=>'123456'), '2'=>array('host'=>'127.0.0.2','user'=>'root','password'=>'123456') ); for($
苦咖啡
2018/04/28
9970
nginx简单配置多个server
注意:LZ一直出现访问不了,折腾了许久,是因为服务器www.pigaudio.com或120.77.223.7只开了默认的80端口,而8088端口并未开,所以只需要登陆你的服务账号添加一个8088即可,比如你的服务器是阿里云购买的,则需要登陆阿里云加一个8088,还有问题就是,如果你服务器打开了网络防火墙也是访问也是不行的,关了即可。
全栈程序员站长
2022/11/16
5.4K0
nginx简单配置多个server
nginx 代理多个服务器——多个server方式
上一篇文章(http://blog.csdn.net/wild46cat/article/details/52840125)介绍了nginx的基本配置和使用方法,并且简单的介绍了一下如何利用nginx结合tomcat进行使用,达到反向代理的作用。现在我们要使用nginx达到这样的一个目的,能够代理多个服务器。
Java架构师必看
2021/05/14
6.9K0
nginx 代理多个服务器——多个server方式
vs2008连接tfs2013_VS连接SQL网页登录
3.Install Visual Studio 2008 SP1
全栈程序员站长
2022/11/09
7600
通过位运算,实现单字段标识多个状态位
可能经常有如下这种需求: 需要一张表,来记录学员课程的通过与否. 课程数量不确定,往往很多,且会有变动,随时可能新增一门课.
fliter
2023/06/18
4430
通过位运算,实现单字段标识多个状态位
TFS2010 Team Project Collections
Team Foundation Server 2010有一个改进比较大的地方就是Team Project Collections,在TFS 2010 在Team Project之上,多了一个Colle
张善友
2018/01/19
9380
TFS2010  Team Project Collections
Foundation-String
最近写完了Swift 3.0教程 ,在接下来这段时间,继续写Foundation 的教程,帮助大家更加深入,系统的学习Foundation 框架,可能会持续一段时间,希望有兴趣的朋友加个关注!
酷走天涯
2018/09/14
9530
tfs安装教程_tfs4全称
索引: 介绍 安装操作系统 准备安装过程中的需要的用户账户 安装IIS 7.0 安装SQL Server 2008 安装SQL Server 2008 SP1补丁 安装TFS 2010 配置TFS 2010(以高级配置为例) 配置TFS Build服务 安装序列号
全栈程序员站长
2022/11/09
1.6K0
python找到多个字典中的公共键
python找到多个字典中的公共键 生成字典 from random import randint,sample s = 'abcdefg' s1 = {x:randint(1,4) for x in sample(s,randint(3,6))} s2 = {x:randint(1,4) for x in sample(s,randint(3,6))} s3 = {x:randint(1,4) for x in sample(s,randint(3,6))} 方案1:循环判断 res = [] fo
听城
2018/04/27
4.1K0
nginx配置多个server监听80端口
有时候需要部署很多个服务时,如果不想让域名的后面带上端口号这个问题应该怎么做呢,实际也是有这样的场景的,本小节来做一个学习
在水一方
2022/06/14
5.8K0
nginx配置多个server监听80端口
Foundation-NSLocale
localizedStringForKey("name", defaultValue: "xj",bundleName:"bundle")
酷走天涯
2018/09/14
3070
Foundation-NSLocale
DevOps Foundation总结
一晃马上就要考DOF讲师了,春节这几天看着这本全英文的考试参考书自然是泪流满面,虽然云层的英文真不咋地,但是看帮助手册还是没啥问题,可是这本书里面的大量的俚语和莫名其妙的比喻,啥都不说了。
TestOps
2022/04/07
3450
Foundation-RunLoop
介绍 1.RunLoop 类提供一些接口管理输入源对象 2.RunLoop 对象处理像键盘,鼠标等事件,以及Port和NSConnection 对象,还处理Timer 事件 *使用须知 1.不能自己创建或者管理RunLoop对象,因为每个线程都会在需要的时候自动创建属于自己的RunLoop 对象,我们可以通过current()方法进入当前线程的run loop 2.RunLoop 没有考虑线程安全,所以前往不要在其他线程调用当前线程的RunLoop,会造成意想不到的错误 ---- 方法深入研
酷走天涯
2018/09/14
7150

相似问题

从url中获取id号(分开),并使用它来选择id号(使用jquery)

45

如何获取类名并使用它?

12

获取具有特定类并具有不等于

36

VBA -如何检索列号并使用它填充另一列?

32

从输入中获取变量并使用它来更改css类

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档