WSL2 + Ubuntu-20.04 + Docker + Jekyll
WSL2에서 Docker를 사용해봤다. 간단히 Jekyll Docker 이미지를 올려봤다.
WSL2
- Windows에서 WSL 옵션 활성화
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart - 리붓
- WSL2를 디폴트로 설정
wsl --set-default-version 2 - 커널 구성 요소 업데이트가 필요하다는 에러가 발생하면 Linux 커널 업데이트 패키지 설치
- 참조
Ubuntu-20.04-LTS
- Microsoft Store에서 Ubuntu-20.04를 선택하여 설치
- 설치된 Ubuntu-20.04의 WSL 버전이 2인지 확인
wsl --list --verbose - Ubuntu-20.04의 WSL 버전이 1이라면 2로 변경
wsl --set-version Ubuntu-20.04 2 - 참조
Docker
- Windows용 Docker 설치/실행
- Settings > General > Use WSL 2 based engine 옵션 체크
- Resources > WSL Integration > Ubuntu-20.04 활성화
- WSL2 Ubuntu-20.04 환경에서 docker 명령어 정상 동작 확인
- 참조
Jekyll
- WSL2 Ubuntu-20.04 환경에서 jekyll docker 이미지 다운로드
docker pull jekyll/jekyll- jekyll/jekyll
- docker hub 내 jekyll 이미지 이름
- jekyll/jekyll
- jekyll의 docker 이미지가 정상적으로 다운로드 되었는지 확인
docker images - jekyll 컨테이너 생성
docker create --name chorockuin.github.io --volume="/mnt/d/chorockuin.github.io:/srv/jekyll" -p 4001:4000 jekyll/jekyll- –name chorockuin.github.io
- 컨테이너 이름은 chorockuin.github.io
- –volume=”/mnt/d/chorockuin.github.io:/srv/jekyll”
- 로컬 jekyll 파일들의 경로 : /mnt/d/chorockuin.github.io
- 로컬 jekyll 파일들이 복제될 컨테이너 내 경로 : /srv/jekyll
- -p 4001:4000
- 컨테이너의 4000번 포트 서비스를 로컬의 4001번 포트로 포워딩
- jekyll/jekyll
- jekyll 이미지 이름
- –name chorockuin.github.io
- 생성한 컨테이너 시작
docker start chorockuin.github.io - 시작된 컨테이너에서 bash 실행
docker exec -it chorockuin.github.io /bin/bash - jekyll bash내에서 jekyll 서비스 시작
jekyll serve - 참조
결론
- Windows 10에서 Jekyll 환경을 설치 없이 쉽게 사용할 수 있음
- Windows 10:4001 → WSL2:4001 → Docker:4001 → Jekyll:4000
- 다른 개발 환경들도 꾸며보면 유용할 듯. 특히 Python 환경