반응형
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
$
- pull 명령어 사용 시 에러로그가 발생하였을때 아래 URL에서 해결방법 확인
- https://light-touch-fish.tistory.com/35?category=939524
반응형
'Kubernetes > Docker' 카테고리의 다른 글
[Docker] 컨테이너간 통신 설정하기 (0) | 2022.06.05 |
---|---|
[Docker] registry pull 오류 "Error response from daemon" (0) | 2022.06.05 |
[Docker] Ubuntu 환경에서 Docker 명령어 사용하기 #3 (0) | 2022.06.02 |
[Docker] Ubuntu 환경에서 Dockerfile 설정하기 (0) | 2022.06.01 |
[Docker] Ubuntu 환경에서 Docker 명령어 사용하기 #2 (0) | 2022.05.31 |