2016-11-24 52 views
0

我有這樣如何在開始時將我的數據庫轉儲導入mariadb?

version: '2' 

services: 

    wordpress: 
    image: wordpress 
    ports: 
     - 8080:80 
    environment: 
     WORDPRESS_DB_NAME: my_wp 
     WORDPRESS_DB_USER: my_user 
     WORDPRESS_DB_PASSWORD: my_pass 
    volumes: 
     - ./src:/var/www/html 

    mysql: 
    image: mariadb 
    environment: 
     MYSQL_ROOT_PASSWORD: my_pass 
    volumes: 
     - ./db:/etc/mysql 

我可以使用以下命令docker-compose up運行我containsers泊塢窗,compose.yml文件,它工作正常,但顯示了空DB設置默認的WordPress站點。我想要的是,我有一個數據庫轉儲文件my_db.sql,我想在初始化時加載到mariadb中。我怎樣才能做到這一點?我需要把我的my_db.sql文件放到mariadb容器中?

回答

1

你有3種選擇:

  1. 裝載您.sql文件/docker-entrypoint-initdb.d/

    version: '2' 
    
    services: 
    
        wordpress: 
        image: wordpress 
        ports: 
         - 8080:80 
        environment: 
         WORDPRESS_DB_NAME: my_wp 
         WORDPRESS_DB_USER: my_user 
         WORDPRESS_DB_PASSWORD: my_pass 
        volumes: 
         - ./src:/var/www/html 
    
        mysql: 
        image: mariadb 
        environment: 
         MYSQL_ROOT_PASSWORD: my_pass 
        volumes: 
         - ./db:/etc/mysql 
         - ./my_db.sql:/docker-entrypoint-initdb.d/my_db.sql 
    
  2. 使用編譯指令在docker-compose文件,並指向一個dockerfile具有以下內容:

    FROM mysql 
    COPY my_db.sql /docker-entrypoint-initdb.d 
    
  3. 創建一個虛擬容器,安裝/my/own/datadir:/var/lib/mysql,然後使用docker exec手動還原數據庫,然後在需要容器中的該數據庫時可以使用主機目錄。

+0

我到底需要更新我的docker-compose.yml文件? – coure2011

+0

添加了答案的示例。 –

+0

thx,我選擇了第一個選項:) – coure2011

0

用數據庫定義的volumes部分的容器將SQL文件夾裝載到/docker-entrypoint-initdb.d。任何.sql(和.sql.gz)文件將自動運行。

有關詳細信息,請參見docsInitializing a fresh instance部分。

相關問題