如何启动使用compose创建并上传到另一台服务器的多个docker镜像?

时间:2020-07-27 11:24:46

标签: docker docker-compose

我使用以下服务创建了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创建一个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

1 个答案:

答案 0 :(得分:0)

docker-compose.yml文件包含这些容器之间的编排。

如果要保留此业务流程,则必须重用此yml文件并使用docker-compose up运行它。