[Docker] 배포를 위한 DB 이미지 컨테이너에 띄우기 및 세팅 (ex. MySQL(mariaDB)

2023. 5. 11. 17:49Docker

MariaDB 최신 이미지 실행

# 컨테이너 실행
docker run \
  --name mariadb_1 \
  -d \
  --restart unless-stopped \
  -e MARIADB_ROOT_PASSWORD=lldj123414 \
  -e TZ=Asia/Seoul \
  -p 3306:3306 \
  -v /docker_projects/mariadb_1/conf.d:/etc/mysql/conf.d \
  -v /docker_projects/mariadb_1/mysql:/var/lib/mysql \
  -v /docker_projects/mariadb_1/run/mysqld:/run/mysqld/ \
  mariadb:latest

 

보안설정

docker exec -it mariadb_1 /usr/bin/mariadb-secure-installation
  • Enter current password for root (enter for none):
    • root 계정 패스워드(lldj123414) 입력
  • Switch to unix_socket authentication [Y/n] n
  • Change the root password? [Y/n] n
  • 나머지 Y

 

마스터계정(lldj 생성) 및 DB 생성

#접속
docker exec -it mariadb_1 mysql -u root -p
  • GRANT ALL PRIVILEGES ON *.* TO lldj@'%' IDENTIFIED BY 'lldj123414';
    • # lldj 계정이 아이디와 비번만 알면 어디서든 접속이 가능하도록 설정
  • GRANT ALL PRIVILEGES ON *.* TO lldjlocal@127.0.0.1 IDENTIFIED BY '1234';
    • # lldjlocal 계정이 MariaDB 컨테이너에서만 접속 가능하도록 허용
  • GRANT ALL PRIVILEGES ON *.* TO lldjlocal@'172.17.%.%' IDENTIFIED BY '1234';
    • # lldjlocal 계정이 같은 도커 호스트를 공유하는 컨테이너에서 접속 가능하도록 허용
  • CREATE DATABASE nginx;
    • # NGINX PROXY MANAGER 를 위함