docker

Programming/Spring

[SpringBoot] Spring Boot 2.3.8 도커 컨테이너 만들기 (BuildPack)

Spring Boot 2.3 버전부터 내장 애플리케이션을 Docker Image로 만드는 라이브러리가 포함되어 배포되었다. 내 기억에 초기에는 Jib를 사용했었던 것 같은데, 2.3.8 버전을 사용해보니 BuildPack을 사용하도록 변경되어있었다. BuildPack에 대한 내용은 아래 사이트를 참고하자. buildpacks.io/ Cloud Native Buildpacks Cloud Native Buildpacks transform your application source code into images that can run on any cloud. buildpacks.io 백문이불여일견 기존에 개발하고 있던 프로젝트(2.2.6)를 한번 2.3.8로 버전을 올리고, 내장된 BuildPack 라이브러리..

Programming/Server

[Shell Script] Docker 컨테이너별 이름과 Docker IP 리스트 출력

회사에서 개발을 하다가, 특정 서버가 유레카 서버에 잘못 등록된 걸 알게 되었다. 현재 유레카 서버에는 각 서비스들이 Docker Container IP로 등록되고 있어, 서비스 명과 Docker IP 정보로만 대상 서버를 찾아야 했다. 문제는 개발서버에 컨테이너가 40개 넘게 돌고 있었고, docker inspect로 서비스 명을 입력해서 일일이 찾기 너무 귀찮았다. 그래서 모든 구동 중인 컨테이너 서비스의 이름과 docker ip를 출력하는 간단한 스크립트를 짜 봤다. docker ps -q | xargs -n 1 docker inspect --format 'CONTAINER_NAME: {{ .Name }} ---> {{range .NetworkSettings.Networks}}{{.IPAddress..

Programming/Server

Spring Boot Application Docker Image 만들기(1) - Dockerfile

현재 내가 일하고 있는 회사의 서버팀에서는 Spring Boot 기반으로 모든 API 서버를 만들며 (목적에 따라 Node 또는 Go, C++로 작성된 서버도 있다.) Docker를 이용하여 애플리케이션을 배포하고 있다. Spring Boot 프로젝트를 어떻게 Docker Image로 만드는지 간단하게 예시와 설명을 해보겠다. 1) spring boot 프로젝트 만들기 우선 간단하게 Spring Boot 프로젝트를 만들어보자. spring boot 2.3.4 기반의 gradle 프로젝트이며, build.gradle에 사용된 라이브러리는 다음과 같다. plugins { id 'org.springframework.boot' version '2.3.4.RELEASE' id 'io.spring.dependenc..

Programming/Server

[Docker] Docker Container Deploy for Private Network

현재 회사에서는 모든 프로그램을 모두 도커 컨테이너로 배포하고 관리를 하고 있다. B2B 쪽으로 솔루션 수요가 많아서 직접 서버를 설치를 하러 다녔었는데, 대부분 외부 인터넷이 막혀있는 폐쇄망 환경이였다. 폐쇄망이기 때문에, 도커 이미지를 어디서 받아오거나 다운로드할 수 없었기에 파일로 다운로드해서 가져가고 이를 설치 서버에 옮기고 이미지를 설치한 다음에 컨테이너를 돌릴 수밖에 없다. Docker에서는 다음과 같은 명령어로 Docker 이미지를 파일로 내려받고, 도커 이미지 파일을 설치할 수 있다. 1. 현재 저장된 도커 이미지를 tar 파일로 다운로드하는 명령어 (tar 파일만 가능) docker save ${도커 이미지 이름} -o ${파일명}.tar 2. 도커 이미지 파일을 도커 이미지로 설치하는 ..

Programming/Server

[Shell Script] ECR 도커 컨테이너 이미지 명 및 태그 정보 추출

AWS ECR에 도커 이미지를 등록하면 {ID}. dkr.ecr.us-east-2.amazonaws.com/{리파지토리명} 형태로 도커 이미지가 등록된다. {ID}. dkr.ecr.us-east-2.amazonaws.com/{리파지토리명}:{tag} 형태로 ECR에서는 도커 이미지를 관리하는데, EC2에서 이미지를 받아서 컨테이너를 돌렸을 때, 도커 컨테이너 리스트를 확인하면 다음 사진과 같이 뜨게 된다. docker ps 돌아가는 컨테이너가 한 두개면 몰라도 20~30개가 넘어가는 경우 어떤 컨테이너가 어떤 이미지의 어느 태그 기반으로 돌아가고 있는지 확인하기가 어렵다. 그래서 다음과 같이 간단하게 쉘 스크립트를 짰다. #!/bin/bash docker ps | awk '{split($2,image,"..

Programming/Spring

[SpringBoot] Dockerizing a Spring Boot Application

스프링 부트 기반의 어플리케이션을 Docker Container에 올리는 방법을 설명해보겠다. Dockerizing이라는 말은 대상 어플리케이션을 Docker Image로 만들어 Docker에서 Container로 구동 가능한 형태를 만드는 것을 의미한다. 먼저 간단하게 Spring Boot Application을 만들어보자. File -> New Project -> Spring Initializer Next Dependencies -> Web -> Spring Web Click Next 간단하게 hello world를 리턴하는 Controller를 만들어본다. package com.tistory.johnmark.demo; import org.springframework.web.bind.annotatio..

JohnMark
'docker' 태그의 글 목록