티스토리 뷰
[Kubernetes & Docker] Docker Private Registry Install & Setting
GodNR 2018. 10. 18. 17:20본 포스팅은 다음 URL에 보다 상세히 정의하였습니다.
[Docker Registry] Docker Image를 활용한 Local Registry 구축
==============이전 포스팅==============
본 포스팅은 Docker Private Registry 설치과정을 살펴보겠습니다.
Kubernetes & Docker Install 과정을 살펴보며, 추후 CICD 구축에 활용될 수 있도록 하는데 목적이 있습니다.
금일은 Docker Public Registry인 Docker Hub를 사용할 수도 있지만, 개인 공간의 Registry를 사용할 수 있는 Private Registry를 구축하여 사내에서 사용할 수 있도록 구현하는 방법에 대해 알아보겠습니다.
Private Registry를 사용 할 경우 다음과 같은 장점이 있습니다.
- Docker Hub등의 Public Registry의 경우 하나의 이미지만 private 등록이 가능하고 organization의 경우 비용을 지불해야 하지만 Private Registry의 경우 제한이 없다.
- 개인 공간에서 보다 많은 권한을 부여하여 사용할 수 있다.
위와 같은 사유로 인해 내부 Private Cloud 환경에 적용가능한 Docker Private Registry를 지금부터 구현해 보도록 하겠습니다.
먼저 Docker를 설치하는 방법은 이전 포스팅을 참고하시기 바랍니다. (ex) wget -qO- https:
//get
.docker.com/ | sh
)
Docker Registry를 구현하는 방법은 간단합니다.
1. Docker registry Images 가져오기
[root@k8s-master ~]# docker pull registry:latest
latest: Pulling from library/registry
Digest: sha256:5a156ff125e5a12ac7fdec2b90b7e2ae5120fa249cf62248337b6d04abc574c8
Status: Image is up to date for registry:latest
- 위와 같이 Docker Repository를 생성하고 다음 정상 생성되었는지 확인합니다.
[root@k8s-master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
k8s.gcr.io/kube-proxy v1.12.1 61afff57f010 12 days ago 96.6MB
k8s.gcr.io/kube-controller-manager v1.12.1 aa2dd57c7329 12 days ago 164MB
k8s.gcr.io/kube-scheduler v1.12.1 d773ad20fd80 12 days ago 58.3MB
k8s.gcr.io/kube-apiserver v1.12.1 dcb029b5e3ad 12 days ago 194MB
k8s.gcr.io/etcd 3.2.24 3cab8e1b9802 3 weeks ago 220MB
weaveworks/weave-npc 2.4.1 f4dbcb83cd0a 4 weeks ago 49.1MB
weaveworks/weave-kube 2.4.1 84685279975a 4 weeks ago 131MB
registry latest 2e2f252f3c88 5 weeks ago 33.3MB
hello-world latest 4ab4c602aa5e 5 weeks ago 1.84kB
localhost:5000/hello-world latest 4ab4c602aa5e 5 weeks ago 1.84kB
k8s.gcr.io/coredns 1.2.2 367cdc8433a4 7 weeks ago 39.2MB
k8s.gcr.io/kubernetes-dashboard-amd64 v1.10.0 0dab2435c100 7 weeks ago 122MB
k8s.gcr.io/pause 3.1 da86e6ba6ca1 10 months ago 742kB
[root@k8s-master ~]#
위와 같이 docker docker images로 정상 생성여부를 확인하고 Docker에 접속할 계정을 생성합니다.
2. Docker registry 실행
[root@k8s-master ~]# docker run --name MyPrivate-Docker -d -p 5000:5000 registry
18b0a60c87486ee4c975d9c684c97f8eb4ddc9b5b151bf62522a537878f5cf26
[root@k8s-master ~]#
- docker run 명령어로 컨테이너 기동
- --name은 docker image 이름
- -d 백그라운드 실행
- -p 5000:5000 registry 실행
3. Docker registry 확인
[root@k8s-master ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
18b0a60c8748 registry "/entrypoint.sh /etc…" 2 hours ago Up 2 hours 0.0.0.0:5000->5000/tcp MyPrivate-Docker
3f284bab3ec4 k8s.gcr.io/kubernetes-dashboard-amd64 "/dashboard --insecu…" 19 hours ago Up 19 hours k8s_kubernetes-dashboard_kubernetes-dashboard-77fd78f978-mfxb8_kube-system_4076aa96-d1ec-11e8-9fdd-9883898074d3_0
42afe6996e1e k8s.gcr.io/pause:3.1 "/pause" 19 hours ago Up 19 hours k8s_POD_kubernetes-dashboard-77fd78f978-mfxb8_kube-system_4076aa96-d1ec-11e8-9fdd-9883898074d3_0
7f7a92cbbc2d registry "htpasswd -Bbn oss-w…" 23 hours ago Exited (0) 23 hours ago elated_shaw
56bbba510c6b 367cdc8433a4 "/coredns -conf /etc…" 44 hours ago Up 44 hours k8s_coredns_coredns-576cbf47c7-gxn2m_kube-system_02e11897-d120-11e8-9fdd-9883898074d3_0
26be33132fa2 367cdc8433a4 "/coredns -conf /etc…" 44 hours ago Up 44 hours k8s_coredns_coredns-576cbf47c7-kkvr6_kube-system_02df3d23-d120-11e8-9fdd-9883898074d3_0
6995158de9dc k8s.gcr.io/pause:3.1 "/pause" 44 hours ago Up 44 hours k8s_POD_coredns-576cbf47c7-kkvr6_kube-system_02df3d23-d120-11e8-9fdd-9883898074d3_0
db3b92728afa k8s.gcr.io/pause:3.1 "/pause" 44 hours ago Up 44 hours k8s_POD_coredns-576cbf47c7-gxn2m_kube-system_02e11897-d120-11e8-9fdd-9883898074d3_0
2a2fefb22d3a weaveworks/weave-npc "/usr/bin/weave-npc" 44 hours ago Up 44 hours k8s_weave-npc_weave-net-tztj4_kube-system_d5042d26-d120-11e8-9fdd-9883898074d3_0
04fa21080461 weaveworks/weave-kube "/home/weave/launch.…" 44 hours ago Up 44 hours k8s_weave_weave-net-tztj4_kube-system_d5042d26-d120-11e8-9fdd-9883898074d3_0
7b7c95654523 k8s.gcr.io/pause:3.1 "/pause" 44 hours ago Up 44 hours k8s_POD_weave-net-tztj4_kube-system_d5042d26-d120-11e8-9fdd-9883898074d3_0
249d98d4917b 61afff57f010 "/usr/local/bin/kube…" 44 hours ago Up 44 hours k8s_kube-proxy_kube-proxy-qrzlj_kube-system_02a35976-d120-11e8-9fdd-9883898074d3_0
d9c6f9803dcc k8s.gcr.io/pause:3.1 "/pause" 44 hours ago Up 44 hours k8s_POD_kube-proxy-qrzlj_kube-system_02a35976-d120-11e8-9fdd-9883898074d3_0
876e79418397 3cab8e1b9802 "etcd --advertise-cl…" 44 hours ago Up 44 hours k8s_etcd_etcd-k8s-master_kube-system_c6ac110cbbe80b7156d7f1bb985f7e90_0
412572ade07b aa2dd57c7329 "kube-controller-man…" 44 hours ago Up 44 hours k8s_kube-controller-manager_kube-controller-manager-k8s-master_kube-system_daad197fa30823e693fd52c5496dd730_0
440c51e6a50e d773ad20fd80 "kube-scheduler --ad…" 44 hours ago Up 44 hours k8s_kube-scheduler_kube-scheduler-k8s-master_kube-system_3c7cced3664379c67e8177757da3fa42_0
514b6c8c0ef6 dcb029b5e3ad "kube-apiserver --au…" 44 hours ago Up 44 hours k8s_kube-apiserver_kube-apiserver-k8s-master_kube-system_eaf429bef615820fb3cf2cf19487e575_0
6587e6460728 k8s.gcr.io/pause:3.1 "/pause" 44 hours ago Up 44 hours k8s_POD_kube-scheduler-k8s-master_kube-system_3c7cced3664379c67e8177757da3fa42_0
c7a1c218307f k8s.gcr.io/pause:3.1 "/pause" 44 hours ago Up 44 hours k8s_POD_kube-controller-manager-k8s-master_kube-system_daad197fa30823e693fd52c5496dd730_0
2d4cb190fbde k8s.gcr.io/pause:3.1 "/pause" 44 hours ago Up 44 hours k8s_POD_kube-apiserver-k8s-master_kube-system_eaf429bef615820fb3cf2cf19487e575_0
8c40e37290b0 k8s.gcr.io/pause:3.1 "/pause" 44 hours ago Up 44 hours k8s_POD_etcd-k8s-master_kube-system_c6ac110cbbe80b7156d7f1bb985f7e90_0
[root@k8s-master ~]#
- 위와 같이 docker ps -a로 확인하면 추가한 docker registry를 확인할 수 있습니다.
[root@k8s-master ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
18b0a60c8748 registry "/entrypoint.sh /etc…" 2 hours ago Up 2 hours 0.0.0.0:5000->5000/tcp MyPrivate-Docker
[root@k8s-master ~]#
- docker ps -l 을 사용하면 최근에 추가한 컨테이너를 확인할 수 있죠.
4. Listen Port 확인
[root@k8s-master ~]# netstat -an | grep 5000
tcp6 0 0 :::5000 :::* LISTEN
[root@k8s-master ~]#
- 바인딩한 5000번 포트가 정상적으로 Listen하고 있어요.
- 컨테이너의 5000번 포트가 호스트의 5000 포트로 노출되며, 도커 레지스트리는 http를 통해 기본적인 API를 제공합니다.
Docker Registry를 구축을 완료하였으면 이제 실제로 사용하는 방법에 대해 살펴보겠습니다.
1. Dockerfile 작성
[root@k8s-master dockerDir]# cat Dockerfile
FROM ubuntu:12.04
MAINTAINER Nara Son <nara0617@gmail.com>
CMD echo 'My First Docker!'
[root@k8s-master dockerDir]#
- 간단한 Dockerfile을 작성합니다.
2. Dockerfile을 이용하여 Docker Image를 생성합니다.
[root@k8s-master dockerDir]# docker build -t nrson/hello_docker .
Sending build context to Docker daemon 10.24kB
Step 1/3 : FROM ubuntu:12.04
12.04: Pulling from library/ubuntu
d8868e50ac4c: Pull complete
83251ac64627: Pull complete
589bba2f1b36: Pull complete
d62ecaceda39: Pull complete
6d93b41cfc6b: Pull complete
Digest: sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005
Status: Downloaded newer image for ubuntu:12.04
---> 5b117edd0b76
Step 2/3 : MAINTAINER Nara Son <nara0617@gmail.com>
---> Running in 61841107951e
Removing intermediate container 61841107951e
---> 5c511b84c641
Step 3/3 : CMD echo 'My First Docker!'
---> Running in 76011577d3f1
Removing intermediate container 76011577d3f1
---> b1e1ab7e9b17
Successfully built b1e1ab7e9b17
Successfully tagged nrson/hello_docker:latest
[root@k8s-master dockerDir]#
- nrson/hello_docker라는 tag 이름으로 docker 이미지를 생성하였습니다.
3. docker images 생성확인
[root@k8s-master dockerDir]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nrson/hello_docker latest b1e1ab7e9b17 About a minute ago 104MB
k8s.gcr.io/kube-proxy v1.12.1 61afff57f010 12 days ago 96.6MB
k8s.gcr.io/kube-apiserver v1.12.1 dcb029b5e3ad 12 days ago 194MB
k8s.gcr.io/kube-controller-manager v1.12.1 aa2dd57c7329 12 days ago 164MB
k8s.gcr.io/kube-scheduler v1.12.1 d773ad20fd80 12 days ago 58.3MB
k8s.gcr.io/etcd 3.2.24 3cab8e1b9802 3 weeks ago 220MB
weaveworks/weave-npc 2.4.1 f4dbcb83cd0a 4 weeks ago 49.1MB
weaveworks/weave-kube 2.4.1 84685279975a 4 weeks ago 131MB
registry latest 2e2f252f3c88 5 weeks ago 33.3MB
localhost:5000/hello-world latest 4ab4c602aa5e 5 weeks ago 1.84kB
hello-world latest 4ab4c602aa5e 5 weeks ago 1.84kB
k8s.gcr.io/coredns 1.2.2 367cdc8433a4 7 weeks ago 39.2MB
k8s.gcr.io/kubernetes-dashboard-amd64 v1.10.0 0dab2435c100 7 weeks ago 122MB
k8s.gcr.io/pause 3.1 da86e6ba6ca1 10 months ago 742kB
ubuntu 12.04 5b117edd0b76 18 months ago 104MB
[root@k8s-master dockerDir]# docker run nrson/hello_docker
My First Docker!
[root@k8s-master dockerDir]#
보시는 것처럼 방금전 생성한 nrson/hello_docker가 생성된 것을 볼 수 있습니다.
docker run 수행 시 Dockerfile에 작성한 My First Docker!가 출력되는 것을 볼 수 있습니다.
그럼 이제 생성한 이미지를 Docker Private Registry에 Push해야 겠죠?
4. docker tag를 이용하여 docker registry에 push
앞서 생성한 Private Registry에 이미지를 올려보도록 하겠습니다.
[root@k8s-master dockerDir]# docker tag nrson/hello_docker 0.0.0.0:5000/hello_docker
[root@k8s-master dockerDir]#
- 다시 docker images로 생성된 이미지를 확인해보면
[root@k8s-master dockerDir]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
0.0.0.0:5000/hello_docker latest b1e1ab7e9b17 4 minutes ago 104MB
nrson/hello_docker latest b1e1ab7e9b17 4 minutes ago 104MB
...
[root@k8s-master dockerDir]#
위와 같이 생성된 시간이 동일하게 나오죠?
이것으로 미루어보아 신규로 생성한 0.0.0.0:5000/hello_docker 이미지는 nrson/hello_docker와 동일한 이미지임을 알수 있습니다.
자 그럼 Private Docker에 Push를 실행해 보도록 할께요.
5. Private Docker에 이미지 push
- docker push를 수행할때 다음과 같은 오류를 접할경우가 있을 것입니다.
[root@k8s-master dockerDir]# docker push 172.21.70.22:5000/hello_docker
The push refers to repository [0.0.0.0:5000/hello_docker]
Get https://172.21.70.22:5000/v2/: http: server gave HTTP response to HTTPS client
[root@k8s-master dockerDir]#
다음과 같은 문제는 추가한 신규 registry의 경우 docker daemon에 insecure-registries를 등록해 주어야 합니다.
[root@k8s-master dockerDir]# cat /etc/docker/daemon.json
{
"insecure-registries" : ["172.21.70.22:5000"]
}
[root@k8s-master dockerDir]# systemctl restart docker
[root@k8s-master dockerDir]#
다음과 같이 /etc/docker/daemon.json을 작성합니다.
docker를 재기동 하고 다시 수행해 볼까요?
[root@k8s-master dockerDir]# docker push 172.21.70.22:5000/hello_docker
The push refers to repository [172.21.70.22:5000/hello_docker]
3efd1f7c01f6: Pushed
73b4683e66e8: Pushed
ee60293db08f: Pushed
9dc188d975fd: Pushed
58bcc73dcf40: Pushed
latest: digest: sha256:a7d1c874613c59e73380dbcc3e0c8506b8919c4e0e0e23bdf02de01ff60cecbd size: 1359
[root@k8s-master dockerDir]#
드디어 성공! 지금까지 따라오기 힘드시죠?
자 그럼 한번 정리하고 다음으로 넘어갈께요.
1. docker private rregistry를 설치하구요.
2. docker run... 5000:5000으로 docker 기동합니다.
3. 다음으로 Dockerfile을 생성하여 Docker 이미지를 생성하고
4. docker tag로 tag를 명시하여 이미지를 업로드합니다.
다음으로 Docker Private Registry에서 Pulling하여 실행하는 방법에 대해 알아보겠습니다.
중요한 사항은 현대 local repository에 올라가 있는 image와 container를 모두 삭제한 이후 실행하는 것이 보다 확실할 수 있습니다.
1. docker rmi [image] and docker rm [container] 수행
- 올라가 있는 Container를 docker rm으로 제거합니다.
[root@k8s-master dockerDir]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2d526befc1a6 172.21.70.22:5000/hello_docker "/bin/sh -c 'echo 'M…" About an hour ago Exited (0) About an hour ago awesome_bhaskara
e9e8af1300c1 registry "/entrypoint.sh /etc…" About an hour ago Up About an hour 0.0.0.0:5000->5000/tcp MyPrivate-Docker
eb3cf068457c 367cdc8433a4 "/coredns -conf /etc…" About an hour ago Up About an hour k8s_coredns_coredns-576cbf47c7-kkvr6_kube-system_02df3d23-d120-11e8-9fdd-9883898074d3_1
[root@k8s-master dockerDir]# docker rm 2d526befc1a6
2d526befc1a6
[root@k8s-master dockerDir]#
- 다음으로 올라가 있는 Image 역시 제거합니다.
[root@k8s-master dockerDir]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
172.21.70.22:5000/hello_docker latest cb13f721e08d 2 hours ago 104MB
k8s.gcr.io/kube-proxy v1.12.1 61afff57f010 12 days ago 96.6MB
k8s.gcr.io/kube-apiserver v1.12.1 dcb029b5e3ad 12 days ago 194MB
k8s.gcr.io/kube-controller-manager v1.12.1 aa2dd57c7329 12 days ago 164MB
k8s.gcr.io/kube-scheduler v1.12.1 d773ad20fd80 12 days ago 58.3MB
k8s.gcr.io/etcd 3.2.24 3cab8e1b9802 3 weeks ago 220MB
weaveworks/weave-npc 2.4.1 f4dbcb83cd0a 4 weeks ago 49.1MB
weaveworks/weave-kube 2.4.1 84685279975a 4 weeks ago 131MB
registry latest 2e2f252f3c88 5 weeks ago 33.3MB
hello-world latest 4ab4c602aa5e 5 weeks ago 1.84kB
localhost:5000/hello-world latest 4ab4c602aa5e 5 weeks ago 1.84kB
k8s.gcr.io/coredns 1.2.2 367cdc8433a4 7 weeks ago 39.2MB
k8s.gcr.io/kubernetes-dashboard-amd64 v1.10.0 0dab2435c100 7 weeks ago 122MB
k8s.gcr.io/pause 3.1 da86e6ba6ca1 10 months ago 742kB
ubuntu 12.04 5b117edd0b76 18 months ago 104MB
[root@k8s-master dockerDir]# docker rmi 172.21.70.22:5000/hello_docker
Untagged: 172.21.70.22:5000/hello_docker:latest
Untagged: 172.21.70.22:5000/hello_docker@sha256:a7d1c874613c59e73380dbcc3e0c8506b8919c4e0e0e23bdf02de01ff60cecbd
Deleted: sha256:cb13f721e08d906a55ab69b2be8d60c7f7c9c3343abf91dff8387cb6a70c4c96
[root@k8s-master dockerDir]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
k8s.gcr.io/kube-proxy v1.12.1 61afff57f010 12 days ago 96.6MB
k8s.gcr.io/kube-controller-manager v1.12.1 aa2dd57c7329 12 days ago 164MB
k8s.gcr.io/kube-apiserver v1.12.1 dcb029b5e3ad 12 days ago 194MB
k8s.gcr.io/kube-scheduler v1.12.1 d773ad20fd80 12 days ago 58.3MB
k8s.gcr.io/etcd 3.2.24 3cab8e1b9802 3 weeks ago 220MB
weaveworks/weave-npc 2.4.1 f4dbcb83cd0a 4 weeks ago 49.1MB
weaveworks/weave-kube 2.4.1 84685279975a 4 weeks ago 131MB
registry latest 2e2f252f3c88 5 weeks ago 33.3MB
localhost:5000/hello-world latest 4ab4c602aa5e 5 weeks ago 1.84kB
hello-world latest 4ab4c602aa5e 5 weeks ago 1.84kB
k8s.gcr.io/coredns 1.2.2 367cdc8433a4 7 weeks ago 39.2MB
k8s.gcr.io/kubernetes-dashboard-amd64 v1.10.0 0dab2435c100 7 weeks ago 122MB
k8s.gcr.io/pause 3.1 da86e6ba6ca1 10 months ago 742kB
ubuntu 12.04 5b117edd0b76 18 months ago 104MB
[root@k8s-master dockerDir]#
2. 172.21.70.22:5000 Docker Registry에서 docker run 수행
[root@k8s-master dockerDir]# docker run 172.21.70.22:5000/hello_docker
Unable to find image '172.21.70.22:5000/hello_docker:latest' locally
latest: Pulling from hello_docker
396e9d6ee8c9: Already exists
403b0fc2e6f1: Already exists
7124ef1a91d2: Already exists
f47441d15565: Already exists
588e8920e707: Already exists
Digest: sha256:a7d1c874613c59e73380dbcc3e0c8506b8919c4e0e0e23bdf02de01ff60cecbd
Status: Downloaded newer image for 172.21.70.22:5000/hello_docker:latest
My First Docker!
[root@k8s-master dockerDir]#
- 위와 같이 정상적으로 docker run이 수행된 것을 볼 수 있습니다. locally에서 찾아보니 해당 이미지가 없어서 172.21.70.22:5000에서 이미지를 Pulling해서 실행하는 것을 볼 수 있습니다.
- Dockerfile에 명시한 CMD echo 'My First Docker!' 의 경우 echo 출력 후 바로 종료되어 Container 역시 종료됨을 알 수 있습니다.
[root@k8s-master dockerDir]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c91c953f2ab 172.21.70.22:5000/hello_docker "/bin/sh -c 'echo 'M…" 3 minutes ago Exited (0) 3 minutes ago optimistic_noyce
[root@k8s-master dockerDir]#
- docker run 수행 후 echo가 출력되고 3분전 해당 Container가 Exited 된 것을 볼 수 있습니다.
자 지금까지 살펴본 Docker Private Registry에는 한가지 문제가 있는데요. 바로 GUI를 제공하지 않는다는 점이죠.
해서 지금부터는 GUI를 지원하는 Docker Registry Web을 설치해 보도록하겠습니다.
1. docker-registry-web을 설치하기 위한 yaml파일 작성
[root@k8s-master dockerDir]# cat config.yaml
registry:
# 기존에 설치한 docker private registry
url: http://172.21.70.22:5000/v2
# Docker registry name
name: 172.21.70.22:5000
# docker 권한 부여
readonly: false
auth:
enabled: false
[root@k8s-master dockerDir]#
2. docker-registry-web 실행
[root@k8s-master dockerDir]# docker run -it -p 8080:8080 --name registry-web --link MyPrivate-Docker -v /root/dockerDir/config.yaml:/conf/config.yml:ro hyper/docker-registry-web
CATALINA_OPTS: -Djava.security.egd=file:/dev/./urandom -Dcontext.path=
Using CATALINA_BASE: /var/lib/tomcat7
Using CATALINA_HOME: /usr/share/tomcat7
Using CATALINA_TMPDIR: /var/lib/tomcat7/temp
Using JRE_HOME: /usr/lib/jvm/java-7-openjdk-amd64
Using CLASSPATH: /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
Oct 18, 2018 7:58:13 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Oct 18, 2018 7:58:13 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 323 ms
Oct 18, 2018 7:58:13 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Oct 18, 2018 7:58:13 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.52 (Ubuntu)
2018-10-18 07:58:22,305 [localhost-startStop-1] INFO hibernate4.HibernatePluginSupport - Set db generation strategy to 'update' for datasource DEFAULT
Configuring Spring Security Core ...
... finished configuring Spring Security Core
2018-10-18 07:58:22,814 [localhost-startStop-1] INFO cache.CacheBeanPostProcessor - postProcessBeanDefinitionRegistry start
2018-10-18 07:58:22,821 [localhost-startStop-1] INFO cache.CacheBeanPostProcessor - postProcessBeanFactory
2018-10-18 07:58:23,643 [localhost-startStop-1] WARN config.ConfigurationFactory - No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/var/lib/tomcat7/webapps/ROOT/WEB-INF/lib/ehcache-2.9.0.jar!/ehcache-failsafe.xml
2018-10-18 07:58:24,175 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: access_control
2018-10-18 07:58:24,176 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: event
2018-10-18 07:58:24,177 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: role
2018-10-18 07:58:24,178 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: role_access
2018-10-18 07:58:24,179 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: user
2018-10-18 07:58:24,180 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: user_role
2018-10-18 07:58:24,180 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: access_control
2018-10-18 07:58:24,181 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: event
2018-10-18 07:58:24,182 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: role
2018-10-18 07:58:24,183 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: role_access
2018-10-18 07:58:24,183 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: user
2018-10-18 07:58:24,184 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: user_role
2018-10-18 07:58:24,185 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: access_control
2018-10-18 07:58:24,186 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: event
2018-10-18 07:58:24,186 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: role
2018-10-18 07:58:24,187 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: role_access
2018-10-18 07:58:24,187 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: user
2018-10-18 07:58:24,188 [localhost-startStop-1] INFO sql.DatabaseMetaData - HHH000262: Table not found: user_role
2018-10-18 07:58:24,325 [localhost-startStop-1] INFO ehcache.GrailsEhCacheManagerFactoryBean - Initializing EHCache CacheManager
2018-10-18 07:58:25,591 [localhost-startStop-1] WARN web.TokenService - Authorization disabled
2018-10-18 07:58:26,607 [localhost-startStop-1] INFO filter.AnnotationSizeOfFilter - Using regular expression provided through VM argument net.sf.ehcache.pool.sizeof.ignore.pattern for IgnoreSizeOf annotation : ^.*cache\..*IgnoreSizeOf$
2018-10-18 07:58:26,611 [localhost-startStop-1] INFO sizeof.AgentLoader - Located valid 'tools.jar' at '/usr/lib/jvm/java-7-openjdk-amd64/jre/../lib/tools.jar'
2018-10-18 07:58:26,616 [localhost-startStop-1] INFO sizeof.JvmInformation - Detected JVM data model settings of: 64-Bit OpenJDK JVM with Compressed OOPs
2018-10-18 07:58:26,838 [localhost-startStop-1] INFO sizeof.AgentLoader - Extracted agent jar to temporary file /var/lib/tomcat7/temp/ehcache-sizeof-agent6155212255395185609.jar
2018-10-18 07:58:26,838 [localhost-startStop-1] INFO sizeof.AgentLoader - Trying to load agent @ /var/lib/tomcat7/temp/ehcache-sizeof-agent6155212255395185609.jar
2018-10-18 07:58:26,841 [localhost-startStop-1] INFO impl.DefaultSizeOfEngine - using Agent sizeof engine
2018-10-18 07:58:26,859 [localhost-startStop-1] INFO impl.DefaultSizeOfEngine - using Agent sizeof engine
2018-10-18 07:58:26,888 [localhost-startStop-1] INFO context.GrailsConfigUtils - [GrailsContextLoader] Grails application loaded.
2018-10-18 07:58:26,920 [localhost-startStop-1] INFO conf.BootStrap - Starting registry-web ver. 0.1.3-SNAPSHOT-bededf47611365f0a6d2bb87942e3b86c1e92d9f
2018-10-18 07:58:26,948 [localhost-startStop-1] INFO web.ConfigService - [environmentProperties, localProperties]
2018-10-18 07:58:26,954 [localhost-startStop-1] INFO web.ConfigService - resolved config:
2018-10-18 07:58:26,956 [localhost-startStop-1] INFO web.ConfigService - registry.url: http://172.21.70.22:5000/v2
2018-10-18 07:58:26,956 [localhost-startStop-1] INFO web.ConfigService - registry.auth:
2018-10-18 07:58:26,956 [localhost-startStop-1] INFO web.ConfigService - registry.auth.key: /config/auth.key
2018-10-18 07:58:26,956 [localhost-startStop-1] INFO web.ConfigService - registry.readonly: false
2018-10-18 07:58:26,956 [localhost-startStop-1] INFO web.ConfigService - registry.trust_any_ssl: false
2018-10-18 07:58:26,956 [localhost-startStop-1] INFO web.ConfigService - registry.basic_auth:
2018-10-18 07:58:26,956 [localhost-startStop-1] INFO web.ConfigService - registry.enabled: false
2018-10-18 07:58:26,956 [localhost-startStop-1] INFO web.ConfigService - registry.auth.enabled: false
2018-10-18 07:58:26,956 [localhost-startStop-1] INFO web.ConfigService - registry.context_path:
2018-10-18 07:58:26,956 [localhost-startStop-1] INFO web.ConfigService - registry.auth.issuer: test-issuer
2018-10-18 07:58:26,956 [localhost-startStop-1] INFO web.ConfigService - registry.name: 172.21.70.22:5000
2018-10-18 07:58:26,958 [localhost-startStop-1] INFO conf.BootStrap - auth enabled: false
Oct 18, 2018 7:58:27 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Oct 18, 2018 7:58:27 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 13433 ms
3. docker-registry-web container 기동 확인
[root@k8s-master dockerDir]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fc85002eddcf hyper/docker-registry-web "start.sh" 17 minutes ago Up 17 minutes 0.0.0.0:8080->8080/tcp registry-web
[root@k8s-master dockerDir]#
- 위와 같이 기동이 완려되면 Docker Registry GUI 접속이 가능합니다.
4. Docker Private Registry GUI 접속
- Docker Private Registry를 위해 추가했던 Docker Imager가 저장되어 있는 것을 볼 수 있습니다.
지금까지 Docker Private Registry & GUI(Dashboard) 구축 과정에 대해 살펴보았습니다.
다음시간에는 Kubernetes Worker Node 구축과정 및 Join에 대해 살펴보겠습니다.
그럼 또봐요!
'③ 클라우드 > ⓚ Kubernetes' 카테고리의 다른 글
- Total
- Today
- Yesterday
- 마이크로서비스 아키텍처
- openstack tenant
- git
- aa
- Da
- Architecture
- SA
- wildfly
- JEUS6
- SWA
- JEUS7
- nodejs
- OpenStack
- JBoss
- jeus
- k8s
- Docker
- webtob
- 마이크로서비스
- openstack token issue
- aws
- 아키텍처
- 쿠버네티스
- TA
- MSA
- node.js
- apache
- 오픈스택
- kubernetes
- API Gateway
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |