云服务器开放了8080端口,但本地却telnet不通。

jenkins 调用接口传输文件_docker


防火墙是关的.

原因应该是8080端口没有服务,也就是没被服务占用的话(用netstat -lnp指令找不到的话),是telnet不通的。

nginx使用了80端口,本地telnet通。

jenkins 调用接口传输文件_jenkins_02


关闭后就不行了。

jenkins 调用接口传输文件_jenkins_03


jenkins 调用接口传输文件_80端口_04

在云服务器上用docker启动jenkins,但执行命令后,却没启动成功,docker -ps没有进程。

jenkins 调用接口传输文件_jenkins 调用接口传输文件_05


另外:

jenkins 调用接口传输文件_80端口_06


应该不是:

jenkins 调用接口传输文件_jenkins_07


补充一个问题:

jenkins 调用接口传输文件_运维_08


jenkins 调用接口传输文件_80端口_09


container id 和 容器的id 难道是两个不同玩意。还是单纯前者没显示完?

先不管了。现在通过docker ps -a 找到正确的容器信息,并启动后,虽然显示在运行,但8080端口却未被占用。

jenkins 调用接口传输文件_jenkins 调用接口传输文件_10

jenkins 调用接口传输文件_运维_11


jenkins 调用接口传输文件_运维_12


难道是因为启动时的指令没有指定端口映射?

jenkins 调用接口传输文件_运维_13

本地测试确定:

容器启动后,它映射的主机端口会被使用。

jenkins 调用接口传输文件_80端口_14


所以linux服务器上容器虽然启动,但它映射主机的8080端口应当被占用。看了下其它文章,发现,如果有正确的映射的话,

docker ps应该会显示

宿主机端口->运行容器端口

这样的信息。

jenkins 调用接口传输文件_jenkins 调用接口传输文件_15

jenkins 调用接口传输文件_docker_16


既然如此就去添加映射。

具体参考:

https://blog.csdn.net/muzi_87/article/details/127521247?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168515741616800222897481%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168515741616800222897481&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-127521247-null-null.142v88insert_down38v5,239v2insert_chatgpt&utm_term=docker%20%E7%BB%99%E5%AE%B9%E5%99%A8%E9%87%8D%E6%96%B0%E6%98%A0%E5%B0%84%E7%AB%AF%E5%8F%A3&spm=1018.2226.3001.4187下图中的端口是我添加后才有的,一开始根本就是空的。

jenkins 调用接口传输文件_docker_17

jenkins 调用接口传输文件_jenkins 调用接口传输文件_18


但有个问题,就是修改后,再启动容器又恢复默认文件了,没有了端口映射。

可能要整个重启docker.烦了,直接新建一个容器(docker run 是根据已有镜像生成一个新容器,而不是直接运行已有容器,否则就不用配镜像了。start是直接运行容器。):

jenkins 调用接口传输文件_docker_19


本地也是能telnet通了。

浏览器也能访问界面了。

jenkins 调用接口传输文件_jenkins_20

补充:
docker run -dit --name jenkins -p 8080:8080 jenkinsci/blueocean 是正常的
docker run -dit --name jenkins -p 8080:8080 jenkinsci/blueocean /bin/bash 后者是不正常的(会导致浏览器访问不了8080端口)