본문 바로가기

소프트웨어개발자의 삶/실전기록

닷넷 코어 Docker를 이용하여 게시

Windows가 리눅스를 품어버림으로서 리눅스 기술에서만 사용할 수 있는 도커가 윈도우즈에서도 가능하게 되었다. 그런데 여기에 더하여 VisualStudio 2022로 개발을 하면 도커를 이용한 테스트 및 배포까지 가능하다.

1.     WSL 설치

Windows 10 21H1 이후 버전은 WSL(Windows Subsystem for Linux) 기술이라고하여 윈도우즈위에서 리눅스를 사용할 수 있다. WSL 기술은 가상화기술을 기반으로 작동을 한다. 가상화를 사용할 수 있는 하드웨어 환경이면 WindowsHyper-V 를 사용할 수 있다. WSLHyper-V를 이용하여 윈도우가 가동되는 상태에서 가상으로 리눅스를 사용할 수 있도록 해주는

기술이다. WSL은 현재 WSL2까지 버전이 나와있는 상태이다.
, Hyper-VVirtualBox의 동시사용은 불가능하다. Windows에서 Hyper-V 기능이 활성화 되면 이미 Windows가 하드웨어 가상화 기술을 사용하는거라 VirtualBox와 같은 다른 가상화 프로그램은 사용이 불가능하다. VMWare의 제품은 사용이 가능하다고 하나 아직 테스트를 해보진 못하였다. (확실한 것은 VirtualBox와는 동시 사용이 불가능하다. 동시사용이 불가능하다고 설정만 바꿔서 되지 않는다. 항상 재부팅이 요구되기 때문에 두개를 손쉽게 사용하는 방법은 현재 보이지 않는다. )

2.     리눅스 설치

마이크로소프프트 스토어에서 리눅스를 설치하도록 한다. 설치를 하게되면 커맨드로 리눅스 시스템을 사용할 수 있다. 리눅스는 본인의 취향대로 설치하면된다. 나는 우분투를 설치하여 사용하고 있다.

3.     Docker Desktop 설치

Docker는 가상화 리눅스에서만 사용되는 가상화기술이다. WSL 덕분에 윈도우에서 리눅스가 사용이 가능하게 되어 Windows에서도 도커가 사용이 된다. Docker Desktop은 윈도우즈용 Docker 사용 툴로서 윈도우화면에서 서브시스템으로 설치된 리눅스의 도커를 조작할 수 있도록 해주는 도구이다.

4.     Visual Studio로 닷넷 코어 개발

닷넷 코어를 사용하여 웹프로그램을 개발을 하여 리눅스에서 작동하도록 하려면 닷넷코어가 떠오르고 있긴하지만 리눅스 배포판에 기본으로 탑재가 되어있진 않기 때문에 닷넷코어런타임등을 설치하고 웹서버로 Kestrel까지 설정을 해줘야한다.
하지만 프로그램을 게시할 때 Docker로 게시하기를 하면 도커로 이미지를 만들어서 게시할 수 있도록 해준다. 게시 과정 중에 hub.docker.com 계정을 셋팅해주면 hub.docker.com으로 게시까지 가능하다.

예시화면

1. VisualStudio로 닷넷코어 WebAPI 개발된 소스 화면에서 배포할 웹프로젝트에서 우클릭으로 게시를 선택

2. 새로만들기를 선택하여 Docker 

새로만들기 선택
Docker 컨테이너 레지스트리 선택
hub.docker.com 계정로그인셋팅

※주의 hub.docker.com의 계정은 id를 이용하기도 하도 메일주소를 이용하기도 한다. hub.docker.com에 로그인시 id, 메일주소 모두 로그인이 가능하다. 하지만 여기서는 id로 로그인을 해야한다. 왜냐하면 docker이미지의 게시명이 '아이디/프로젝트명'으로 게시가 되는데 사용자 이름에 메일주소를 입력하게 되면 게시가 되지 않는다.

 

게시를 하게 되면 컴퓨터의 리눅스에 도커이미지를 만들고 그것을 hub.docker.com으로 푸쉬를 하게 된다.

실제 운영하는 리눅스 머신에 docker-compose 파일을 만들어서 가동 중인 스냅샷

도커로 가동시간 웹서비스의 Swagger 화면