내용 보기

작성자

관리자 (IP : 172.17.0.1)

날짜

2020-07-13 04:36

제목

[Docker] NAS에서 ASP.NET Core + MSSQL 돌리기 - 자체 이미지 이용


지난 글에서 CentOS8컨테이너 안에서 ASP.NET Core를 돌리는 방법을 설명했습니다.

http://arooong.synology.me:5008/List/ContentsView/205

이번에는 자체 이미지를 생성해서 도커 컨테이너에 올려 돌리는 방법입니다.

우선 ASP.NET Core프로젝트가 구성되어 있다고 가정하고

프로젝트 마우스 우 클릭 버튼 - [추가] > [Docker 지원...] 메뉴를 선택합니다.


도커 파일이 생성되면 생성된 도커 파일 내용을 다음과 같이 수정 합니다.
기본 입력된
EXPOSE 80
EXPOSE 443 부분을 ASP.NET Core에서 사용하는 포트로 다음과 같이 구성해 변경합니다.

도커파일을 저장하고 프로젝트가 빌드되면 도커 명령으로 이미지를 생성합니다.
PC에 도커가 설치 되어 있다면 도커 명령을 사용할 수 있습니다.

PowerShell 관리자 모드로 실행해서 해당 도커파일이 있는 위치로 이동해서 다음 명령으로 도커를 빌드하고 이미지를 생성합니다.

{프로젝트 이름}과 {도커버전에 사용되는 태그명}은 모두 소문자로 합니다.

#캐시 이미지 삭제
docker rmi $(docker images -f "dangling=true" -q)

#Dockerfile를 이용해 빌드
docker build --force-rm=false --no-cache=false --rm=true -t {프로젝트이름}:{도커버전에 사용되는 태그명} .

#생성된 이미지를 .img 파일로 저장
docker save -o {프로젝트이름}.img {프로젝트이름}:{도커버전에 사용되는 태그명}

#도커에 이미지 삭제
docker image rm -f {프로젝트이름}:{도커버전에 사용되는 태그명}

#캐시 이미지 삭제
docker rmi $(docker images -f "dangling=true" -q)

docker build명령으로 도커파일을 빌드 할 수 있습니다.
도커파일에 정의 되어 있는 내용기준으로 필요한 파일들을 자동으로 다운로드 하여 빌드 하게 됩니다.


빌드가 완료 되면 docker save 명령으로 이미지를 내보낼 수 있습니다.

* 참고
docker save -o {프로젝트이름}.img {프로젝트이름}:{도커버전에 사용되는 태그명} 명령실행시
Error response from daemon: reference does not exist 오류로

docker save -o {프로젝트이름}.img {프로젝트이름} 명령으로 이미지를 저장했습니다.


이미지가 저장되었으면 해당 이미지를 NAS서버에 옮기고 컨테이너에 추가 후 다음과 같이 컨테이너 설정을 합니다.
[포트 설정]
포트 설정은 ASP.NET Core에서 사용되는 포트로 설정하면 됩니다.

[환경 변수]
ASP.NET Core에서 설정한 포트로 사용할 수 있도록 환경 변수를 설정합니다.

컨테이너 설정을 저장하고 실행하면 해당 포트를 통해 브라우저에서 ASP.NET Core 웹어플리케이션이 실행되는 것을 확인 할 수 있습니다.

출처1

출처2