docker에서 MySQL 샘플 데이터베이스의 Sakila를 사용한 환경을 즉시 사용할 수 있도록 설정해 보았습니다.
6409 단어 MySQLphpMyadmin도커
Sakila는 MySQL이 공식적으로 준비한 샘플 데이터베이스입니다.
여기에서 다운로드할 수 있습니다.
DVD 렌탈 정보가 저장되어 있는 데이터베이스로, 개인적으로는 MySQL의 데이터를 사용해 시험하고 싶을 때에 사용하는 것이 편리하다고 생각합니다.
그것을 docker로 조금 환경을 만들 수 있도록 해 보았습니다.
참고
Dockerfile 만들기
mysql의 공식 이미지를 사용하여 Dockerfile
를 설정해 보았습니다.
DockerfileFROM 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.ymlversion: "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
이상입니다.
Reference
이 문제에 관하여(docker에서 MySQL 샘플 데이터베이스의 Sakila를 사용한 환경을 즉시 사용할 수 있도록 설정해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/okumurakengo/items/727d15e3ab2d22cdb1f8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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
$ 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
$ 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>
이전
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
이상입니다.
Reference
이 문제에 관하여(docker에서 MySQL 샘플 데이터베이스의 Sakila를 사용한 환경을 즉시 사용할 수 있도록 설정해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/okumurakengo/items/727d15e3ab2d22cdb1f8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)