1. ホーム
  2. mysql

[解決済み] インポート data.sql MySQL Docker Container

2022-09-05 05:59:04

質問

data.sql がある場合、どのように mysql docker コンテナにデータベースをインポートすることができますか?どのように私はデータベースのデータをインポートすることができます。ドッカー化された世界では、これは複雑なレイヤーを追加します。いくつかのメソッドをお願いします。

私のdocker-compose.ymlはこちらです。

nginx:
  build: ./nginx/
  container_name: nginx-container
  ports:
    - 80:80
  links:
    - php
  volumes_from:
    - app-data

php:
  build: ./php/
  container_name: php-container
  expose:
    - 9000
  links:
    - mysql
  volumes_from:
    - app-data

app-data:
  image: php:7.0-fpm
  container_name: app-data-container
  volumes:
    - ./www/html/:/var/www/html/
  command: "true"

mysql:
  image: mysql:latest
  container_name: mysql-container
  ports:
    - 3306:3306
  volumes_from:
    - mysql-data
  environment:
    MYSQL_ROOT_PASSWORD: secret
    MYSQL_DATABASE: name_db
    MYSQL_USER: user
    MYSQL_PASSWORD: password

mysql-data:
  image: mysql:latest
  container_name: mysql-data-container
  volumes:
    - /var/lib/mysql
  command: "true"

どのように解決するのですか?

最新のmysqlやmysql:5.7では動作させることができないようです。そこで、私は代わりにmariaDBを使用しています。以下は私の docker-compose.yaml のコードです。

version: '3'

services:
  mysql:
    image: mariadb:10.3
    container_name: mariadb
    volumes:
      - container-volume:/var/lib/mysql
      - ./dump.sql:/docker-entrypoint-initdb.d/dump.sql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: name_db
    ports:
      - "3306:3306"

volumes:
  container-volume: