docker-compose로 MySQL 실행

4193 단어 AWSDockerMySQLtech
안녕하세요.

오늘의 제목.


나는 MySQL을 Jitis(prosody)의 사용자 저장소로 이용하고 싶다.
AWS RDP를 사용하면 되지만 대량의 데이터 양과 거래가 발생할 것이라고는 상상하기 어렵다.
비용을 고려하여 Jitsi와 같은 서버에서 Docker로 MySQL을 구축하고자 합니다.(RDS의 비용은 매달 4000엔 정도 듭니다. AZ가 많으면 금액이 배로 늘어납니다. 제 예산으로는 지불할 수 없습니다.)
활용하고 싶으면 docker-compose로 활용하세요.

Docker 이미지 가져오기


아마 이게 공식 Docker 이미지일 거예요.
https://hub.docker.com/_/mysql
[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로 연결하려면 몇 시간 동안 연결할 수 없습니다...
앞으로의 과제다.

좋은 웹페이지 즐겨찾기