본문 바로가기

docker

(3)
장애? docker 컨테이너에서 block I/O가 너무 심하다 AWS ec2 인스턴스로 t3a.small에 docker container를 2개 띄웠다. elasticsearch와 kibana를 elasticsearch와 kibana를 구동 시키니 둘이 합해서 거의 80%에 달하는 메모리를 점유하고 있었다. 여기에 spring boot 이미지를 컨테이너까지 구동시키니 터미널에서 ec2 접속이 먹통이 되어서 부랴부랴 ec2 인스턴스를 종료시킬 수 밖에 없었다. 어제 장애 현상 발견하고 오늘 확인을 해 보니 아무래도 컨테이너가 점유중인 메모리의 한계에 다다라 그런 것이라 생각했다. 애초에 2gib 뿐인 인스턴스이기도 하고... 그래서 elasticsearch와 kibana만 ec2에 띄우고, spring boot는 로컬 노트북에서 컨테이너로 동작시키기로 했다. spri..
docker run command 시 컨테이너의 환경 변수에 값 전달하기 docker run 커맨드 시, 파라미터의 순서가 정말 중요하다. 환경 변수를 설정하는 -e 파라미터가 실행할 도커 이미지 앞에 와야 하는듯 하다. + 컨테이너와 연결할 상대 컨테이너의 host 주소를 줄 때, container 실행 시 정의한 이름을 사용한다 ex) docker run --name kafka-to-elasticsearch --net elastic -p 9092:9092 -p 443:443 -p 6667:6667 -e "ELASTICSEARCH_HOSTS=es01-test" kafka-twitch 참고 링크 https://stackoverflow.com/questions/50035024/passing-environment-variables-with-docker-to-spring-boot-..
spring boot 프로젝트 docker 빌드하고 실행하기 1. intellij에서 좌측 gradle 탭에서 clean을 클릭, 기존의 build 내역 삭제한다 2. 프로젝트 디렉터리에서 ./gradlew build 명령어를 실행, jar 파일을 빌드한다 3. (이건 지금은 안해도 됨) build/libs 디렉토리 아래의 *plain-jar 파일을 삭제 (근데 build.gralde 파일에 설정을 해서 더이상 생성되지 않는다) 4. docker build --build-arg JAR_FILE=build/libs/*.jar -t {태그 이름}. 명령어를 실행, docker image를 빌드한다 5. docker run {이미지 id} -p 6667:6667 -p 9092:9092 -p 443:443 명령어로, twitch irc, confluent bootstra..