1. 변경할이름으로 이미지를 만든다. (복제라고 보면될것같다)

  docker tag changename:latest oldname:latest


2. 기존 이미지를 제거한다

  docker rmi oldname

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

 

insecure-registries 항목은 registry 에서 pulling 시 https 가 아닌 http 로 pulling을 하기 위해 설정이 필요하다.

 

1. C:\ProgramData\docker\config\daemon.json 작성

   config 폴더에 key.json 파일만 있다면 daemon.json 을 만들어서 아래 항목을 추가한다.

{
  "insecure-registries": ["192.168.0.51:5000"]
}

2. 아래 명령어를 실행

dockerd --unregister-service
dockerd --register-service -G docker -H npipe:// --insecure-registry 192.168.0.51:5000

 

1, 2 중 하나만 적용이 가능하다. 1번이 최신 방법이고 2번은 예전 부터 사용해오던 방식

docker pull 명령어를 실행했는데 아래 처럼 에러가 발생되었다. (Windows Server 2016 VM)

 

c:\program files\docker\docker.exe: no matching manifest for unknown in the manifest list entries.

해당 에러는 도커허브쪽에 먼가 지워진 탓에 발생되는 에러이다.

pulling 하려는 도커이미지 명이 바뀌었는지 아니면 허브쪽에 삭제가 된건 아닌지 확인해야한다.

 

 

 

 

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

cmd 창에서

아래 명령어를 사용하면 된다.

sc stop docker
sc start docker

C:\Users\kjun>sc stop docker

        SERVICE_NAME: docker
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

C:\Users\kjun>sc start docker

        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 2  START_PENDING
                                (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x7d0
        PID                : 4224
        FLAGS              :

C:\ProgramData\Docker\config 폴더의 daemon.json 을 변경했을때는 반드시 중단 후 시작해야

설정한 내용이 적용된다.

C:\Users\kjun>docker version
Client: Docker Engine - Enterprise
 Version:           18.09.5
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        be4553c277
 Built:             04/11/2019 06:44:52
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Enterprise
 Engine:
  Version:          18.09.5
  API version:      1.39 (minimum version 1.24)
  Go version:       go1.10.8
  Git commit:       be4553c277
  Built:            04/11/2019 06:43:04
  OS/Arch:          windows/amd64
  Experimental:     false

 

{
   
"authorization-plugins": [],
   
"data-root": "",
   
"dns": [],
   
"dns-opts": [],
   
"dns-search": [],
   
"exec-opts": [],
   
"experimental": false,
   
"features":{},
   
"storage-driver": "",
   
"storage-opts": [],
   
"labels": [],
   
"log-driver": "",
   
"mtu": 0,
   
"pidfile": "",
   
"cluster-store": "",
   
"cluster-advertise": "",
   
"max-concurrent-downloads": 3,
   
"max-concurrent-uploads": 5,
   
"shutdown-timeout": 15,
   
"debug": true,
   
"hosts": [],
   
"log-level": "",
   
"tlsverify": true,
   
"tlscacert": "",
   
"tlscert": "",
   
"tlskey": "",
   
"swarm-default-advertise-addr": "",
   
"group": "",
   
"default-ulimits": {},
   
"bridge": "",
   
"fixed-cidr": "",
   
"raw-logs": false,
   
"allow-nondistributable-artifacts": [],
   
"registry-mirrors": [],
   
"insecure-registries": []
}

 

아래는 도커의 설정의 Daemon Advanced 설정 값이다.

 

참고

https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file

'Docker' 카테고리의 다른 글

(Docker) Private Registry 구성  (0) 2019.04.24
(Docker) 도커 서비스 중단/실행  (0) 2019.04.23
(Docker) daemon.json 의 구조 (On Windows)  (0) 2019.04.23
도커 명령어  (0) 2019.04.15
(Docker) Kubernetes 란?  (0) 2019.04.07
Docker Image 의 manifest.json 의 구성  (0) 2019.03.29

// 볼륨처리와 함께 container 구동하기 (--rm은  구동후 container 제거옵션)
docker container run -it -v d:/dock:c:/dock dockerconsoleapp test
docker container run -it --rm -v d:/dock:c:/dock dockerconsoleapp test

// image 를 tar 파일로 내보내기 / 불러오기
docker image save -o kjuntest.tar dockerconsoleapp
docker image load -i kjuntest.tar

// container 내부로 진입하기
docker ps 로 컨테이너 ID 확인
docker exec -i -t {Container Id} /bin/bash

// 모든 컨테이너 및 이미지 제거
docker system prune
docker system prune -a

// 도커 이미지 실행후 진입
docker run -v d:\data:c:\data -it testpython

// 도커 이미지 제거
docker rmi Image Image

// 도커파일 빌드하기 (현재 경로의 Dockerfile 을 빌드합니다.)
docker build -t testpy .

 

 https://docs.microsoft.com/ko-kr/virtualization/windowscontainers/manage-docker/manage-windows-dockerfile

'Docker' 카테고리의 다른 글

(Docker) 도커 서비스 중단/실행  (0) 2019.04.23
(Docker) daemon.json 의 구조 (On Windows)  (0) 2019.04.23
도커 명령어  (0) 2019.04.15
(Docker) Kubernetes 란?  (0) 2019.04.07
Docker Image 의 manifest.json 의 구성  (0) 2019.03.29
Docker Container Windows licensing  (0) 2019.03.04

https://azure.microsoft.com/ko-kr/resources/phippy-goes-to-the-zoo/?ocid=AID740645_FACEBOOK_oo_spl100000495065685https://azure.microsoft.com/ko-kr/resources/phippy-goes-to-the-zoo/?ocid=AID740645_FACEBOOK_oo_spl100000495065685

 

동물원에 간 피피 (Phippy)

피피 (Phippy) 의 Kubernetes 스토리

azure.microsoft.com

재미있는 동화로.. 이해해 보자.는 취지 인데..

모든 설명을 담고 있지 않지만 간단한 기본 개념은 익힐수는 있는것 같습니다.

조대협님 블로그의 설명을 들으면 이해하는데 도움이 될듯합니다..  https://bcho.tistory.com/1255

'Docker' 카테고리의 다른 글

(Docker) 도커 서비스 중단/실행  (0) 2019.04.23
(Docker) daemon.json 의 구조 (On Windows)  (0) 2019.04.23
도커 명령어  (0) 2019.04.15
(Docker) Kubernetes 란?  (0) 2019.04.07
Docker Image 의 manifest.json 의 구성  (0) 2019.03.29
Docker Container Windows licensing  (0) 2019.03.04

[{
"Config": "1b43f9aa95bbb30fe67f28fda277134ac4081e2c128bdc94d8b1c783a879af06.json",
"RepoTags": ["dockerconsoleapp:latest"],
"Layers": ["21feb46ba051c0fc37b9df3858b3a8dd4fa87f16453f9c913ef5eb6338a2952f/layer.tar",
"cb820f0bfcfc005d10465b6563c6450707901a1531e700af1b172c92fc189388/layer.tar",
"c45c6e977cc6ad8026c52345f94a8f584f413da9b73b048017e4dabb8ca98f89/layer.tar",
"741751d06a9b3b86406c801b57d64b4a97b3536b0067d9ad4ee1b71a394a9243/layer.tar",
"4665c84774771da0ee8deb4c7c5aa2b6b37f65d274786fe68b2ac34dab1b0bdc/layer.tar",
"d2e29b418a6db3f1e54c4b4856437e705dda891b29e147ac9c1cbbab7db27744/layer.tar",
"0d641be7812f18ab36150eec58a10a881d386f1661ffd9acfe5fee695c129315/layer.tar",
"5c4a2b004ffd6d633254ddd7c43d48cbb49a0c380549a0519c9c2cb69da12460/layer.tar",
"d6ff1e3c41b2c71450be6341a7ab6314efd0c88cabacd056f4d9c16601b06cea/layer.tar",
"0b9d10f538b2e218095454039d61aa4a05c3fbeb76893e6e2598afd94be20e55/layer.tar",
"ccdbb4e0b20362f7ca05b04c67dc47c47ed1b4d9b0c633830303ab4ab724c241/layer.tar"],
"LayerSources": {
    "sha256:69bc1025c1012998cd854b312f9a32a0aec1cb303379af877fd823ddda55dc02": {
          "mediaType": "application/vnd.docker.image.rootfs.foreign.diff.tar.gzip",
          "size": 54281640,
          "digest": "sha256:68aae72b77f3edb7cd3ad2cd473b2400ce2396626aa62f708cc4c427ef520841",
          "urls": ["https://go.microsoft.com/fwlink/?linkid=2073672"]
    },
    "sha256:bc06b22070cd8fb7c81b24025f0d67ed17390339fd8506cc46ce0224ec9c6e73": {
          "mediaType": "application/vnd.docker.image.rootfs.foreign.diff.tar.gzip",
          "size": 92818888,
          "digest": "sha256:e46172273a4e4384e1eec7fb01091c828a256ea0f87b30f61381fba9bc511371",
          "urls": ["https://go.microsoft.com/fwlink/?linkid=873594"]
    }
  }
}]

> 이미지 매니페스트
이미지 매니페스트는 컨테이너 이미지에 대한 구성 및 레이어 세트를 제공합니다. 스키마 -1 매니페스트를 직접 대체합니다.

> 이미지 Manifest 필드 설명

schemaVersion int
이 필드는 이미지 매니페스트 스키마 버전을 정수로 지정합니다. 이 스키마는 버전 2 사용합니다.

mediaType 문자열
매니페스트의 MIME 유형입니다. 이 설정은 application/vnd.docker.distribution.manifest.v2+json 으로 설정해야합니다.

config 개체
config 필드는 다이제스트별로 컨테이너의 구성 객체를 참조합니다. 이 구성 항목은 런타임이 컨테이너를 설정하는 데 사용하는 JSON BLOB입니다. 이 새로운 스키마는이 구성의 조정 된 버전을 사용하여 데몬 측에서 이미지 내용의 주소 지정 기능을 허용합니다.

구성 개체의 필드는 다음과 같습니다.

    ◦ mediaType 문자열
    참조 된 개체의 MIME 형식입니다. 일반적으로 application/vnd.docker.container.image.v1+json 이어야합니다.

    ◦ size int
    객체의 크기 (바이트)입니다. 유효성을 검사하기 전에 클라이언트가 콘텐츠의 예상 크기를 갖도록이 필드가 있습니다.
    검색된 콘텐츠의 길이가 지정된 길이와 일치하지 않으면 콘텐츠를 신뢰할 수 없습니다.

    ◦ digest 문자열
    Registry V2 HTTP API Specificiation에 정의 된 내용의 다이제스트.

layers 배열
레이어 목록은 기본 이미지 (schema1의 반대 순서)부터 시작하여 정렬됩니다.
레이어 목록의 항목 필드는 다음과 같습니다.

    ◦ mediaType 문자열
    참조 된 개체의 MIME 형식입니다. 일반적으로 application/vnd.docker.image.rootfs.diff.tar.gzip 합니다.
    application/vnd.docker.image.rootfs.foreign.diff.tar.gzip 유형의 레이어는 원격 위치에서
    application/vnd.docker.image.rootfs.foreign.diff.tar.gzip 수 있지만 절대로 밀어 넣지 마십시오.

    ◦ size int
    객체의 크기 (바이트)입니다. 유효성을 검사하기 전에 클라이언트가 콘텐츠의 예상 크기를 갖도록이 필드가 있습니다.
    검색된 콘텐츠의 길이가 지정된 길이와 일치하지 않으면 콘텐츠를 신뢰할 수 없습니다.

    ◦ digest 문자열
    Registry V2 HTTP API Specificiation에 정의 된 내용의 다이제스트.

    ◦ urls 배열
    내용을 가져올 수있는 URL 목록을 제공합니다. 콘텐츠는 digest 및 size 에 따라 확인되어야합니다. 이 필드는 선택
    사항이며 드문 경우입니다.

 

https://docs.docker.com/registry/spec/manifest-v2-2/

'Docker' 카테고리의 다른 글

(Docker) 도커 서비스 중단/실행  (0) 2019.04.23
(Docker) daemon.json 의 구조 (On Windows)  (0) 2019.04.23
도커 명령어  (0) 2019.04.15
(Docker) Kubernetes 란?  (0) 2019.04.07
Docker Image 의 manifest.json 의 구성  (0) 2019.03.29
Docker Container Windows licensing  (0) 2019.03.04

+ Recent posts