https://hub.docker.com/_/mysql
How to use this image 참고
요약 : docker도커야 run구동해 -e환경변수 MYSQL_ROOT_PASSWORD=myPassword 등록해줘 -d백그라운드로 실행시키고 -p포트는 호스트3306:mysql3306이랑 연결해줘 뭐를? mysql을
필요한 환경변수가 있다면 같
실행
docker run -e MYSQL_ROOT_PASSWORD=myPassword -d -p 3306:3306 mysql
더 필요한 환경변수가 있다면 아래와 같이 더 넣어주면 됨 나는 블로그 작성용이라 위에거로 함
docker run -p 3306:3306 —name mysql_boot
-e MYSQL_ROOT_PASSWORD=myPassword
-e MYSQL_DATABASE=springboot
-e MYSQL_USER=minwoo
-e MYSQL_PASSWORD=pass
-d mysql
아래와 같은 오류 발생
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306
-> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address
(protocol/network address/port) is normally permitted
원인
호스트 운영체제가 윈도우 11인데 호스트 운영체제에서 MYSQL이 설치되어 있고 서비스를 수행하고 있기 때문에 해당 MYSQL 서비스의 3306포트가 사용되어서 충돌이나 오류발생
해결
netstat -ano | findstr [포트번] 명령어로 호스트 운영체제(윈도우)의 3306 포트를 사용하는지 확인
PS D:\MinwooTool\docker-mysql> netstat -ano | findstr 3306
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 4324
TCP [::]:3306 [::]:0 LISTENING 4324
위 실행결과 3306 포트를 사용하고 있고 프로세스 ID는 4324임을 알수 있음.
3306 포트를 사용하는 프로세스 제거
PS C:\Users\qkdlf> taskkill /pid 4324 /f
성공: 프로세스(PID 4324)가 종료되었습니다.
다시 컨테이너 생성 및 실행 시도
docker run -e MYSQL_ROOT_PASSWORD=myPassword -d -p 3306:3306 mysql
컨테이너 확인
PS D:\MinwooTool\docker-mysql> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
91a2f852cd85 mysql "docker-entrypoint.s…" 16 minutes ago Up 16 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp intelligent_dhawan
환경변수 잘 등록되어 있는지 확인 실행 컨테이너로 접속 : docker exec -it [컨테이너ID 3자리 이상] bash
PS D:\MinwooTool\docker-mysql> docker exec -it 91a bash
bash-5.1#
환경변수 호출해보기 : echo $MYSQL_ROOT_PASSWORD
PS D:\MinwooTool\docker-mysql> docker exec -it 91a bash
bash-5.1# echo $MYSQL_ROOT_PASSWORD
myPassword
bash-5.1#
이제 DBever나 다른 툴을 사용해서 연결해보자 나는 DBever를 사용하기 떄문에 DBever로 접근해봄
순서1.
Username은 기본root로 설정
Password = 환경변수에 설정한 비밀번호(myPassword)
순서2.
Test Connection 연결 확인
만약 MySQL 연결 시 "Public Key Retrieval is not allowed" 오류가 나온다면 아래 링크가서 해결하자
https://deahan.tistory.com/449
그림으로 요약
'DOCKER' 카테고리의 다른 글
[비전공자의 Docker ] Dockerfile (0) | 2024.12.12 |
---|---|
[비전공자의 Docker ] Volume을 이용한 MySQL 실행시켜보기 (1) | 2024.12.11 |
[비전공자의 Docker ] Docker Volume(도커 볼륨) (0) | 2024.12.10 |
[비전공자의 Docker ] 자주쓰는 명령어 (1) | 2024.12.05 |
[비전공자의 Docker ] Docker / Container / Image 란? (2) | 2024.11.19 |