我通过docker-come.yml使用Jenkins部署了Spring应用程序。我可以访问创建的容器,但不能从同一网络上的另一台机器访问容器。
我使用的命令:
docker-compose run -d app docker-compose.yml
version: '3.1'
services:
app:
container_name: xxxxxx
image: xxxxxx
build: ./
ports:
- "8000:8000"
restart: always
environment:
- POSTGRES_DB_HOST="xxxxxxxxx"
- POSTGRES_PASSWORD="xxxxx"
- POSTGRES_USER="postgres"
- POSTGRES_DB="db_name"如何解决这个问题?提前谢谢。
编辑:
在Jenkins成功部署应用程序后,我使用docker inspect检查容器的IP,然后使用以下URL访问主机(假设容器具有IP1.2.3.4):
http://1.2.3.4:8000我试图通过访问URL来访问网络中的另一台计算机,如下所示(假设主机具有IP2.3.4.5):
http://2.3.4.5:8000但是,我无法像在主机上那样看到已部署的网页,错误如下:
This site can’t be reached
x.x.x.x refused to connect.发布于 2022-03-31 16:49:39
您的问题是使用docker-compose run命令。来自文献资料
第二个不同之处是,docker-compose命令不会创建服务配置中指定的任何端口。这样可以防止端口与已经打开的端口发生冲突。
因为您使用的是run,所以没有配置主机端口8000和容器端口8000之间的端口映射。
正常的方式是通过使用up命令来生成一个坞-组合堆栈:
docker-compose up -d如果要避免打开docker-compose.yaml文件中的所有服务,则可以指定单个服务:
docker-compose up -d apphttps://stackoverflow.com/questions/71692995
复制相似问题