首页 > 解决方案 > 如何启动使用 compose 创建的多个 docker 图像并上传到另一台服务器?

问题描述

docker-compose.yml用一些服务创建了文件:db - wordpress - phpmyadmin。

我使用以下命令导出了服务:

docker save $(docker images | sed '1d' | awk '{print $1 ":" $2 }') -o allinone.tar

我使用以下命令将它们导入新服务器:

docker load -i allinone.tar

现在的结果docker images如下:

REPOSITORY          TAG                 IMAGE ID            CREATED         SIZE
mysql               8.0                 86xxxxxd20        x days ago        xxxxB
wordpress           latest              bxxxxxxe65        x days ago        xxxxB
phpmyadmin          latest              cfxxxxae14        x days ago        xxxxB

我不明白如何像在另一台服务器上一样启动它们。

如果我使用 docker-compose,它说我没有 yml 文件,我每次都必须重新创建它吗?

也许我应该用 docker build 创建一个构建?

编辑: 我将此配置用于测试目的:

services:
  db:
    image: mysql:8.0
    container_name: db
    restart: unless-stopped
    environment:
      - MYSQL_DATABASE=wordpress
    volumes: 
      - dbdata:/var/lib/mysql
    command: '--default-authentication-plugin=mysql_native_password'
    networks:
      - app-network

  wordpress:
    depends_on: 
      - db
    image: wordpress:5.4.2-fpm-alpine
    container_name: wordpress
    restart: unless-stopped
    environment:
      - WORDPRESS_DB_HOST=db:3306
      - WORDPRESS_DB_USER=user
      - WORDPRESS_DB_PASSWORD=password
      - WORDPRESS_DB_NAME=wordpress
    volumes:
      - wordpress:/var/www/html
    networks:
      - app-network

  phpmyadmin:
    depends_on: 
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - 3333:80
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORT: password
    networks:
      - app-network


volumes:
  wordpress:
  dbdata:

networks:
  app-network:
    driver: bridge

标签: dockerdocker-compose

解决方案


The docker-compose.yml file contains the orchestration between these containers.

If you want to keep this orchestration you must reuse this yml file and run it with docker-compose up.


推荐阅读