[Docker] 도커로 mysql 서버 구축하기

이수진·2022년 1월 27일
0

이번에는 apache 웹 서버에 이어,
도커에서 Mysql서버를 구축해보겠습니다.

컨테이너 생성 방법은 크게 두 가지 입니다.

  • Shell 명령어 이용하기
  • docker-compose.yml 파일 이용하기

이번에는 먼저 첫 번째 방법인 도커파일을 작성한다음 Shell 명령어를 이용할 것이구요,
이 다음에는 두 번째 방법도 이어 올리겠습니다. ㅎㅎ

먼저 도커 허브에서 mysql을 치면 다음과 같이 볼 수 있습니다.

이거를 이용할 겁니다!

이어서 vi Dockerfile_MYSQL 명령어를 이용하여,
저는 두번째 도커파일을 작성해보겠습니다.

# Dockerfile_MYSQL

FROM mysql:5.7

ENV MYSQL_ROOT_PASSWORD=password

ENV MYSQL_DATABASE=mydb                            

ENV를 이용한 환경변수 설정

  • 도커 이미지를 빌드할 때 사용하는 Dockerfile에 초기 환경변수를 설정할 수 있습니다.
  • 설정한 환경변수는 RUN, CMD, ENTRYPOINT 명령에도 적용될 수 있습니다.
  • 아래의 두 서식 중 하나로 기술할 수 있습니다.
    • ENV [key][value]
    • ENV [key]=[value]

저는 ENV 명령어를 이용하여, mysql root에 대한 password를 지정하고, 데이터베이스 이름도 설정하였습니다.

이어 바로 이미지를 빌드해보겠습니다.
이미지 이름은 db라 하겠습니다.

  • 이미지 빌드하기

ubuntu@ip-172-31-38-68:~$ docker build -t db -f Dockerfile_MYSQL .

이어서 빌드한 이미지를 백그라운드에서 실행해보도록 하겠습니다.
컨테이너 이름은 db1이라고 하겠습니다.

  • 백그라운드에서 컨테이너 실행하기

docker run -d --name db1 db

아까 만든 웹 컨테이너와 현재 만든 db1 컨테이너가 실행중임을 확인할 수 있습니다.

  • 컨테이너 접속 그리고 mysql 서버에 접속하기

다음과 같이 공식문서에 컨테이너 bash에 접속하는 방법이 잘 나와 있습니다.
이를 이용해 저도 db1 컨테이너 내부에 접속해 쉘을 실행해보겠습니다.
여기서

  • -it : interactive terminal 모드를 의미합니다.
ubuntu@ip-172-31-38-68:~$ docker exec -it db1 /bin/bash

이어 mysql서버에 접속해보겠습니다.

root@156dd00b2a31:/# mysql -u root -p

이어 아까 지정한 root password를 입력하면 내부 mysql 서버에 접속할 수 있게 됩니다.

이후에는 이전에 로컬 mysql에 접속했을때와 마찬가지로 똑같이 이용할 수 있습니다!

제가 mydb라고 명명했던 데이터베이스도 확인할 수 있습니다.

[참고]

profile
꾸준히, 열심히, 그리고 잘하자

0개의 댓글