[问题现象]
在Windows下使用docker启动了一个jenkins,翻越了无数的坑,最后的启动命令为
docker run --name jenkins -u root -p 8000:8000 -d -v /home/jenkins:/var/jenkins_home jenkins/jenkins
咋一看好像没问题,通过docker logs jenkins也可以看到是启动成功了
最后通过127.0.0.1:8000无法方程,提示拒绝连接127.0.0.1 拒绝了我们的连接请求。
经过搜索查阅资料,说是docker是在linux环境下运行的,Windows下启动docker本质是会启动一个虚拟机,在虚拟机上启动docker,
所以,这里的ip,也就是宿主机的ip应该是启动的这个虚拟机的ip,输入宿主机的ip 192.168.99.100,仍然无效
[问题原因]
ip是正确,地址也是没有输错的,防火墙也关了还是不行。最后才一次尝试中发现绑定ip的时候 -p 38080:8080是可以
对此开始产生了怀疑,进行了研究
发现当我们-p 绑定的ip不是8080的时候,会出现8080没有被映射的情况
以此猜测,jenkins在启动服务的时候,是用的8080端口,如果我们不把宿主机的端口映射到8080,就无法进行访问
即:jenkins启动的时候,端口起的是8080,我们要把宿主机的端口隐射到8080
[解决办法]
在启动容器的时候,直接通过-p 映射到8080
docker run --name jenkins -u root -p 8000:8080 -d -v /home/jenkins:/var/jenkins_home jenkins/jenkins
通过docker ps 可以查看到8000已经映射到了8080
此时在浏览器输入192.168.99.100:8000即可打开jenkins页面