원래 로컬 PC에 mysql을 직접 설치해서 로컬 DB로 API 테스트해보다가
추후 개발서버의 DB를 접속했을 때의 DB 커넥션을 고려하기 위해
Docker에 Mysql 컨테이너를 생성해보기로 함.
일단 도커를 설치했음.
난 GUI 러버라서 https://www.docker.com/products/docker-desktop/ 여기에서 docker desktop을 설치했다.
근데 내 PC는 가상화 설정이 되어있지 않아서 뭔가 docker가 실행이 잘 안되었다.
windows 기능 켜기/꺼기 창에서
이 Hyper-V 하이퍼바이저가 문제였음...
처음엔 저게 아예 체크부터 불가해서
시스템 재부팅 -> Del키 연타 -> BIOS 접속 -> (MSI bios기준) advanced mode -> OC -> CPU advanced configuration -> SVM Mode 활성화 -> (Setting이었나..) 저장하고 종료
하 이것땜에 재부팅을 몇번한겨!
PowerShell 터미널과 ubuntu도 설치했다.(Microsoft Store)
근데 root 계정으로 강제 로그인되었다.
난 내 계정으로 들어가고 싶은데!!
//PowerShell
PS C:\Users\jnkim528> ubuntu2204.exe config --default-user jnkim528
PowerShell에서 이렇게 유저계정으로 set 해주면
Ubuntu 켰을때 유저계정으로 로그인된다.
// Ubuntu
# mysql 이미지 다운로드
$ docker pull mysql:5.7
우분투에서 위의 cmd로 mysql 이미지를 다운로드 받는다.
# mysql 컨테이너 생성
$ docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=비번 -d -p 3306:3306 mysql:5.7
그리고서 mysql 컨테이너 생성하려는데
docker: Error response from daemon: Ports are not available
기존에 떠있던 로컬의 mysql때문에 port 중복으로 에러가 났다.
왜.... 다들 한번에 아름답게 안되세요,,
해결법
ctrl+Alt+Del로 작업 관리자 실행 > mysqlId 우클릭 > 서비스 중지
이렇게 고생해서 만든 mysql-container를 actions에서 실행
클릭 후 cli에서 mysql 접속하면 아래와 같이 DB를 볼 수 있다.
docker desktop이 아닌 ubuntu에서도 볼 수 있다.
$ docker exec -it mysql-container bash
이제 DB 접속하러 가봐야겠다...