Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用docker在Windows上运行sqli实验室(一个web应用程序)?_Docker - Fatal编程技术网

如何使用docker在Windows上运行sqli实验室(一个web应用程序)?

如何使用docker在Windows上运行sqli实验室(一个web应用程序)?,docker,Docker,我尝试使用Docker运行sqli实验室,我使用以下命令: docker pull acgpiano/sqli-labs docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs 要拉取图像,请在使用命令后: docker pull acgpiano/sqli-labs docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs 我访问了,但我的浏览器显示404。。

我尝试使用Docker运行sqli实验室,我使用以下命令:

docker pull acgpiano/sqli-labs
docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs
要拉取图像,请在使用命令后:

docker pull acgpiano/sqli-labs
docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs
我访问了,但我的浏览器显示404。。 以下是截图:


为什么我无法获得正确的页面?

因为该页面在您的机器localhost上无法访问,但在您的容器localhost上无法访问

如果您在容器内或在IP机器上访问localhost,则可以访问它

编辑:

如何访问容器内的localhost:

# I ran the same commands as you
docker pull acgpiano/sqli-labs
docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs
# First get the container id with 
docker ps -a
# I got this output:
# CONTAINER ID        IMAGE                COMMAND             CREATED             STATUS              PORTS                          NAMES
# d91384617370        acgpiano/sqli-labs   "/run.sh"           3 minutes ago       Up 3 minutes        0.0.0.0:80->80/tcp, 3306/tcp   sqli

# Then execute bash command as root for this container id
docker exec -it -u root d91384617370 bash

# Inside the container update apt-get and get curl (or wget)
apt-get update -y
apt-get install curl -y

# Go to localhost - the page will be printed in your terminal
curl localhost
如何在windows 10中访问它(使用Docker版本18.03.1-ce测试,构建9ee9f40),我正在使用powershell和Docker for windows

docker pull acgpiano/sqli-labs
docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs

# In powershell get the hostname - copy it to your browser - http://your_hostname or just your_hostname
hostname
# Or run ipconfig to find your IP - copy it to your browser http://your_ip or your_ip
ipconfig | findstr [0-9].\. 

我还推荐文档中的示例,这是一个很好的入门方法。

我应该怎么做才能在我的Windows机器上获得正确的页面?我已经用其他信息编辑了我的答案,并测试了解决方案,并提供了一些示例输出。希望有帮助!谢谢我将容器的ip地址复制到Windows中的FireFox浏览器中,得到了页面,但我不明白为什么不能在edge浏览器中获得具有相同ip地址的页面。我刚刚在edge中尝试过,与FireFox的唯一区别是,我必须在FireFox中编写“”,它可以使用或不使用“http://”。我不使用Edge,所以我不能帮你更多。如果我的回答对您有所帮助并回答了您的问题,请记住将其视为正确答案。“因为页面在您的机器localhost上不可访问,但在您的容器localhost上不可访问”,但这就是端口绑定的用途??(-P80:80)