docker에서 MySQL 샘플 데이터베이스의 Sakila를 사용한 환경을 즉시 사용할 수 있도록 설정해 보았습니다.

6409 단어 MySQLphpMyadmin도커
나는 도커 초보자입니다. 실수나 더 좋은 방법이 있으면 가르쳐 주시면 고맙습니다.

Sakila는 MySQL이 공식적으로 준비한 샘플 데이터베이스입니다.

여기에서 다운로드할 수 있습니다.

DVD 렌탈 정보가 저장되어 있는 데이터베이스로, 개인적으로는 MySQL의 데이터를 사용해 시험하고 싶을 때에 사용하는 것이 편리하다고 생각합니다.

그것을 docker로 조금 환경을 만들 수 있도록 해 보았습니다.

참고
  • docker-compose로 MySQL 환경을 쉽게 구축 - Qiita
  • MySQL의 Sakila Sample Database를 사용해 보자 - 주부 때때로 프로그래머

  • Dockerfile 만들기



    mysql의 공식 이미지를 사용하여 Dockerfile를 설정해 보았습니다.

    Dockerfile
    FROM mysql:8
    
    ENV MYSQL_ROOT_PASSWORD=root
    
    RUN apt-get update \
        && apt-get install -y wget unzip \
        && wget http://downloads.mysql.com/docs/sakila-db.zip \
        && unzip sakila-db.zip \
        # docker-entrypoint-initdb.d/ の .sql ファイルが自動でアルファベット順に実行されるので、リネームしつつ移動
        && mv sakila-db/sakila-schema.sql /docker-entrypoint-initdb.d/01_sakila-schema.sql \
        && mv sakila-db/sakila-data.sql /docker-entrypoint-initdb.d/02_sakila-data.sql
    
    Dockerfile 를 빌드하고 컨테이너 만들기
    $ docker build -t sample .
    (省略)
    $ docker run --name sakila -d sample
    (省略)
    $ docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                 NAMES
    a599ee328437        sample              "docker-entrypoint.s…"   About a minute ago   Up About a minute   3306/tcp, 33060/tcp   sakila
    

    mysql에 연결하고 show tables; 실행
    $ docker container exec -it sakila mysql -uroot -proot -Dsakila
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 9
    Server version: 8.0.21 MySQL Community Server - GPL
    
    Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> show tables;
    +----------------------------+
    | Tables_in_sakila           |
    +----------------------------+
    | actor                      |
    | actor_info                 |
    | address                    |
    | category                   |
    | city                       |
    | country                    |
    | customer                   |
    | customer_list              |
    | film                       |
    | film_actor                 |
    | film_category              |
    | film_list                  |
    | film_text                  |
    | inventory                  |
    | language                   |
    | nicer_but_slower_film_list |
    | payment                    |
    | rental                     |
    | sales_by_film_category     |
    | sales_by_store             |
    | staff                      |
    | staff_list                 |
    | store                      |
    +----------------------------+
    23 rows in set (0.00 sec)
    
    mysql> 
    

    Sakila 샘플 db가 생성되었음을 확인할 수 있습니다.

    phpmyadmin에서도 볼 수 있도록 시도했습니다.



    이전 Dockerfile와 같은 디렉토리에 docker-compose.yml를 만듭니다.

    docker-compose.yml
    version: "3"
    
    services:
        db:
            build: .
            container_name: mysql
    
        phpmyadmin:
            container_name: phpmyadmin
            image: phpmyadmin/phpmyadmin
            environment:
                - PMA_ARBITRARY=1
                - PMA_HOST=mysql
                - PMA_USER=root
                - PMA_PASSWORD=root
            ports:
                - 8080:80
    
    $ docker-compose up -d
    



    이상입니다.

    좋은 웹페이지 즐겨찾기