问题主机参数
  • 自建的dell服务器,云服务器一般不会出现这种问题。人都给处理好了。
  • centos8、centos7 均有发生。
  • Linux localhost.localdomain 4.18.0-193.el8.x86_64 #1 SMP Fri May 8 10:59:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  • docker版本:1.13 ~ 1.19 均有发生。

均有发生是因为我花了3天时间都一一尝试过了!

docker端口映射后发现服务器localhost可以正常访问。但局域网内其他主机无法访问。
然后蛋疼的来了:
执行开放防火墙端口操作如下:

firewall-cmd --zone=public --add-port=8761/tcp --permanent
firewall-cmd --reload

没有任何效果!!真的没有任何效果!

依旧是localhost可以正常访问。但局域网内其他主机无法访问。
说的更详细点:我开放的8761端口,只有在本机访问http://127.0.0.1:8761时正常。其他机器无法通过 ip+端口 访问!!
.
然而此时端口已经通过docker-compose对外开放!!!
docker-compose截取部分配置如下:

 eureka:
    image: eureka:latest
    privileged: true
    ports:
      - "8761:8761"
    networks:
        ipv4_address: 192.168.45.3
先说解决方案

原文如下:

Replying to my previous comment. The issue was our docker-compose specified another network ie
networks:
  default:
Therefore all our containers were not on the docker0 bridge but on a randomly generated bridge.
To fix this restructured our docker-compose.yml
networks:
  default:
  driver_opts:
  com.docker.network.bridge.name: "dockernet"
Next ran
firewall-cmd --permanent --zone=trusted --change-interface=dockernet
And worked like a charm

当然执行前先清理环境。

docker-compose stop
docker-compose rm
(如果配置了网络的话)
docker  network list
docker network rm xxx 
这是为什么呢??????

我的 docker-compose指定了 另一个网络,所以生成的容器都在这个新建的网络上而不是 docker0上。那么让防火墙信任这个新建的网络即可。

只能说我基础不足,恶补了防火墙相关知识。也算有些收获。

问题主机参数自建的dell服务器,云服务器一般不会出现这种问题。人都给处理好了。centos8、centos7 均有发生。Linux localhost.localdomain 4.18.0-193.el8.x86_64 #1 SMP Fri May 8 10:59:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linuxdocker版本:1.13 ~ 1.19 均有发生。均有发生是因为我花了3天时间都一一尝试过了!问题描述docker端口映射后发现服务器loc
docker容器在启动的时候,如果不指定端口映射参数,在容器外部是无法过网络来访问容器内的网络应用和服务的。 亦可使用Dockerfile文件中的EXPOSE指令来配置。 端口映射可使用-p、-P来实现: -p指定要映射的端口,一个指定端口上只可以绑定一个容器 -P将容器内部开放的网络端口随机映射到宿主机的一个端口上 端口映射支持的格式: ip:hostport:containerport #指定ip、指定宿主机port、指定容器port ip::containerport #指定ip、未指定宿主机port(随机)、指定容器port hostport:containerport
< dependency> < groupId>com.dkanejs.maven.plugins</ groupId> < artifactId>docker-compose-maven-plugin</ artifactId> < version>$VERSION</ version> </ dependency> Maven插件,用于过Maven运行基本的docker-compose命令。 它可以用作Maven生命周期的一部分,也可以用作将do Docker-Compose命令格式 docker-compose [-f …] [options] [COMMAND] [ARGS…] 命令选项如下: -f,–file FILE指定Compose模板文件,默认为docker-compose.yml,可以多次指定。 -p,–project-name NAME指定项目名称,默认将使用所在目录名称作为项目名。 -x-network-driver 使用Docker的可拔插网络后端特性(需要Docker 1.9+版本) -x-network-
最近在用docker-compose编排项目的例子中发现一个比较基本的问题,项目是打包部署好了,但是怎么将这个项目开放到对外访问呢?在网上找了资料发现好像没有这方面的说明,于是想自己录一下整个操作的过程,实际也是运用docker网络的知识点来解决,其实还是比较简单的。 将项目打为jar包,编写dockerfile与docker-compose.yml文件,上传到一个目录中: 其中Dockerfile内容,都是比较简单的复制jar包,开发端口,执行启动脚本 docker-compose.yml也.
curl -L https://github.com/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose 或者使用包管理工具:...
Compose负责实现对Docker容器集群的快速编排。定位是 定义和运行多个Docker容器的应用,前身是Fig。 Compose允许用户过单一docker-compose.yml模板文件(YAML格式)来定义一组相关的应用容器为一个项目。过子命令对项目中的一组容器进行生命周期管理。 Compose中两个重要概念: 服务(service):一个应用的容器,实际上可以包含若干运行相...
docker启动报错 Cannot start service redis: oci runtime error: container_linux.go:247: starting containe