一尘不染

Boot2Docker-以本地主机身份访问Web服务器

docker

创建了一个Apache Web服务器作为Docker容器,但想在Windows OS浏览器上以localhost对其进行访问。

我可以使用boot2docker私有IP地址192.168.59.103访问Web服务器,但希望以本地主机(即127.0.0.1)访问Web服务器。

以下是我的Docker容器设置

在Oracle VM上运行Boot2docker暴露的端口:docker文件中的“ EXPOSE 80 443”

用于创建Docker File的命令:

docker run --net=host --name=webserver1 -v /home/data:/data/www/www.samplewebserber.com -v `password`:/scripts -d folder/serverfolder  /scripts/run.sh

阅读 232

收藏
2020-06-17

共1个答案

一尘不染

如果要访问端口80和443的本地主机,则需要执行两个操作:

  1. 首先,在创建容器时,必须特别指定端口映射。如果docker run使用-Poption 运行,则在dockerfile中设置的端口将在EXPOSEBoot2Docker环境中暴露给随机端口。如果要专门映射它,则必须运行:
        docker run \
      --net=host \
      --name=webserver1 \
      -v /home/data:/data/www/www.samplewebserber.com \
      -v `password`:/scripts \
      -d -p 80:80 -p 443:443 \
      folder/serverfolder  \
      /scripts/run.sh
  1. 并且为了将Boot2Docker端口映射到您的主机环境,如Joe Niland链接建议的那样,您必须使用SSH隧道进行端口转发:

boot2docker ssh -L 80:localhost:80

boot2docker ssh -L 443:localhost:443

您可以根据需要更改为端口映射。

2020-06-17