docker-compose로 MySQL 실행
오늘의 제목.
나는 MySQL을 Jitis(prosody)의 사용자 저장소로 이용하고 싶다.
AWS RDP를 사용하면 되지만 대량의 데이터 양과 거래가 발생할 것이라고는 상상하기 어렵다.
비용을 고려하여 Jitsi와 같은 서버에서 Docker로 MySQL을 구축하고자 합니다.(RDS의 비용은 매달 4000엔 정도 듭니다. AZ가 많으면 금액이 배로 늘어납니다. 제 예산으로는 지불할 수 없습니다.)
활용하고 싶으면 docker-compose로 활용하세요.
Docker 이미지 가져오기
아마 이게 공식 Docker 이미지일 거예요.
[root@meet ~]# docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
72a69066d2fe: Pull complete
...
e0431212d27d: Pull complete
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
[root@meet ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 3218b38490ce 8 days ago 516MB
...
[root@meet ~]#
사전 태그 준비
docker-compose.yml 파일을 준비합니다.
디렉토리 만들기
[root@meet meet]# pwd
/opt/jitsi/meet
[root@meet meet]# ls
docker-jitsi-meet
[root@meet meet]# mkdir mysql
docker-compose.파일 만들기[root@meet meet]# cd mysql
※my.cnf等の格納先DIR
[root@meet mysql]# mkdir db
[root@meet mysql]# mkdir db/data
[root@meet mysql]# mkdir db/conf.d
[root@meet mysql]# mkdir db/sql
[root@meet mysql]# mkdir db/log
[root@meet mysql]# vi docker-compose.yml
version: '3'
services:
# MySQL
db:
container_name: mysql
image: mysql:latest
command: mysqld --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: prosody
MYSQL_USER: prosody_user
MYSQL_PASSWORD: prosody_password
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
expose:
- '3306'
volumes:
- '/opt/jitsi/meet/mysql/db/data:/var/lib/mysql'
- '/opt/jitsi/meet/mysql/db/conf.d:/etc/mysql/conf.d'
- '/opt/jitsi/meet/mysql/db/sql:/docker-entrypoint-initdb.d'
networks:
meet.jitsi:
networks:
meet.jitsi:
docker-compose 시작
[root@meet mysql]# docker-compose up -d
[+] Running 2/2
⠿ Network mysql_meet.jitsi Created 0.0s
⠿ Container mysql Started 0.6s
[root@meet mysql]#
MySQL 컨테이너에 들어가 DB 만들기
[root@meet mysql]# docker-compose exec db /bin/bash
root@0ded1560f41a:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.27 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
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>
mysql> CREATE DATABASE prosody;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE USER 'prosody'@'%' IDENTIFIED BY 'prosody_password';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON prosody . * TO 'prosody'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| prosody |
| sys |
+--------------------+
5 rows in set (0.01 sec)
앞으로의 과제
Jitsi와 MySQL을 연결하는 방법
이번 소요 시간
여기까지는 두 시간 정도 걸립니다.
그러나 LOG 파일을 volumes로 연결하려면 몇 시간 동안 연결할 수 없습니다...
앞으로의 과제다.
Reference
이 문제에 관하여(docker-compose로 MySQL 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/kurayasu/articles/1ef33532ebad99텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)