
Private Registry 매번 Docker 이미지를 만들기 위해서 Dockerfile을 빌드하는 건 너무 오래걸린다. 때문에, 만들어 놓은 Docker 이미지를 docker registry에 저장(push)해놓고 다운로드(pull)해서 사용할 일이 생긴다. 그런데 내가 담당하고 있는 프로젝트가 외부로 노출되지 않게(private하게) 사용해야 할 경우 어떻게 해야할까? 기본적으로 사용되는 Docker Registry인 Docker Hub는, 아쉽게도 public Registry만 Free tier로 제공한다. 또한, Docker Hub에서 제공하고 있는 저장소는 로컬에 저장하는게 아니라 외부 저장소기 때문에 무작정 사용하기에는 너무 불안하다. 이러한 문제를 해결하기 위해 Private Contain..

Dockerfile을 작성할 때, 이미지를 빠르게 생성해보고 싶어 정작 Docker 홈페이지를 꼼꼼하게 보지 않았었다. 홈페이지에서 제공하는 내용은 간단한게 참고만 하고 넘어갔었다. 아래 페이지에서 Get started 정도만 확인하고 구글링을 하면서 Dockerfile을 작성했다. 그런데 잘 찾아보면, Docker 홈페이지에서는 Dockerfile을 "잘" 만드는 방법을 가이드해주고 있었다. Dockerfile 작성 모범 사례(Best practices for writing Dockerfiles) 페이지인데, 이 페이지에서 가이드해 주는 몇 가지만 짚어보고 넘어가려고 한다. 이 내용이 나오기 전에는 일반적인 Docker를 빌드하는데 유의해야 하는 내용들이 나온다. 예를 들어, 임시 컨테이너를 사용해라,..

정확히는 AWS EC2에서 뿐만아니라 Tomcat을 베이스 이미지로 생성한 Docker 컨테이너에 war 파일을 배포할 때 발생하는 문제이다. 배포는 에러없이 진행된다. 그러나 서버로 요청을 날리면 404가 발생한다. localhost_access_log에는 요청이 제대로 들어오는 것이 확인 됐고, contextpath도 정상적으로 지정했는데도 말이다. 해결방안 프로젝트 파일을 jar로 묶어서 배포하면된다. 문제가 저것 뿐이고, 해결방안이 저것 뿐이면 따로 포스팅하진 않았을 것 같다. 왜 404가 나는지 문제를 알아보면, war파일로 배포를 진행하게 되면 별도의 web.xml이 생성되지 않는다. 그래서 web.xml이 하는 대표적인 역할인 URL 경로와 해당 경로의 요청을 처리하는 서블릿 사이의 매핑을 ..

앞서 언급한 적이 있지만, 내가 담당하고 있는 서비스는 CI/CD가 없다. 하지만, 관리해야할 서버군은 요청을 앞단에서 받아줄 Apache Httpd 서버 6개, WAS가 있는 API 서버 6개, 실시간 위치정보를 다루는 WAS 3개, 배치서버 4개다. 한번 배포하는데만 시간 단위로 걸리고, 배포용 WAR파일을 수동으로 올리는데만도 몇 분씩 걸린다... 자사 서비스가 아니다보니 요청하기 어려 운점은 이해하겠지만 솔직히 말이 안된다고 생각한다. 심지어 TC도 따로 없고 데일리 빌드도 하지않으며, 프로젝트에 참여한 개발자가 개별 commit을 하고, pull request로 관리하지 않는다. 불만만 토로하게 되었는데 이러한 사항들 때문에, 다른 서비스는 어떻게 배포 과정을 갖는지 공부하게되는 계기가 됐고, ..

앞선 포스팅에서 Docker와 VM 구동 방식의 차이를 알아보았다. 여기서 Docker가 "왜 등장하게 됐는지"에 대한 설명은 마무리하고, "어떻게 사용할 것인가"에 대해 초점을 맞추어 정리해보려고 한다. 우선, Docker 웹 사이트에선 Docker를 아래와 같이 설명했다. Docker는 애플리케이션을 개발, 배송 및 실행하기 위한 개방형 플랫폼입니다. Docker를 사용하면 애플리케이션을 인프라에서 분리할 수 있으므로 소프트웨어를 빠르게 제공할 수 있습니다. Docker를 사용하면 애플리케이션을 관리하는 것과 동일한 방식으로 인프라를 관리할 수 있습니다. 코드를 신속하게 배송, 테스트 및 배포하기 위한 Docker 방법론을 활용하면 코드 작성과 프로덕션 환경에서 실행하는 사이의 지연을 크게 줄일 수 ..

학부생 시절에는 Windows 환경에서 Linux를 사용하기 위해서 VM ware, Virtual Box와 같은 가상화 소프트웨어들을 사용해서 가상 머신(Virtual Machine)을 구동시켜 사용했었다. 가상 머신의 단점은... 너무 느렸다. 설치부터 부팅까지의 소요 시간이 꽤나 컸다. 무슨 이유에서인지 구동이안돼 재설치라도 하는 날에는 정말 끔찍했었다. 때문에 근래엔 리눅스 환경에서 개발할 일이 있으면, Docker를 주로 사용하고 있다. Docker Hub와 같은 Docker Registry에 저장해 놓으면, 어디서든 같은 환경의 리눅스를 손쉽게 사용할 수 있다. 같은 가상화 환경을 제공하는데 VM과 Docker가 왜이리 차이가 나는지 알고 싶어 정리해봤다. 가상화는 데스크탑 가상화, OS 가상화..
- Total
- Today
- Yesterday
- Spring
- 오블완
- Kotlin
- elasticsearch
- cache
- 후쿠오카
- 스프링부트
- OpenAI
- object
- terraform
- springboot
- openAI API
- docker
- AWS EC2
- Elastic cloud
- EKS
- Log
- GIT
- MySQL
- JWT
- CloudFront
- serverless
- AWS
- java
- S3
- lambda
- 람다
- AOP
- ChatGPT
- 티스토리챌린지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |