tools & libs/도커

[docker] 05. mysql 설치

  • -
반응형

이번 포스트에서는 이제까지의 포스트에 대한 복습으로 docker를 이용해서 mysql 서버를 설치하고 사용해보자.

 

docker를 이용한 mysql 설치 및 활용

 

docker pull mysql

먼저 hub.docker.com을 방문해서 mysql에 대한 image를 찾아보자.

Mysql - Official Image | Docker Hub

 

Mysql - Official Image | Docker Hub

We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy

hub.docker.com

설치는 가뿐히 docker pull mysql 이면 충분하다.

C:\Users\itsmeyjc>docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
e1acddbe380c: Already exists
bed879327370: Pull complete
03285f80bafd: Pull complete
ccc17412a00a: Pull complete
1f556ecc09d1: Pull complete
adc5528e468d: Pull complete
1afc286d5d53: Pull complete
6c724a59adff: Pull complete
0f2345f8b0a3: Pull complete
c8461a25b23b: Pull complete
3adb49279bed: Pull complete
77f22cd6c363: Pull complete
Digest: sha256:d45561a65aba6edac77be36e0a53f0c1fba67b951cb728348522b671ad63f926
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest

 

container  실행하기

 

 

mysql을 실행하기 위해서는 비밀번호 등 추가적인 파라미터가 전달되어야 하는데 docker desktop에서는 port와  volume 정보만 설정할 수 있었기 때문에 command line을 통해서 진행해야 한다. 다행히 reference 문서가 정말 잘 되어있어서 문제는 없다.

먼저 기본적인 실행을 위해서는 다음의 명령을 이용한다.

$ docker run --name yoursql -e MYSQL_ROOT_PASSWORD=[루트비번] -d -p [호스트포트]:3306 
                            -v [호스트 데이터 저장 경로]:/var/lib/mysql 
                            -v [호스트 환경 저장 경로]:/etc/mysql/conf.d mysql

 

  • --name: container의 이름을 지정한다.
  • -e: container에서 사용하는 환경변수를 지정한다. MYSQL_ROOT_PASSWORD, MYSQL_DATABASE 등 사용할 수 있는 환경 변수들이 docker의 mysql 페이지에 잘 나타나 있다.
  • -d: container를 background에서 실행하고 container id를 출력한다.
  • -p: host의 port와 container의 port를 연결한다.
  • -v: host의 path와 container의 path를 연결한다.

즉 아래와 같이 실행하고 결과를 확인할 수 있다.

C:\Users\itsmeyjc>docker run --name yoursql -e MYSQL_ROOT_PASSWORD=root -d -p 3307:3306 
                  -v "c:/temp/docker_mysql_data":/var/lib/mysql 
                  -v "c:/temp/docker_mysql_conf/":/etc/mysql/conf.d mysql
                  
211c0b0b39772cf4ef179d82a905bcdaa178b85cff5ef0537ce18b5354385aa4

C:\Users\itsmeyjc>docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                                  NAMES
211c0b0b3977   mysql          "docker-entrypoint.s…"   9 seconds ago   Up 8 seconds   33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp   mymysql
90f654cb20c7   httpd:latest   "httpd-foreground"       11 hours ago    Up 11 hours    0.0.0.0:8080->80/tcp                                   my_ws

 

기존에 mysql을 사용하기 위해서 다양한 설치 과정, 오류를 겪었었는데 정말 너무 좋다.ㅎㅎ

 

클라이언트에서의 접속 및 확인

먼저 mysql workbench를 통해서 접근해보기로 하자.

그냥 새로운 접속 정보를 만들면서 port 정보와 비밀번호만 신경써서 입력하면 그냥 잘~ 접속되는 것을 확인할 수 있다.

 

쿼리를 실행해봐도 너무나 잘 된다.

command line에서 접속도 물론 문제 없다.

C:\Users\itsmeyjc>docker exec -it mymysql bash
root@211c0b0b3977:/# mysql -u root -p --default-character-set=utf8
Enter password:

mysql> use test;

Database changed
mysql> select * from user;
+------+-----------+
| id   | name      |
+------+-----------+
| hong | 홍길동    |
+------+-----------+
1 row in set (0.00 sec)

mysql>

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.