이 글은 원래 RHEL8을 WSL로 사용하는 방법에 관한 것이었다. 그러나 RHEL9에 맞춰 업데이트하다가 직면한 문제(WSL로 올린 RHEL9에서 subscription-manager를 사용 불가) 때문에 Rocky Linux를 WSL로 이용하는 방법으로 변경한 것이다. 기본 환경은 Windows 11이다.
컨테이너 이미지를 WSL로 변환하기
1.
먼저 명령 프롬프트나 파워셸에서 다음 명령으로 Docker를 설치한다.
winget install --id Docker.DockerDesktop
PowerShell
복사
2.
Docker를 설치했으면 이미 실행 중인 WSL(대부분은 Ubuntu일 것이다)에서 다음 명령을 실행해 Rocky Linux를 가져와서 tar 파일로 내보낸다.
docker pull rockylinux:9
docker run rockylinux:9
dockerContainerID=$(docker container ls -a | grep -i rocky | awk '{print $1}')
docker export rockylinux:9 > rocky.tar
# ${USER}를 각자 맞는 사용자 디렉터리 이름으로 바꾼다.
docker export $dockerContainerID > /mnt/c/Users/${USER}/rocky.tar
docker container rm $dockerContainerID
Bash
복사
WSL로 가져오기
PowerShell에서 WSL로 가져오기를 실행한다.
# 홈 디렉터리로 이동
cd "$env:USERPROFILE"
# /mnt/c/Users/USER_ID/WSL 디렉터리 만들기
mkdir WSL
wsl --import Rocky .\WSL\Rocky .\rocky.tar
wsl -d Rocky # Rocky Linux로 WSL 실행
PowerShell
복사
기본 사용자 계정 설정
여기까지 했으면 root로 로그인이 가능하다. 그러나 매번 root를 사용하는 건 바람직하지 않으므로 내가 사용할 계정을 만든다.
# myUsername에 사용할 아이디를 할당할 것
dnf install -y bash-completion passwd sudo && \
myUsername=0x6a6f73687561 && \
adduser -G wheel $myUsername && \
echo -e "[user]\ndefault=$myUsername" >> /etc/wsl.conf && \
passwd $myUsername
Shell
복사
WSL에서 Rocky 인스턴스를 종료한다.
wsl --terminate Rocky
PowerShell
복사
기본 WSL 변경
Ubuntu를 기본 WSL로 사용해왔지만, Rocky Linux를 나의 기본 WSL로 변경해서 쓴다.
# 간단히 줄여서 wsl -s Rocky도 무방
wsl --set-default Rocky
# Rocky가 기본으로 실행되는지 확인
wsl ~
PowerShell
복사