본문 바로가기

프로그래밍

윈도우 10에서 linux로 docker 돌리기

서론

제목에서도 알겠지만, 두가지 스텝으로 나뉜다. 리눅스 설치와 도커 설치. 도커 설치는 Windows10 프로 버젼에서만 가능한 것으로 알고 있으므로, 홈 버젼 쓰시는 분들은 리눅스까지만 설치할 수 있다.
그럼 차례대로 알아보자.

리눅스 설치

WSL 이라는 게 있다. 윈도우에 리눅스를 담는 것이다. 어떤 원리인지는 잘 모르겠다. WSL 은 버젼 2까지 있다. 버젼 1로는 안해봤으나, 여기저기 블로그를 찾아보니 io 속도도 문제고, docker를 돌리는 방법도 까다로운 것 같다. 그러므로 WSL 2 설치를 목표로 하자. WSL 2설치를 하려면,
1. windows 10 18917보다 높은 버젼을 설치한다.
2. 버쳘 머신 플랫폼 컴포넌트 활성화
3. 리눅스 사용 기능을 추가한다.
4. 우분투(혹은 다른 리눅스)를 설치한다.
5. 해당 우분투 버젼을 wsl v2로 업그레이드한다.

1 windows 10 버젼 올리기

windows 10 18917 버젼보다 높아야 한다. 본인이 어떤 버젼을 돌리는지 확인하고 싶으면 커맨드 창을 띄워서 ver 이라는 명령어를 치면 알 수 있다. 버젼을 올려야 한다면 windows 참가자 까지 검색창에 친 후에 windows 참가자 프로그램 설정으로 들어가서, 이후 라는 설정으로 참가를 한 후에 windows 업데이트를 하자. (지금 이 글을 쓰는 시점에 이후 버젼으로도 충분히 18917을 넘길 수 있다.)

2 버쳘 머신 플랫폼 컴포넌트 활성화

검색창에 powershell를 검색해서 프로그램을 관리자로 실행한다.

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform 

를 입력한다.

3 리눅스 사용 기능 추가

버젼을 올렸다면 검색창에 제어판을 쳐서 제어판으로 들어간다. 제어판 > 프로그램에 들어가면 windows 기능 켜기/끄기 메뉴가 있다. 해당 메뉴를 클릭하면 윈도우 기능을 on/off 할 수 있는 설정창이 나오는데, linux용 windows 하위 시스템 을 찾아서 체크박스에 표시를 해주고 확인을 누른다.

4 우분투 설치

이제 검색창에 store 를 쳐서 microsoft store로 이동하자. 스토어에서 검색으로 linux를 치면 windows 에서 linux 실행하기 라는 메뉴가 나온다. 그걸 클릭하여 본인이 원하는 리눅스를 설치한다. (본인은 우분투 외에는 설치 안해봤다. 이후로는 모두 우분투 기준으로 말한다.) 설치하고 나면 검색창에 Ubuntu를 치면 Ubuntu 앱이 나온다. 해당 앱을 관리자 권한으로 실행해보자.

인스톨링 이라는 문구에서 반응이 없어요.

본인은 installing... 이라는 문구에서 넘어가지지가 않았다. 그럴 경우, 윈도우 바이러스 방지 프로그램과 충돌이 나서 그렇다는 글을 어디서 읽었다. 검색창에 바이러스 및 위협 방지를 검색해서 해당 설정으로 들어간 후에 바이러스 및 위협 방지 설정으로 들어가서 실시간 보호를 끈 다음에 다시 시도하니 installing 후에 정상적인 명령어 입력창이 떴다.

이제 wsl 을 버젼 2로 업그레이드

다시 powershell를 관리자로 실행한다.

wsl -l -v

를 입력하면 Name State Version이 나올 것이다. 본인은 우분투를 설치해서 Ubuntu라고 name에 뜬다. 그럼 다시..

wsl --set-version Ubuntu 2

를 명령어로 입력한다. 정상적으로 끝나면 다시 명령어를 입력할 수 있게 된다.

0xffffff 오류가 나요

회사 컴터에서는 무리없이 설치가 됐는데, 집 컴터에서는 위와 같은 오류메세지가 떴다. 인터넷을 검색해보니 53번 포트 때문이라는 말이 있다. 53번 포트를 쓰는 서비스나 프로세스를 다 없애보려고 했는데, 제대로 이뤄지지가 않았다. 그래서 아무 이유없이 윈도우 기능 켜기/끄기로 가서 hyper-v 기능을 꺼버렸다. (회사 컴터에서는 클릭이 안되어 있었는데, 집컴에서는 클릭이 되어 있어서...) 그리고 컴터를 다시 시작했고, 다시 위에 wsl --set-version Ubuntu 2를 하니까 정상적으로 변경이 되었다. 이제 wsl -l -v를 쳐볼 경우 버젼이 2로 올라간 것을 확인할 수 있다.

이제 wsl v2로 리눅스 설치는 끝났다.

다음은 도커를 설치할 차례다.

처음에는 그냥 일반 우분투에 도커 설치하듯이 Ubuntu 돌려서 설치했는데, 결정적으로 docker run 실행어가 먹지 않았다. 실제로 되는 방법이 있는지 모르겠으나 어디서부터 파봐야 할지 막막해서 그냥 검색으로 발길을 돌렸다. 그래서 docker wsl 2 로 다시 검색했더니 docker 홈페이지에 대한 레퍼런스가 보였다. 여기 나머지는 여기서 시키는 대로 했다.

참조

해당 링크들에는 리눅스 설치 부분이 스샷으로 더 자세하게 설명되어 있다. 제 설명이 도그라이스케이크 같다고 느끼는 분들은 아래의 블로그를 참조하면 좋을 것 같다.
정광섭님 블로그
마소 공식 문서