Docker - 如何一次拉/推多个镜像?

问题描述 投票:0回答:1

我有一个项目,包含 2 个前端应用程序(React)、1 个后端应用程序(Node)、mongodb 和 redis。

我的项目文件夹是这样的

_> client
   |_>  Dockerfile // Dockerfile for first react app
_> panel
   |_> Dockerfile // Dockerfile for seconde react app
_> mongo
   |_> Dockerfile // It contains initial datas for database
_> server
   |_> Dockerfile // Docker file for nodejs backend
_> docker-compose.yml

每个项目文件夹下还有package.json等文件夹,但我没有详细介绍

我的 docker-compose 文件是这样的

version: '3'
services:
  testproject-client:
    container_name: testproject-client
    build: ./client
    image: bk52/testproject-client:latest
    ports:
      - 9200:5173
    depends_on:
      - testproject-server
  testproject-panel:
    container_name: testproject-panel
    build: ./panel
    image: bk52/testproject-panel:latest
    ports:
      - 9400:5174
    depends_on:
      - testproject-server
  testproject-server:
    container_name: testproject-server
    build:
      context: ./server
      dockerfile: Dockerfile
    image: bk52/testproject-server:latest
    ports:
      - 9600:9600
    depends_on:
      - testproject-mongo
      - testproject-redis
  testproject-mongo:
    container_name: testproject-mongo
    build: ./mongo
    environment:
      MONGO_INITDB_ROOT_USERNAME: my_test_user
      MONGO_INITDB_ROOT_PASSWORD: my_test_password
      MONGO_INITDB_DATABASE: my-test-database
    ports:
      - 27018:27017
    volumes:
      - testproject-data:/data/db
  testproject-redis:
    container_name: testproject-redis
    image: 'redis'
    ports:
      - 6379:6379
volumes:
  testproject-data:

项目使用 docker-compose 在本地运行成功。为了使项目成功运行,必须安装所有组件(mongo、redis、后端和两个前端应用程序)。

我命名了后端和前端图像并将它们上传到 docker-hub。

  • bk52/testproject-client:最新
  • bk52/testproject-面板:最新
  • bk52/testproject-服务器:最新

当我从 Docker Hub 拉取这些镜像时,Mongo 和 Redis 不会自动加载。它不会为 Mongodb 创建包含初始数据的表。此外,它不会在 docker-compose 中执行必要的卷和端口映射。

有没有一种方法或途径可以让我将这个项目推送到docker hub或立即将其拉到另一个环境?

谢谢

docker docker-compose dockerfile dockerhub
1个回答
0
投票

当您从 Docker Hub 拉取 Docker 映像时,请务必注意,映像本身仅包含相应软件(MongoDB、Redis 等)的基本安装。如果您需要特定的配置、初始数据、卷映射或端口映射,则必须在 docker-compose.yml 文件或 Docker run 命令中进行设置。将服务添加为 mango:latest....它将起作用.!!!

© www.soinside.com 2019 - 2024. All rights reserved.