首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另一台机器组装存取容器

从另一台机器组装存取容器
EN

Stack Overflow用户
提问于 2022-03-31 13:04:23
回答 1查看 137关注 0票数 0

我通过docker-come.yml使用Jenkins部署了Spring应用程序。我可以访问创建的容器,但不能从同一网络上的另一台机器访问容器。

我使用的命令:

代码语言:javascript
复制
docker-compose run -d app 

docker-compose.yml

代码语言:javascript
复制
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):

代码语言:javascript
复制
http://1.2.3.4:8000

我试图通过访问URL来访问网络中的另一台计算机,如下所示(假设主机具有IP2.3.4.5):

代码语言:javascript
复制
http://2.3.4.5:8000

但是,我无法像在主机上那样看到已部署的网页,错误如下:

代码语言:javascript
复制
This site can’t be reached
x.x.x.x refused to connect.
EN

回答 1

Stack Overflow用户

发布于 2022-03-31 16:49:39

您的问题是使用docker-compose run命令。来自文献资料

第二个不同之处是,docker-compose命令不会创建服务配置中指定的任何端口。这样可以防止端口与已经打开的端口发生冲突。

因为您使用的是run,所以没有配置主机端口8000和容器端口8000之间的端口映射。

正常的方式是通过使用up命令来生成一个坞-组合堆栈:

代码语言:javascript
复制
docker-compose up -d

如果要避免打开docker-compose.yaml文件中的所有服务,则可以指定单个服务:

代码语言:javascript
复制
docker-compose up -d app
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71692995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档