ETC/Docker

Mysql 설정 및 기본 명령어

Raconer 2023. 8. 3. 14:44
728x90

Docker Mysql 사용하기

사용되는 Docker 기술

  • Image/GCR(Google Container Registry)
    • Docker Repository에 있는 Mysql Pull 및 이미지화
    • 이미지 이름 변경
  • Container/Volume/Mount
    • Pull 받은 Mysql을 Container를 실행
    • Volume를 설정하여 Docker가 종료되도 데이터 삭제 방지
    • Mount하여 호스트 컴퓨터(사용자 컴퓨터) Docker 서버에 맵핑 시킨다.

실행 방법

  1. Docker Pull GCR

    •   docker pull mysql
  2. Image 이름 변경

    •   docker tag mysql new-mysql
  3. Container 실행

    • 기본 실행

      •   docker run -e MYSQL_ROOT_PASSWORD=root mysql
      • 설명

        • -e : 환경 변수 설정으로 기본 비밀번호를 위해 추가
      • 문제점

        • 포트포워딩을 하지 않아 사용자 컴퓨터에서 Mysql 사용하고 있다면 접근 할수가 없다.
        • 이 부분은 어떻게 접근하는지 Mysql 삭제 등 여러 테스트가 필요 할거 같다.
    • 포트포워딩 추가

      •   docker run -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql
      • 설명

        • -p
          • 추가 하여 포트포워딩을 설정했다.
          • 3307로 접근하면 콘테이너 안의 3306으로 접근이 된다.
          • 콘테이너는 별도의 가상 서버 이므로 사용자 사용포트와 도커의 포트는 별개로 생각하면된다.
    • 콘테이너 실행 이름 변경

      •   docker run  --name mysql-container  -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql
      • 설명

        • --name
          • 콘테이너 이름을 설정하였고 미 설정시 랜덤으로 아무 이름으로 변경된다.
    • 백그라운드 실행

      •   docker run -d  --name mysql-container  -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql
      • 설명

        • -d
          • 데몬 실행 명령어
    • 볼륨 설정(실행시 DB 자동 셋팅)

      •   docker run -d --name mysql-container  -e MYSQL_ROOT_PASSWORD=root -v /사용자 파일 패스/contents.sql:/docker-entrypoint-initdb.d/setup.sql mysql
      • 설명

        • -v
          • 미 적용시 Mysql에서 가상 주소로 자동 볼륨 설정이 되며 이는 운영체제에 따라 경로가 달라진다.
          • 맥북 같은 경우 가상 머신의 Path로 사용자 path로 직접 입력하지 않은 이상 접근 할수 없는 걸로 알고잇다.
          • (사용자 패스:도커 내부 패스)
        • /docker-entrypoint-initdb.d/setup.sql : 이 경로로 SQL 파일을 입력하면 SQL문이 자동 실행된다.
        • 추가 설정
          •   -v /사용자 컴퓨터 Path:/var/lib/mysql
          • 추가시 DB 데이터가 사용자 컴퓨터에 저장이 된다.
728x90

'ETC > Docker' 카테고리의 다른 글

Docker Network 기본 사용법 과 Tip  (0) 2023.08.09
Docker Network  (0) 2023.08.09
내가 이해한 Volume이란?  (0) 2023.08.03
Docker Swarm과 Kubernetes(K8s) 비교  (0) 2023.07.26
Docker 기본 명령어  (0) 2023.07.26