본문 바로가기

DevOps/Docker

[Docker] 2. mariadb 컨테이너 설치 및 세팅

 

Docker 환경에서 mariadb 컨테이너를 설치하고 세팅을 할 것입니다.

 

mariadb 컨테이너의 name을 mariadb__1로 할 것이고, password는 테스트 용이기 때문에 없이 진행할 것입니다. (또는, 1234)

 

mariadb__1 컨테이너 설치 및 세팅

 

mariadb__1 컨테이너 실행

# 컨테이너 실행

docker run \
  --name mariadb__1 \
  -d \
  --restart unless-stopped \
  -e MYSQL_ALLOW_EMPTY_PASSWORD=true \
  -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 run \
  --name mariadb__1 \
  -d \
  --restart unless-stopped \
  -e MARIADB_ROOT_PASSWORD=1234 \
  -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

 

mariadb__1 컨테이너 설정 세팅

여기서 우리는 exec 라는 실행 명령어를 꼭! 추가해주어야 합니다.

실행 환경을 간단하게 설명해보자면...

CentOS  =>  Docker  => mariadb__1

'ls' 명령어만 입력 시, 우리는 기본적을 CentOS 환경에 존재하므로, CentOS 환경에서 명령어가 작동합니다.

mariadb__1 안에서 명령어를 실행시키기 위해서는 docker exec mariadb__1 이라는 명령어를 추가로 해야합니다.

 

# mariadb__1 컨테이너 안에서 ls 명령을 실행
docker exec mariadb__1 ls


# mariadb__1 컨테이너 안에서 mysql -u root -p 명령을 실행
# 복잡한 명령언 -it 옵션을 붙어야 한다.
docker exec -it mariadb__1 mysql -u root -p
  • exec : 현재 실행중인 컨테이너에 접속하는 명령어

 

MYSQL 보안설정, 마스터 계정 생성, 필수 DB 생성

# 보안설정
docker exec -it mariadb__1 /usr/bin/mariadb-secure-installation
- Switch to unix_socket authentication [Y/n] n
- Change the root password? [Y/n] n
- 나머지 Y

# 마스터계정(sbsst 생성) 및 DB 생성
docker exec -it mariadb__1 mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO dltmdals1620@`%` IDENTIFIED BY '1234';
CREATE DATABASE nginx;
CREATE DATABASE site1;
CREATE DATABASE site2;
CREATE DATABASE site3;
CREATE DATABASE site4;