You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Docker Compose从本地运行的私有Nexus镜像仓库拉取镜像

解决Docker Compose从本地Nexus私有仓库拉取镜像的问题

我来帮你搞定这个问题——你遇到的核心问题是当docker-compose.yml里同时存在build和image字段时,Docker Compose会优先执行镜像构建,而不是直接拉取你指定的私有仓库镜像。

问题根源

你当前的配置里包含build节点,这会告诉Compose:"我要从当前目录的Dockerfile构建一个镜像,然后把它打上127.0.0.1:8123/node-web-app:latest的标签"。所以哪怕你已经在私有仓库里推了这个镜像,Compose还是会走构建流程,而不是拉取。

解决方案:移除构建配置,仅保留镜像地址

把docker-compose.yml里的build相关配置删掉,只保留image字段及其他容器运行配置,这样Compose就会尝试从你的Nexus仓库拉取镜像了。修改后的配置如下:

services:
  frontapp1:
    image: localhost:8123/node-web-app:latest
    container_name: nodejs
    restart: unless-stopped
    ports:
      - "49160:8080"

额外确认点

你关于Nexus端口的猜测是对的:Nexus的UI端口(8081)和镜像仓库的端口(8123)是分开配置的,拉取镜像确实应该用8123端口——你已经通过docker pull localhost:8123/node-web-app:mytag成功拉取,说明这个地址完全没问题,不用改用8081。

可选的清理步骤(如果需要)

如果你之前已经通过docker-compose build或者本地Dockerfile构建过同名的镜像,可能需要先清理本地的镜像缓存,确保Compose从私有仓库拉取而不是使用本地镜像:

docker rmi localhost:8123/node-web-app:latest

之后再执行docker-compose up,就能看到Compose从你的Nexus仓库拉取镜像并启动容器了。

内容的提问来源于stack exchange,提问作者mr.Gray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 20:22:39