일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ChatGPT
- unity
- Kibana
- build
- logstash
- 영어
- s3
- MySQL
- ssh
- Git
- Linux
- Windows
- Ai
- sample
- error
- docker
- 엘라스틱서치
- AWS
- Python
- 유니티
- nodejs
- 구글
- mariadb
- JavaScript
- 설정
- elasticsearch
- JS
- API
- MSSQL
- Today
- Total
가끔 보자, 하늘.
docker private registry에 인증 절차 추가하기 본문
"가장 빨리 만나는 Docker" 책을 참고함.
구조는 아래와 같이 잡는다.
(내부) docker-registry <---> nginx auth <---> (외부)docker daemon
기본 registry를 내려받아 실행.
sudo docker run -d --name docker-registry -v /tmp/registry:/tmp/registry registry:0.9.1
(* port는 nginx에서 redirect될거라 오픈할 필요는 없음.)
openssl로 key 제작
1. openssl genrsa -out 이름.key 2048
2. openssl req -new -key 이름.key -out.이름.csr (작성시 도메인은 registry.test.com로 맞춰야 한다.)
3. openssl x509 -req -days 365 -in 이름.csr -signkey 이름.key -out 이름.crt
이 파일을 nginx 서버와 클라에서 아래 과정을 거쳐 인증서를 시스템에 설치한다.
1. cp 이름.crt /usr/share/ca-certificates/ (ca-certificates 폴더가 없다면 "sudo apt-get install curl")
2. echo "이름.crt" | tee -a /etc/ca-certificates.conf (설치할 인증서 목록에 추가함.)
3. update-ca-certificates (ca-certificates.conf에 포함된 내용을 참고로 인증서 설치)
이후 도커 재시작 필요함.
nginx 서버는 아래와 같이 실행할 것! (이걸 실행 후 openssl 처리해야 할 걸.)
sudo docker run --name reg-auth \
-p 443:443 \
-d \
-v /rs2m/data:/data \
-v /rs2m/data/nginx.conf:/etc/nginx/nginx.conf \
-v /rs2m/data/이름.crt:/etc/이름.crt \
-v /rs2m/data/이름.key:/etc/이름.key \
-v /rs2m/data/.htpasswd:/etc/nginx/.htpasswd \
--link docker-registry:docker-registry \
nginx:1.7.9
nginx.conf는 아래와 같이 !!
worker_processes 1;
events{
worker_connections 1024;
}
http{
server{
listen 443 ssl;
server_name registry.test.com
ssl on;
ssl_certificate /etc/rs2m_reg.crt;
ssl_certificate_key /etc/rs2m_reg.key;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Authorization "";
proxy_redirect http:// https://;
client_max_body_size 0;
chunked_transfer_encoding on;
location / {
proxy_pass http://rs2m-reg:5000;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
}
'개발 이야기 > 인프라 구축 및 운영' 카테고리의 다른 글
docker private registry에 ssl 인증 없이 등록하기 (3) | 2015.02.10 |
---|---|
apache2에서 perl 설정하기 (0) | 2015.02.05 |
ubuntu apt-get source generate (699) | 2015.02.03 |
virtualbox OS 지정 리스트에서 32bit만 나옴. (0) | 2015.01.30 |
docker로 실행시 redis db 파일을 host에서 바로 볼 수 있게.. (0) | 2015.01.29 |