docker
-
nexus3 docker image 로 private docker repository 만들기docker 2022. 2. 14. 21:57
docker 를 많이 사용하다보니 자연스럽게 개인용 private docker repository 의 필요가 생긴다. nexus3 를 이용하면 docker 환경 내에서 docker repository 를 정말 쉽게 만들 수 있다. 그 과정을 기록해 보려고 한다. 환경 nexus3 는 docker 로 띄울 것이고, ssl 인증이 필요하기 때문에 nginx 가 이 역할을 맡도록 한다. nexus 와 nginx 는 모두 docker 컨테이너로 띄울 것이다. nexus 컨테이너의 이름은 nexus, nginx 컨테이너의 이름은 nginx 로 할 것이다. 도메인명: 이 글에서는 nexus 인터페이스는 my-test-nexus.com, 그리고 새로 만들 private repository 는 my-test-docke..
-
docker 환경에서 nginx 로 jenkins ssl 적용docker 2022. 2. 9. 15:00
jenkins 를 외부에 공개해야 할 필요가 있다면 nginx 를 프록시로 사용하여 ssl 을 비롯한 각종 처리를 하게 하는 것도 괜찮은 방법이다. 그런 상황이 생겨서 한 번 적용해 보았다. 환경 CentOS 7.9 docker 20.10.12 참고: nginx 컨테이너 내부에서 jenkins 컨테이너를 호출할 수 있어야 한다. run 시 --link 옵션을 사용하여 해결하도록 한다. nginx 1.20.2 직접 설치해서 사용해도 되지만 여기서는 docker 로 실행해보려고 한다. jenkins 2.289.3 8080 포트로 열려있는 상태이다. 실습에서는 docker 로 띄웠는데, 도커를 이용하지 않아도 상관없다. jenkins 를 도커로 구동하는 것에 대해서는 https://bitgadak.tistor..
-
openssl 로 self-signed certificate 만들기linux 2021. 9. 10. 11:56
서버에서 사용할 self-signed 인증서를 만드려고 한다. X.509 extensions 보통 브라우저에서는 상관없지만, Docker api 등에서는 인증서의 v3 extension 필드를 요구하는 경우가 있다. 이 경우를 위해 extension 의 일부 필드를 사용한다. - basicConstraints: root 인증서에서 사용할 필드이다. 다른 인증서(서버용 인증서) 에 서명을 하는 경우 필요하다. - subjectAltName: 서버 인증서에서 사용할 필드이다. 도메인과 일치하는 DNS 값이 있어야 한다. 이전에는 CN(Common Name) 만 도메인과 동일하면 문제가 되지 않았는데, 도커 20.10.8 에서는 api 사용 시 이 값이 도메인과 일치하는 것을 요구해서 추가하였다. openss..
-
kubeadm 으로 local kubernetes 환경 구축kubernetes 2021. 9. 8. 14:44
kubernetes 를 제공해 주는 서비스가 많지만 때로는 직접 구축해야 할 필요가 있다. 그런데 막상 설치해보려니 신경 쓸 것도 많고, 선택을 해야 하는 것이 많아서 쉽지가 않았다. 과정을 기록해 보려고 한다. 선택1 - 컨테이너 런타임: docker kubernetes 는 요구하는 스펙이 맞으면 굳이 특정 컨테이너 런타임을 사용할 필요는 없다. 다만 docker 가 가장 익숙하기 때문에 이를 사용하도록 하였다. 참고: 컨테이너 런타임 선택2 - 설치 도구: kubeadm kubernetes 환경 설치를 위해 사용할 수 있는 도구들이 있다: kubeadm, kOps, kubespray 등. 이 중 공식 사이트에 가장 설명이 잘 되어 있는 것은 kubeadm 인 것 같아서 이를 선택했다. 선택3 - 네트..
-
DooD (docker-outside-of-docker) 를 통해 Jenkins 컨테이너에서 docker 사용하기docker 2021. 9. 6. 20:55
Jenkins 를 docker 를 통해 컨테이너로 띄우는 것이 아주 편해져서 이제는 docker 로 운영하고 있다. 그런데, Jenkins 상에서 Docker 관련 작업이 필요하여 단순하게 컨테이너 내부에서 설치를 하려고 했는데, 내부에서 docker 를 띄우는 것과 관련하여 이것저것 이슈가 있다고 한다. (https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/) 관련해서 좀 더 찾아보았는데, 내부에서 Docker 를 전부 띄우지 말고 외부(호스트 환경) 의 Docker 와 소켓을 공유하여 사용하는 것이 그나만 나은 방법이라고 한다. 이를 기존의 방식인 Docker-in-docker 와 대비하여 Docker-outside-of-..