Docker端口故障EADDRINUSE

时间:2019-01-05 23:55:04

标签: docker

我对Docker完全陌生,我想与Docker建立一个hello world项目。

当前,我正在端口80上使用Apache作为Web服务器,并且我不想杀死PID。

这是我的Dockerfile:

FROM php:7.2-cli
COPY src/ /usr/src/myapp
EXPOSE 80

运行docker build -t hello-world .后,只需运行docker run -p 80:80 hello-world,发现已使用的端口,因此将端口更改为:docker run -p 8080:80 hello-world,得到了Interactive shell

因此在研究了Google之后,我可以使用以下命令运行服务器:

docker container run --publish 8080:80 nginx 

这里是一个问题:如何在本地计算机上使用8080端口运行hello world应用程序?

1 个答案:

答案 0 :(得分:1)

  

如何在本地计算机上使用8080端口运行hello world应用程序?

这就是anArrayOfInt(如container networking所示):将容器中的TCP端口80映射到Docker主机上的端口8080。

这意味着http://127.0.0.1:8080在您的本地计算机上应显示NGiNX欢迎消息。

但是根据我的docker设置,您可能需要做一些其他映射(在托管Docker的VM和Docker本身之间),如我在“ Docker ports are not exposed”中所述。


  

我只想在PHP中回声问候世界,我尝试过[docker container run --publish 8080:80 hello-world],但是我得到了:交互式shell

这是预料之中的:您的图片基于php one,更确切地说,基于7.2-cli(使用main command is脚本)的7.2/stretch/cli/docker-php-entrypoint

-p 8080:80

您应该使用docker-php-entrypoint php -a 之类的image variant来查看正在运行的应用程序,例如mfieldhouse/docker-php-helloworld 使用docker-php-entrypoint

php:<version>-apache

使用包含FROM php:7.2-apache COPY src/ /var/www/html EXPOSE 80 文件的src:

index.php