사내에서 Docker image 를 관리하기 위해 private registry 를 구성하는 방법입니다.

OS 는 Windows Server 2016 입니다.

 

 

1. regisrty 저장소를 만듭니다.

mkdir C:\registry

 

2. registry 서버를 구동합니다. (보안적용X)

docker run -d -p 5000:5000 --restart=always --name registry -v C:\registry:C:\registry stefanscherer/registry-windows:2.6.2

 

3. 5000 번 포트를 열어 줍니다.

  Azure 로 구동된 VM 인 경우 Network 에서 5000번 port 를 열어 줍니다. (inbound port 추가)

 

여기까지 서버쪽에 구성은 완료되었습니다.

 

이제 서버측이 아닌 클라이언트 단에서 구성된 서버로 이미지를 올리는 방법입니다.

1. 클라이언트 단의 C:\ProgramData\Docker\config 에서 daemon.json 파일에 아래 항목을 추가합니다.

IP 주소는 위 서버의 IP 입니다. ( 이 항목을 등록해서 https 로 접근하지 않고 http 로 접근할수 있게합니다.)

{
 "insecure-registries":["13.92.126.222:5000"],
}

2. 명령어를 통해 서버측 registry 에 로컬 이미지를 업로드 합니다.

제가 가진 이미지목록 중 nanoserver/iis 를 이미지를 업로드 하는 예시입니다.

docker tag nanoserver/iis:latest 13.92.126.222:5000/nanoserver

docker puch 13.92.126.222:5000/nanoserver

 

3. 제대로 업로드 되었는지 확인합니다.

http://13.92.126.222:5000/v2/_catalog (대소문자 주의)

IP 주소는 registry 서버 IP 이며 위 주소로 접근하면 아래 처럼 nanoserver 이미지가 업로드 된 걸 알수 있습니다.

서버측 디렉토리 구조

 

 

참고

https://hub.docker.com/r/stefanscherer/registry-windows/

https://novemberde.github.io/2017/04/09/Docker_Registry_0.html

 

 

1. PowerShell 갤러리에서 Docker-Microsoft PackageManagement Provider를 설치합니다.

    Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

2. PackageManagement PowerShell 모듈을 사용하여 최신 버전의 Docker를 설치합니다

     Install-Package -Name docker -ProviderName DockerMsftProvider

3. 재부팅합니다.

     Restart-Computer -Force

4. OS 업데이트 (모두(All) 업데이트합니다.)

     sconfig

5. 테스트 명령

     docker run microsoft/dotnet-samples:dotnetapp-nanoserver-sac2016

 

* 설치 오류

가상머신의 사이즈(cpu, ram) 이 작은 경우 Docker 가 실행되지 않고 아래 처럼 오류가 발생됩니다.
>  Resize 를 통해 vm 사양을 올려주면 정상 동작 됩니다. (Resize 방법: https://kjun.kr/903)

오류 시 사양

오류 내용

 

> Resize 후 사양

> 정상 동작


참고

https://docs.microsoft.com/ko-kr/virtualization/windowscontainers/quick-start/quick-start-windows-server

 

Windows Server의 Windows 컨테이너

컨테이너 배포 빠른 시작

docs.microsoft.com

 

+ Recent posts