티스토리 뷰
Docker Private 구축하기
Docker는 Red hat 계열의 CentOS의 경우 yum, Ubuntu 계열의 경우 apt-get으로 손쉽게 설치 할 수 있습니다.
다만 내부 폐쇄망 Private Zone에 Docker를 설치해야 하는 경우에는 Dependency 이슈로 인해 어떻게 설치해야 할지 걱정인 경우가 있는데요.
지금부터 살펴 볼 내용은 이러한 폐쇄망에 Docker를 설치할 경우 어떻게 해야하는지 알아보도록 하겠습니다.
테스트 환경
OS : CentOS 7
실습 과정
1) CentOS Mirrors 확인
Docker를 설치하기 위한 RPM 저장소의 모음인 아래 미러 사이트를 먼저 확인합니다.
https://www.centos.org/download/mirrors/
위 사이트에 접속하면 CentOS에서 사용 가능한 다양한 미러 리스트를 확인할 수 있습니다.
그 중 Asia -> South Korea에서 제공하는 사이트는 다음과 같습니다.
위와 같이
AoneNetworks Co.,Ltd.
KAIST
Kakao Corp.
Moack Data Center
NAVER Business Platform
의 사이트가 한국에서 제공되며, 동일 존에 있기 때문에 다운로드를 받는 속도에 차이가 있습니다.
# 물론 타 미러 사이트를 사용해도 다운로드는 받을 수 있습니다.
2) private docker repository download
# RPM 파일을 다운로드 하기 위한 인터넷 접속이 가능한 환경에서 해당 작업을 수행합니다.
위 미러 사이트에서 받을 수 있는 방법은 크게 두가지가 있습니다.
a) wget을 활용한 다운로드 (wget --recursive --no-parent http://ftp.kaist.ac.kr/CentOS/7/extras/x86_64/)
wget을 사용할 경우 http를 지원하는 위 5개 사이트 모두에서 다운로드 받을 수 있습니다.
--recursive 옵션으로 하위 디렉토리까지 다운로드 받을 수 있으며, --no-parent 옵션으로 지정한 경로 상위의 파일은 다운로드 받지 않도록 지정합니다.
전체를 모두 다운로드 받을 경우 어마어마한 사이즈를 다운로드 받아야 하기 때문에 원하는 경로를 URL에 지정하는 것이 중요합니다.
# 본 테스트는 South Korea Zone의 kaist 미러사이트를 사용하여 테스트 하였습니다.
[root@nrson kaistRepoRsync]# wget --recursive --no-parent http://ftp.kaist.ac.kr/CentOS/7/extras/x86_64/
--2019-05-21 14:55:03-- http://ftp.kaist.ac.kr/CentOS/7/extras/x86_64/
Resolving ftp.kaist.ac.kr (ftp.kaist.ac.kr)... 103.22.220.133
Connecting to ftp.kaist.ac.kr (ftp.kaist.ac.kr)|103.22.220.133|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1858 (1.8K) [text/html]
Saving to: ‘ftp.kaist.ac.kr/CentOS/7/extras/x86_64/index.html’
100%[=======================================================>] 1,858 --.-K/s in 0s
2019-05-21 14:55:04 (246 MB/s) - ‘ftp.kaist.ac.kr/CentOS/7/extras/x86_64/index.html’ saved [1858/1858]
Loading robots.txt; please ignore errors.
--2019-05-21 14:55:04-- http://ftp.kaist.ac.kr/robots.txt
Reusing existing connection to ftp.kaist.ac.kr:80.
HTTP request sent, awaiting response... 200 OK
Length: 72 [text/plain]
Saving to: ‘ftp.kaist.ac.kr/robots.txt’
100%[=======================================================>] 72 --.-K/s in 0s
2019-05-21 14:55:04 (13.5 MB/s) - ‘ftp.kaist.ac.kr/robots.txt’ saved [72/72]
--2019-05-21 14:55:04-- http://ftp.kaist.ac.kr/CentOS/7/extras/x86_64/Packages/
Reusing existing connection to ftp.kaist.ac.kr:80.
HTTP request sent, awaiting response... 200 OK
Length: 104487 (102K) [text/html]
Saving to: ‘ftp.kaist.ac.kr/CentOS/7/extras/x86_64/Packages/index.html’
100%[=======================================================>] 104,487 --.-K/s in 0.04s
2019-05-21 14:55:04 (2.68 MB/s) - ‘ftp.kaist.ac.kr/CentOS/7/extras/x86_64/Packages/index.html’ saved [104487/104487]
--2019-05-21 14:55:04-- http://ftp.kaist.ac.kr/CentOS/7/extras/x86_64/drpms/
Reusing existing connection to ftp.kaist.ac.kr:80.
HTTP request sent, awaiting response... 200 OK
Length: 223335 (218K) [text/html]
Saving to: ‘ftp.kaist.ac.kr/CentOS/7/extras/x86_64/drpms/index.html’
100%[=======================================================>] 223,335 --.-K/s in 0.03s
...
...
b) rsync를 활용한 다운로드 (rsync -vtr --progress rsync://ftp.kaist.ac.kr/CentOS/7/extras/x86_64/ /root/kaistRepoRsync/)
rsync를 사용할 경우 rsync를 지원하는 region에서만 사용이 가능합니다.
한국에서는 kaist에서만 rsync를 지원합니다.
[root@nrson kaistRepoRsync]# rsync -vtr --progress rsync://ftp.kaist.ac.kr/CentOS/7/extras/x86_64/ /root/kaistRepoRsync/
Welcome to KAIST File Archive, ftp.kaist.ac.kr!
(AKA ftp.kr.debian.org, kr.archive.ubuntu.com, ftp2.kr.vim.org,
ftp2.kr.freebsd.org)
We provide mirrors of open source softwares, e.g. Debian, *BSDs,
Mozilla, Apache, etc. and publically available files and software.
Various access methods are available: FTP, HTTP, Rsync.
This system is running at SPARCS Room, KAIST, Daejeon, Korea, Asia.
We are operating 18TiB RAID-6 storage on Dell PowerEdge R510
(Xeon E5506, 6GiB RAM, 2 x 1Gbps) server. KAIST sponsored hardware and
network connectivity. SPARCS operates the whole service.
Use entirely at your own risk -- no warranty is expressed or implied.
* None of the service providers in any way whatsoever can be
responsible for any problems that might be caused by this service.
* Every access to this service is recorded and can be used and
published for the purpose of improving the quality of the service.
* We may limit any accesses without forewarning that may prevent
operators from maintaining reasonable quality of the service.
Contact ftp@ftp.kaist.ac.kr for any problem or suggestion.
For more information, visit: http://ftp.kaist.ac.kr/
receiving incremental file list
./
Packages/
Packages/WALinuxAgent-2.2.18-2.el7.noarch.rpm
420,296 100% 3.49MB/s 0:00:00 (xfr#1, to-chk=1220/1225)
Packages/WALinuxAgent-2.2.26-2.el7.noarch.rpm
438,272 100% 2.12MB/s 0:00:00 (xfr#2, to-chk=1219/1225)
Packages/WALinuxAgent-2.2.32-1.el7.noarch.rpm
379,636 100% 1.33MB/s 0:00:00 (xfr#3, to-chk=1218/1225)
Packages/ansible-2.4.2.0-2.el7.noarch.rpm
7,968,876 100% 3.89MB/s 0:00:01 (xfr#4, to-chk=1217/1225)
Packages/ansible-doc-2.4.2.0-2.el7.noarch.rpm
781,244 100% 676.96kB/s 0:00:01 (xfr#5, to-chk=1216/1225)
Packages/atomic-1.22.1-25.git5a342e3.el7.centos.x86_64.rpm
906,364 100% 2.84MB/s 0:00:00 (xfr#6, to-chk=1215/1225)
Packages/atomic-1.22.1-26.gitb507039.el7.centos.x86_64.rpm
938,112 100% 1.81MB/s 0:00:00 (xfr#7, to-chk=1214/1225)
Packages/atomic-registries-1.22.1-25.git5a342e3.el7.centos.x86_64.rpm
35,780 100% 68.92kB/s 0:00:00 (xfr#8, to-chk=1213/1225)
Packages/atomic-registries-1.22.1-26.gitb507039.el7.centos.x86_64.rpm
35,968 100% 68.60kB/s 0:00:00 (xfr#9, to-chk=1212/1225)
Packages/buildah-1.2-2.gitbe87762.el7.x86_64.rpm
4,054,780 100% 2.85MB/s 0:00:01 (xfr#10, to-chk=1211/1225)
Packages/buildah-1.4-3.gitc8ed967.el7.x86_64.rpm
4,293,572 100% 2.48MB/s 0:00:01 (xfr#11, to-chk=1210/1225)
Packages/buildah-1.5-2.gite94b4f9.el7.centos.x86_64.rpm
4,346,252 100% 2.78MB/s 0:00:01 (xfr#12, to-chk=1209/1225)
Packages/buildah-1.7.1-2.git93747b1.el7.centos.x86_64.rpm
...
...
c) 다운로드가 완료된 파일을 확인합니다.
위와 같이 두가지 방법으로 mirror 사이트의 해당 경로 하위에 위치한 파일이 정상적으로 다운로드 되었는지 확인합니다.
[root@nrson x86_64]# ls -la
합계 132
drwxr-xr-x. 5 root root 69 5월 20 16:28 .
drwxr-xr-x. 3 root root 20 5월 20 16:28 ..
drwxr-xr-x. 2 root root 28672 5월 20 16:31 Packages
drwxr-xr-x. 2 root root 73728 5월 20 16:38 drpms
-rw-r--r--. 1 root root 1858 5월 20 16:28 index.html
drwxr-xr-x. 2 root root 4096 5월 20 16:38 repodata
[root@nrson x86_64]#
위와 같이 실제 해당 URL에 있는 파일이 정상적으로 다운로드 되었는지 여부를 검증합니다.
3) docker install file copy
다음으로 다운로드 받은 파일을 내부망으로 복사합니다.
[root@newnrson kaistRepo] scp -r ./x86_64/ root@xxx.xxx.xxx.xxx:/root/kaistRepo
복사하는 방법이야 다양하게 활용할 수 있습니다.
scp, usb, mount, ftp 등 다운로드 받은 파일을 내부망으로 이동합니다.
4) kaistRepo를 yum repository에 등록
# 지금부터는 내부망 / 폐쇄망의 서버에서 작업을 진행합니다.
로컬에 복사된 파일을 yum repository에 등록합니다.
[root@newnrson yum.repos.d]# cat kaist.repo
[kaist-repo]
name=CentOS Kaist Repository
baseurl=file:///root/kaistRepo
enabled=1
gpgcheck=0
[root@newnrson yum.repos.d]#
로컬에 복사 된 rpm 파일 리스트를 yum repository에 등록하여 이후 설치에 해당 repository를 활용할 수 있도록 설정합니다.
yum clean all & yum repolist all로 추가한 kaist.repo local repository가 정상 등록되었는지 확인합니다.
[root@newnrson ~]# yum clean all
Loaded plugins: langpacks
Cleaning repos: centos-repo local
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
[root@newnrson ~]# yum repolist all
Loaded plugins: langpacks
centos-repo | 3.6 kB 00:00:00
kaist-repo | 3.4 kB 00:00:00
local | 4.1 kB 00:00:00
(1/5): centos-repo/group_gz | 166 kB 00:00:00
(2/5): kaist-repo/primary_db | 201 kB 00:00:00
(3/5): centos-repo/primary_db | 6.0 MB 00:00:00
(4/5): local/group_gz | 137 kB 00:00:00
(5/5): local/primary_db | 4.0 MB 00:00:00
repo id repo name status
centos-repo CenoOS Repository enabled: 10,019
kaist-repo CentOS Kaist Repository enabled: 413
local rhel7 enabled: 4,986
repolist: 15,418
[root@newnrson ~]#
5) docker install
여기까지 작업이 완료되면 Package Manager인 yum을 통해 동일하게 docker를 설치할 수 있습니다.
ex) yum install -y docker
# 참조
a) 설치 된 rpm package 확인
[root@newnrson ~]# rpm -qa | grep docker
docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64
docker-distribution-2.6.2-2.git48294d9.el7.x86_64
docker-common-1.13.1-96.gitb2f74b2.el7.centos.x86_64
docker-client-1.13.1-96.gitb2f74b2.el7.centos.x86_64
[root@newnrson ~]# rpm -qs docker
정상(normal) /etc/docker
정상(normal) /etc/docker/certs.d
정상(normal) /etc/docker/certs.d/redhat.com
정상(normal) /etc/docker/certs.d/redhat.com/redhat-ca.crt
정상(normal) /etc/docker/certs.d/redhat.io
정상(normal) /etc/docker/certs.d/redhat.io/redhat-ca.crt
정상(normal) /etc/docker/certs.d/registry.access.redhat.com
정상(normal) /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt
정상(normal) /etc/docker/daemon.json
정상(normal) /etc/docker/seccomp.json
정상(normal) /etc/sysconfig/docker-network
정상(normal) /etc/sysconfig/docker-storage
정상(normal) /etc/sysconfig/docker-storage-setup
정상(normal) /usr/bin/docker-containerd-current
...
...
b) private docker-registry
이후 포스팅 할 docker private registry의 경우 docker-distribution이 docker-registry 대체하도록 변경되었습니다.
이에 Service로 등록해야 할 대상은 docker-registry가 아닌 docker-distribution임을 유의합니다.
이후 포스팅에서 자세히 다루도록 하겠습니다.
c) docker login을 위한 계정 생성
마찬가지로 docker private registry에 접속하기 위한 계정 생성 방법은 이후 포스팅에서 확인하도록 하겠습니다.
[root@newnrson ~]# htpasswd -c registry.password cnsUser
New password:
Re-type new password:
Adding password for user cnsUser
[root@newnrson ~]#
최근 needs가 늘어나고 있는 추세인 Private 구축 사례로 docker를 외부 저장소로부터 받아와 설치가 어려운 경우 유용하게 활용하시기 바랍니다.
'③ 클라우드 > ⓓ Docker' 카테고리의 다른 글
[Docker Performance Monitoring] docker stats (0) | 2019.08.26 |
---|---|
[Docker] 기동중인 도커 컨테이너에 파일 복사 및 스냅샷 생성 (0) | 2019.07.19 |
[Docker] Docker Image 관리 가이드 (0) | 2018.10.26 |
[Docker Issue] 2. Dockerfile로 Image 생성 시 오류 (add failed stat /var/lib/docker/tmp/ no such file or directory) (0) | 2018.10.15 |
[Docker Issue] 1. docker login Issue & docker repository 추가 (0) | 2018.10.15 |
- Total
- Today
- Yesterday
- openstack tenant
- aws
- webtob
- wildfly
- 아키텍처
- k8s
- 오픈스택
- 마이크로서비스 아키텍처
- JBoss
- Da
- OpenStack
- Architecture
- aa
- SA
- apache
- 마이크로서비스
- openstack token issue
- Docker
- JEUS7
- nodejs
- API Gateway
- jeus
- node.js
- kubernetes
- git
- TA
- 쿠버네티스
- JEUS6
- SWA
- MSA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |