모든 컨테이너 및 이미지 제거하는 방법입니다.

 

(동작중이지 않은 항목 제거)

docker system prune

 

(동작에 관계없이 모두 제거)

docker system prune -a

Dockerfile 빌드하는 방법입니다.

특정 위치에 Dockerfile (명칭주의) 을 위치 시킵니다. 예: C:/BUILD

 

command 창을 열어서 Dockerfile 경로로 이동합니다. (이동하지 않아도 됨)

아래 명령어를 수행하면 Dockerfile 을 빌드하여 textpy 명칭의 이미지로 만듭니다.

 

(. 은 현재 경로를 의미합니다.)

docker build -t testpy .

 

(이동하지 않은 경우)

docker build -t testpy C:/BUILD

 

 

만들어진 이미지를 저장하고 이를 다른 곳에서 읽어 들일때 사용되는 명령이다.

 

dockerconsoleapp 이미지를 kjuntest.tar 파일로 저장한다.

 

docker image save -o kjuntest.tar dockerconsoleapp

 

 

kjuntest.tar 을 읽어 이미지를 생성한다.

이미지 명칭은 이미지를 저장할때의 이미지 명을 그대로 가져온다. (파일명과 무관함)

 

docker image load -i kjuntest.tar

볼륨처리와 함께 Container 구동하는 방법이다.

d:/dock 폴더의 내용을 컨네이너상의 c:/dock 으로 매핑시켜준다.

 

docker container run -it -v d:/dock:c:/dock dockerconsoleapp test

 

 

아래의 -rm 옵션은 Container 구동하여 작업 수행 후 Container 를 제거 하는 옵션이다.

 

docker container run -it --rm -v d:/dock:c:/dock dockerconsoleapp test

 

 

'Docker' 카테고리의 다른 글

[Docker] Dockerfile 빌드 하기  (0) 2019.05.12
[Docker] 이미지 Save/Load 하기  (0) 2019.05.12
[Docker] Container 구동하기  (0) 2019.05.12
[Docker] DockerFile 명령어 - COPY  (0) 2019.05.12
[Docker] DockerFile 명령어 - ADD  (0) 2019.05.12
[Docker] DockerFile 명령어 - EXPOSE  (0) 2019.05.12

 

* 디렉토리 복사

COPY d:/Test c:/Test

 

* 파일복사

COPY d:/Test/image.png c:/Test/image.png

 

* 파일을 디렉토리에 복사

COPY d:/Test/image.png c:/Test/

COPY 명령어와 사용방법은 같다.

다만 ADD 명령어가 COPY 명령어보다 빠르다고 한다.

 

* 디렉토리 복사

ADD d:/Test c:/Test

 

* 파일복사

ADD d:/Test/image.png c:/Test/image.png

 

* 파일을 디렉토리에 복사

ADD d:/Test/image.png c:/Test/

 

컨네이너의 포트를 공개 할때 사용되는 명령어이다.

 

EXPOSE 8008

 

8008 포트가 공개된다.

사내에서 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

 

 

docker run -it --memory 1g --cpu-percent 20 microsoft/nanoserver
1. 변경할이름으로 이미지를 만든다. (복제라고 보면될것같다)

  docker tag changename:latest oldname:latest


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

  docker rmi oldname

+ Recent posts