반응형

 

 

 

Docker

Ubuntu 환경에서 Docker insecure-registry 구성 및 설정


 

Ubuntu 20.04.4 LTS 환경으로 테스트 진행

 

 

 

 

 

 

 

Docker 개인 저장소 구축하기

Docker 명령은 기본적으로 Docker Hub를 사용됩니다.

개인 저장소 서버는 Docker registry 서버라고 부릅니다. Docker push, pull 명령으로 저장소 서버에 이미지를 올리고, 받을 수 있습니다.

이제 Docker 개인 저장소를 구축하겠습니다.

현재 동작중인 docker 데몬 상태
$ systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-06-05 03:41:17 UTC; 1h 58min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 969 (dockerd)
      Tasks: 9
     Memory: 111.4M
     CGroup: /system.slice/docker.service
             └─969 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

동작중인 Docker 데몬을 stop 시키기
$ sudo systemctl stop docker
Warning: Stopping docker.service, but it can still be activated by:
  docker.socket
$

동작중인 docker 데몬을 stop 시킨 상태
$ systemctl status docker   
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Sun 2022-06-05 05:47:23 UTC; 3s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
    Process: 4671 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited,>
   Main PID: 4671 (code=exited, status=0/SUCCESS)

 

 

docker insecure-registry 수정하기

Docker 데몬을 멈춘상태에서 /etc/init.d/docker 파일을 수정해주어야합니다.

'DOCKER_OPTS=' 부분 뒤에 내용을 추가해주세요,

$ cat /etc/init.d/docker
DOCKER_OPTS=--insecure-registry localhost:5000

수정이 완료된 상태에서 docker 데몬을 재시작해주세요.
$ sudo systemctl docker restart

동작중인 상태 확인
$ systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-06-05 05:53:21 UTC; 5s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 5170 (dockerd)
      Tasks: 10
     Memory: 32.5M
     CGroup: /system.slice/docker.service
             └─5170 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

 

 

Docker registry 이미지 설정

Docker Hub를 통해 Docker registry 이미지를 받습니다.

Docker registry 이미지 받기
$ sudo docker pull registry:latest
latest: Pulling from library/registry
Digest: sha256:bedef0f1d248508fe0a16d2cacea1d2e68e899b2220e2258f1b604e1f327d475
Status: Image is up to date for registry:latest
docker.io/library/registry:latest
$ 

Docker 이미지 확인
$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
registry     latest    773dbf02e42e   9 days ago      24.1MB
$

docker registry 이미지를 컨테이너로 생성
$ sudo docker run -d -p 5000:5000 --name jinsu-registry \
> -v /tmp/registry:/tmp/registry \
> registry
8d4a67d87d99a9dd4aab1d0c513c58b21c560da939fa4960ee98fbc4a3692841
$ 

생성된 컨테이너 동작 상태 확인
$ sudo docker ps -a
CONTAINER ID   IMAGE           COMMAND                  CREATED         STATUS                  PORTS                                       NAMES
8d4a67d87d99   registry        "/entrypoint.sh /etc…"   2 minutes ago   Up 2 minutes            0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   jinsu-registry
$
  • docker run -p 옵션을 통해 5000:5000 포트로 호스트서버 5000 포트와 컨테이너 5000 포트를 연결해줍니다.
  • docker run -v 옵션을 통해 호스트서버 /tmp/registry 디렉토리와 컨테이너 /tmp/registry 디렉토리를 공유 시켜줍니다.

 

 

Docker 개인 저장소에 이미지 올리기

tag 명령을 통해 앞서 만든 이미지를 태그로 생성해주고

push 명령을 통해 개인 저장소로 올려줍니다.

Docker registry 컨테이너가 동작중인지 확인
$sudo docker ps -a
CONTAINER ID   IMAGE           COMMAND   CREATED      STATUS                  PORTS     NAMES
61edbce54f41   nginxtest:0.1   "nginx"   2 days ago   Exited (0) 2 days ago             jinsu-nginx
$ 

현재 가지고 있는 이미지 확인
$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginxtest    0.3       df69b2bb7f48   2 days ago      232MB
nginxtest    0.2       45fe3bfa31b6   2 days ago      232MB
nginxtest    0.1       740379f9b11b   2 days ago      232MB
registry     latest    773dbf02e42e   9 days ago      24.1MB
ubuntu       14.04     13b66b487594   14 months ago   197MB
$

Dodcker tag 생성하기
$ sudo docker tag [이미지 이름]:[TAG] [Docker registry URL]:[TAG]

EX)
$ sudo docker tag nginxtest:0.1 localhost:5000/nginx:0.1

Docker registry 서버로 업로드하기
$ sudo docker push [Docker registry URL]/[이미지 이름]:[TAG]

EX)
$ sudo docker push localhost:5000/nginxtest:0.1
The push refers to repository [localhost:5000/nginxtest]
c4adbf8d4df4: Pushed 
56104874600e: Pushed 
79b16ae8ffe2: Pushed 
958dcff7226f: Pushed 
83109fa660b2: Pushed 
30d3c4334a23: Pushed 
f2fa9f4cf8fd: Pushed 
0.1: digest: sha256:6d2ee764d8d6ce21b62c9cab92e28555c69b1a7028db7cf170b269ff97f901c1 size: 1782
$
  • 개인 저장소에 이미지를 업로드할때는 먼저 태그를 먼저 생성해야합니다.

 

 

Docker 개인 저장소에 있는 이미지 다운받기

pull 명령을 통해 개인 저장소에 있는 이미지를 다운로드 

이미지 다운받기 전 
$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginxtest    0.3       df69b2bb7f48   2 days ago      232MB
nginxtest    0.2       45fe3bfa31b6   2 days ago      232MB
nginxtest    0.1       740379f9b11b   2 days ago      232MB
registry     latest    773dbf02e42e   9 days ago      24.1MB
ubuntu       14.04     13b66b487594   14 months ago   197MB
$ 

$sudo doker pull [Docker registry URL]/[이미지 이름]:[TAG]

EX)
$ sudo docker pull 192.168.0.210:5000/nginxtest:0.1
0.1: Pulling from nginxtest
Digest: sha256:6d2ee764d8d6ce21b62c9cab92e28555c69b1a7028db7cf170b269ff97f901c1
Status: Downloaded newer image for 192.168.0.210:5000/nginxtest:0.1
192.168.0.210:5000/nginxtest:0.1
$

이미지 다운로드 후
$ sudo docker images
REPOSITORY                     TAG       IMAGE ID       CREATED         SIZE
nginxtest                      0.3       df69b2bb7f48   2 days ago      232MB
nginxtest                      0.2       45fe3bfa31b6   2 days ago      232MB
nginxtest                      0.1       740379f9b11b   2 days ago      232MB
192.168.0.210:5000/nginxtest   0.1       740379f9b11b   2 days ago      232MB
registry                       latest    773dbf02e42e   9 days ago      24.1MB
ubuntu                         14.04     13b66b487594   14 months ago   197MB
$

 

 

 

 

 

 

 

 

 

반응형

+ Recent posts