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 페이지에 잘 나타나 있다.
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>