본문 바로가기

전체 글

4-1 도커 컨네이너 만들어보기 polyglot programming:다양한 언어를 사용하여 프로그래밍 하는 것! 1.컨테이너 어떻게 만들어요 ? DockerFile이 뭐죠 ? DockerFile: 컨테이너 이미지를 생성할 수 있는 고유의 지시어를 가짐 Dockerfile.txt 예) FROM node:12 COPY hello.js / CMD ["node","/hello.js"] docker build -t imagename:tag . Dockerfile 문법: #: 설명 /주석이라고 생각하면 된다 FROM: 컨테이너의 BASE IMAGE(운영환경) MAINTAINER:이미지를 생성한 사람의 이름 및 정보 LABEL: 컨테이너이미지에 컨테이너의 정보를 저장 RUN: 컨테이너 빌드를 위해 base image에서 실행할 commands C.. 더보기
Docker 3-2 도커 컨테이너 살펴보기 실습편 docker 버젼 확인하는방법- sudo docker version ubuntu@ip-내아이피야$sudo docker vers Client: Docker Engine - Community Version: 23.0.3 API version: 1.42 Go version: go1.19.7 Git commit: 3e7cbfd Built: Tue Apr 4 22:05:48 2023 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 23.0.3 API version: 1.42 (minimum version 1.12) Go version: go1.19.7 Git commit: 59118bf Built: Tu.. 더보기
Docker 3-1 도커 컨테이너 살펴보기 컨테이너와 컨테이너 이미지의 구조 컨테이너:하나의 application cpu,memory,network,disk 하드웨어리소스를 각각 독립적으로 가지고있다. 이 이미지로 생각을 해보자면, Docker Host 위에 여러개의 Guest docker 를 올리고 각각 독립적으로 실행할 수 있다. Cotainer Image는 어떤구조를 가지고 있을까 Node js로 예를 들어보자 ? 하나의 어플리케이션이 잘 실행될 수 있도록 여러개의 image layer로 구성이 되어있다. 어떤 이미지인가에 따라 image layer 의 갯수는 달라질 수 있다. Cotainer Image와 Container 의 차이는? Container image는 하드디스크에 각각의 레이어별로 파일형태로 저장되어 있음. Conainer:c.. 더보기
Flyway란 무엇이고 어떻게 사용하는 것 일까 ? Flyway Flyway는 DB의 형상관리를 목적으로 하는 툴이다. 1. DB Migration 필요한 것일까? 배포를 했다고 가정을 해보자, 유지 보수 중 스키마 구조가 바뀌게 된다면 그 상황에서 어떻게 대처할 것인가 ? 예제를 통해 알아보겠습니다. 현재 유지보수 중인 Member Entity가 다음과 같다고 가정하자 package com.example.dockercomposetest.entity; import lombok.Getter; import lombok.Setter; import javax.persistence.*; @Entity @Getter @Setter public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY.. 더보기
Docker와 springboot,mysql Docker Compose로 올려서 사용하기 🔎 Springboot 프로젝트 설정 도커 환경에서 DB를 사용하는 애플리케이션 구동을 목표로 하므로 최대한 간단하게 프로젝트를 구성해볼께요. springboot 프로젝트는 사용자에게 글을 입력받으면 DB에 저장하고 목록을 확인할 수 있는 아주 간단한 구조입니다. 🔎 springboot 설정파일 (application.yml) datasource의 url 부분에서 호스트 부분 설정을 잘 해주셔야 합니다. 현재 호스트가 db-mysql로 되어 있는데 이 호스트명은 앞으로 도커환경에서 mysql이 구동되는 컨테이너의 이름입니다. spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://db-mysql:3306/mydb?.. 더보기
Container Volume 이란 ? Container Volumn이란 ? Container image는 Read ONLY 속성을 가지고 있다.(수정 불가 !) 이러한 image를 run 하게 되면 , 하나의 process 가 된다. Container Image 는 Read ONLY이지만,Run 된 Container에는 rw(read & write) layer 가 생성 모든 데이터는 rw layer 에 쌓이게 된다. 하지만 ro와 rw는 하나인 것 처럼 보여주는데 이를 Union File System라고 한다. docker rm으로 도커 컨테이너를 삭제했다고 해보자. 이럴 경우, ro & rw layer모두 사라지게 된다. ( 따라서 rw에 저장되었던 모든 데이터도 함께 사라지게 된다 ) 이러한 상황을 막기 위해, 영구적으로 보존하기 위한 .. 더보기
Container Monitoring Tool docker stat 컨테이너의 runtime 통계 확인 ex) docker stats [OPTIONS][Container...] docker event Docker HOST의 실시간 event 정보 수집 후 출력 docker events -f container= docker image -f container= cAdvisor (구글에서 만든 docker 모니터링 툴) https://github.com/google/cadvisor 더보기
Docker 리소스 관리 Container 하드웨어 리소스 제한 Container 기본적으로 호스트 HW 사용 제한이 없다(따로 걸어 놓지 않는 이상) Docker command 를 통해 제한할 수 있는 리소스 CPU Memory Disk I/O docker run --help 이를 통해 다양한 리소스 제한 명령어를 확인할 수 있다. 1. Memory 리소스 제한 옵션의미 –memory, -m 최대 메모리양 지정 –memory-swap 스왑 메모리 영역에 대한 설정. “메모리+스왑” 합친 값 ( 생략 시, 메모리의 2배 만큼 ) –memory-reservation –memory 값 보다 적은 값으로 구성하는 soft 제한 설정 –oom-kill-disable OOM killer가 프로세스를 kill하지 못하도록 보호 docker.. 더보기