1. EC2 접속

2. 최신 mariadb docker image로 설치

  • docker pull mariadb

3. MariaDB 컨테이너 추가 및 구동

docker run --name mariadb -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mariadb mariadb

  • —name mariadb: 컨테이너 이름을 mariadb로 지정
  • -d: 컨테이너를 백그라운드로 실행
  • -p: 3306:3306: 호스트-컨테이너 간 포트 연결. 호스트에서 3306 포트 접속 시 컨테이너 3306 포트로 포워딩 됨
  • -e MYSQL_ROOT_PASSWORD=mariadb: 컨테이너 내 환경변수 설정. root 계정의 패스워드를 mariadb로 지정
  • mariadb: 다운로드 받은 이미지 이름

4. mariadb로 접속

  • docker exec -it mariadb /bin/bash
    • 정상적으로 접속되면 root 계정으로 컨테이너의 bash에 접속이 된다.
    • mariadb로 접속. 패스워드는 앞서 입력한 MYSQL_ROOT_PASSWORD 값mysql -u root -p

5. 한글을 사용하기 위해 characterset 변경

  1. status 명령어로 mariadb 상태 및 characterset 참조
  2. mariadb 컨테이너의 /etc/mysql/my.cnf 파일 수정
    • client → utf8mb4
    • mysql → utf8mb4
    • mysqld →
      • collation-server=utf8_unicode_ci
      • init-connect='SET NAMES utf8'
      • character-set-server = utf8
    • 변경된 내용 저장 후, 컨테이너 bash 접속 종료
    • 컨테이너 재가동
      • docker restart mariadb
    • 컨테이너 bash 접속, mariadb 접속 후 status 로 characterset utf8로 변경 확인한글을 사용하기 위해 characterset 변경
  3.  

 

cf. 컨테이너에서 vi 설치 (my.cnf 수정 중에 vi 가 없을 경우)

  1. 컨테이너의 os 확인: cat /etc/*-release
  2. vi 설치
apt-get update
apt-get install nano
apt-get install vim

 

다른 컨테이너에서 이미 이미지를 사용할 경우 발생하는 이슈

그 컨테이너가 실행 중이든 아니든 이미지를 사용한 컨테이너가 존재하고 있으면 이러한 충돌이 발생한다.

그 컨테이너를 다시 살려서 사용하든가 삭제한 후 다시 컨테이너를 생성해야 한다.

컨테이너 전체 목록 확인(stopped container 포함): docker ps -a

컨테이너 재실행: docker restart [containerId]

실행중인 컨테이너 확인: docker ps