WSL2 + Docker Desktop + PostgreSQL

WSL2 + Docker Desktop + PostgreSQL
오랜만에 짧은 글을 쓴다.
윈도우즈 10 환경에서 PostgreSQL 쓰는 한 방법의 이야기다.
1. wsl2
Windows 10 버전에서는 Linux용 Windows 하위 시스템, Windows Subsystem Linux, WSL 이라는 기능을 제공한다. 최신 버전으로 업그레이드하면, WSL2 기능을 사용할 수 있다. 옛날 hyper-v (마이크로소프트의 가상화 기술) 기반 위에, 마이크로소프트가 공식 제공하는 리눅스 가상 호스트인데, 이게 딱히 가상호스트가 아닌, cmd 창에서 그냥 리눅스 환경으로 전환할 수 있는 얄궂은 기능이다.
초기 WSL (버전1)은 리눅스 텍스트 기반 명령어를 실행할 수 있어요. 정도로 많이 어눌했다. 처음 썼을 때 느낌이 '이걸 왜 만들었지?' 할 정도로 볼품이 없었다. 하지만, 새 WSL(버전2)이 나오면서 '이 놈 물건인데?' 할 정도로 확 바뀌었고, 꽤 많이 리눅스스러워졌다. WSL2에서는 X-Window 응용 프로그램도 실행된다!
일단 자신의 PC, 노트북 OS가 윈도우즈 10이라면 최신 버전으로 업그레이드한다.
그리고, WSL 기능을 활성화 한다.
이 이야기는 인터넷에 널려있으니, 그 문서를 참고하면 된다.
다음 윈도우즈 앱 스토어에서 'WSL'로 검색한 결과 앱들을 하나씩, 만만한 것들을 설치해서 사용해 본다.
한 번도 사용해 보지 않은 이라면, 딱 이 말을 할 것이다.
'아, 이제 wmware player도 oracle virtualbox 도 필요없겠네!'
여기서 기억해야할 것은, wsl (내장 리눅스 가상 호스트 베이스 이미지) 커널 패치가 필요하다. 이 부분은 사용하다보면 어느 사이트에서 이런 파일을 받아서 패치하라고 친절하게 안내해준다. 그게 나오면 하라는 대로 하면 된다. (요즘 wsl2 는 이부분이 패치되어 설치될지도 모르겠다.)
2. docker desktop
여기서 더 나아가, wsl 리눅스 커널을 마치 윈도우즈의 커널처럼 쓸 수 있는 환경이니, Docker Desktop 소프트웨어는 그 환경 설정안에, wsl 기반에서 어떤 가상 호스트의 설치 없이 도커 서비스를 이용할 수 있는 기능을 제공한다.
이 관련 정보도 인터넷에 엄청나게 많다. 'wsl docker desktop' 검색어
여기까지 잘 되었다면, docker desktop 응용 프로그램을 실행한 뒤,
cmd 창에서 docker 명령을 사용할 수 있어, 리눅스 환경에서 도커를 쓰는 것과 완벽하게 똑같게 된다. (물론 디스크 마운트 관련은 약간 다르겠지만)
3. 도커의 한 컨테이너인 PostgreSQL
이 부분은 더 할 말이 없다.
알아서 잘 쓰면 될 뿐.
윈도우즈용 마이크로소트프 런타임 C 라이브러리로 윈도우즈 환경에 최적화되어 컴파일된 실행파일보다 당연히 성능이 떨어지겠지만, 그래도 개발환경에서는 꽤 쓸모가 있을 것이다.
4. 사족, TMI
응용 프로그램 개발자에게, 마이너 버전 패치, 메이저 버전 업그레이드 업무 영향도를 파악하는데 분명 보다 편한 길을 열어줄 것이다.
리눅스 쉘 환경에서의 명령행 편집 글쇠에 익숙한 이들이라면, cmd 창의 명령행 편집기능이 답답할 수 있을 것이다. 이것도 파워셀로 바꾸고, 파워쉘의 emacs 글쇠 호환 기능 구현을 찾아보면, 이미 우리의 형님들은 친절하게 다 설명하고 있다.
이젠 리눅스와 윈도우즈의 경계가 거의 허물어진듯하다.
옛날 유행어가 생각난다.
뭣이 중헌디!