DevOps/Docker 6

[Docker] Dockerfile을 이용해 SpringApplication 빌드 및 실행

Dockerfile을 이용해서 image를 생성하고, SpringWebApplication을 실행해보려고 합니다. dependency는 Spring Web만 추가하면 끝입니다. 우선 여기서 build를 진행해 줘야 jar파일이 생깁니다. 이후 cd build/libs로 이동하면, 다음과 같이 jar파일이 있음을 확인하실 수 있습니다. 추가적으로 도커로 실행하기 위해 openjdk 11 images을 다운로드 받아야 합니다. (docker pull openjdk:11-jre-slim) .jar파일이 있는 곳에 Dockerfile을 작성해야 합니다. FROM : [images name]:[tag name] ARG: build 시점에만 사용되는 변수 COPY: JAR_FILE의 변수를 app.jar로 복사 E..

DevOps/Docker 2023.09.14

[Docker] Docker-Compose를 사용하여 Springboot와 ELK stack 연동

ELK에 대해 간단하게 설명드리고 springboot와 elk stack을 연동해서 springboot 애플리케이션의 log를 수집하고, 검색 및 시각화하는 과정에 대해서 보여드리겠습니다. ELK Stack Logstash 다양한 소스(DB)의 로그 또는 트랜잭션 데이터를 수집, 집계, 파싱하여 ES에게 전달 ElasticSearch Logstash로부터 받은 데이터를 검색 및 집계하여 필요한 관심 있는 정보 획득 Kibana Elasticsearch의 빠른 검색을 통해 데이터를 시각화 및 모니터링 우선 elk stack을 연동하기 위해 elk 관련 image를 다운로드 받아야 합니다. (호환성을 위해 elk 버전 일치 시켰습니다) docker pull elasticsearch:8.3.3 docker p..

DevOps/Docker 2023.09.04

[Docker] Docker-Compose를 사용하여 Springboot, Mysql 연동

Docker-Compose.yml에 Springboot, Mysql 설정파일을 추가하여 2개의 컨테이너를 구성한 애플리케이션을 실행시켜 보려고 합니다. 우선적으로 백엔드 서버, DB 서버를 연동하는 것이 목표기 때문에 간단한 프로젝트를 가지고 왔습니다. 한 가지 주의사항은 포트 충돌을 방지하기 위해 Mysql DB 서비스를 꺼놔야 합니다. Terminal: netstat -ano | findstr 3306 (3306 포트를 사용하는 프로그램 확인) 3306 포트를 사용하고 있는 프로그램이 있다면 중지시켜야 합니다. 상품을 조회하는 로직 하나를 만들어 두었고, 다음과 같이 더미데이터를 넣어두었습니다. 이제 application.yml부터 docker-compose.yml 까지 차근차근 설명드리겠습니다. 애..

DevOps/Docker 2023.08.31

[Docker] Docker, Docker-Compose, Dockerfile

일반적으로 Docker는 단일 컨테이너 기반의 응용 프로그램을 실행하고 관리하는 도구입니다. 여러 개의 컨테이너로 구성된 복잡한 애플리케이션을 동시에 실행할 때는 Docker-compose를 이용하게 됩니다. 우선, Docker에서 애플리케이션이 구동되는 과정에 대해 상세하게 설명드리겠습니다. Docker는 컨테이너를 만들고 배포하고 구동하기 위한 기술입니다. 이제 컨테이너가 어떻게 만들어지는지 알아보기 전에 Linux OS에서 Docker를 사용하는 방법 2가지에 대해 간단히 설명드리겠습니다. VirtualBox, VMware 같은 VM위에 Linux OS를 설치하고 Docker 실행 Docker Desktop처럼 Docker를 실행하는데 필요한 Linux OS를 포함하는 패키지 설치 Container..

DevOps/Docker 2023.08.31

[Docker] Container vs VM

Container와 VM은 애플리케이션을 it 인프라 리소스로부터 독립적으로 만드는 기술입니다. 컨테이너는 애플리케이션을 구동하기 위해 필요한 설정파일, 라이브러리, 환경 설정 등이 담겨있는 패키지입니다. 애플리케이션의 이미지를 개별적인 파일 시스템 안에서 실행할 수 있습니다. 가상 머신은 하나의 Host OS에서 개별적인 운영체제를 실행할 수 있을 뿐만 아니라, 애플리케이션을 실행하는데 필요한 파일들이 포함된 가상 머신을 생성할 수 있습니다.(Host OS와 분리된 Guest OS 환경에서 개발 및 테스트 진행) 이들의 차이점을 파악하고 Container 기반 기술인 Docker의 장점을 알아보려고 합니다. VM (Virtual Machine) 가상 머신은 물리적인 서버 위에서 Hypervisor(Vi..

DevOps/Docker 2023.08.31

Docker

docker란 무엇인가? Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다. Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다. Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있습니다. AWS에서 Docker를 실행하면 개발자와 관리자가 어떠한 규모에서든 매우 안정적이며 저렴한 방식으로 애플리케이션을 구축, 제공 및 실행할 수 있습니다. https://aws.amazon.com/ko/docker/ Docker란 무엇입니까? | AWS..

DevOps/Docker 2022.10.04