我开始玩码头工作了一段时间并陷入了下面的困境:
这是我的环境:
myForm.DataBindings.Add(new Binding("Items", ItemsController.Singleton, "Items")
{
DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged,
ControlUpdateMode = ControlUpdateMode.Never
});
这就是我想要做的事情:
Windows 10
boot2docker/Docker version 1.12.0
Virtual box 5.0.24
从容器中取出然后
$ docker run -itp 8090:8090 lamp
root@8ebc390337be:/# service apache2 start
* Starting web server apache2 *
root@8ebc390337be:/# service mysql start
* Starting MySQL database server mysqld [ OK ]
root@8ebc390337be:/#
现在我试图运行
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8ebc390337be lamp "/bin/bash" 13 minutes ago Up 13 minutes 0.0.0.0:8090->8090/tcp happy_brown
$ docker inspect $(docker ps -q) | grep IPA
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAMConfig": null,
"IPAddress": "172.17.0.2",
然后我试了
$ curl 172.17.0.2:8090
curl: (7) Failed to connect to 172.17.0.2 port 8090: Timed out
我确实经历了这个accessing-a-docker-container-url-on-windows-host,但它并没有帮助我。
我应该可以从码头工人的内部和外部访问网址。
有人可以帮我解决问题吗
答案 0 :(得分:2)
这是您应该使用的192.168.99.100
我预计问题是您的apache服务器位于容器内的端口80上,而不是8090,即您的docker命令应该是:
$ docker run -itp 8090:80 linode/lamp
这意味着将外部主机(192.168.99.100
)上的端口8090映射到容器内的端口80。