DevOps/DOCKER 7

[Docker] 컨테이너란 무엇일까?

Docker 아이콘은 고래 하나가 여러 개의 컨테이너를 싣고 있는 모습이다. 여기서, 고래는 '컴퓨터'이고 컨테이너는 '격리된 프로세스'이다. 도커가 혁명적인 이유는 컨테이너라는 환경분리를 리눅스 기술로만 이루어 냈다는 점이다. 도커가 존재하기 전에는 VM ( VirtualMachine ) 기술을 활용하였다. VM은 Hypervisor를 활용하여, 물리적으로 한 대의 OS 위에 가상의 Guest OS 여러 대를 실행 및 관리하는 구조이다. 무거운 커널이 여러 대가 동작하니, 그 위에서 동작하는 APP의 성능은 당연히 떨어질 수 밖에 없다. 도커는 커널의 존재를 하나로 줄였다. 커널이 하나만 존재할 수 있는 이유는 namespace와 cgroups를 활용하여 리소스를 독립적으로 분리하였기 때문이다. nam..

DevOps/DOCKER 2024.02.24

[Docker] Nginx - React - Nodejs - Mysql 연동 실습하기

이번 포스팅에서 구현할 시스템의 구성도는 위와 같다. Ngnix, React, NodeJS, MySQL을 도커 컨테이너로 띄어 간단한 시스템을 구현해보겠다. Docker 관련 포스팅이니 React, Nodejs, MySQL 관련 소스는 블로그가 아닌 깃허브에 남겨놓으니 관심있는 분은 참고하기를 바란다. GitHub - mgKang3646/Docker-Fullstack-App Contribute to mgKang3646/Docker-Fullstack-App development by creating an account on GitHub. github.com Ngnix ( 리버스 프록시 서버 ) 클라이언트(User)가 웹페이지를 요청하면 FrontEnd 서비스에서 제공 가능하지만, API로 데이터를 요구한다..

DevOps/DOCKER 2023.10.05

[Docker] MultiStage란?

Dockerfile ##### Build Stage ##### # 종속성 추출 # 빌드 작업을 위한 JDK 베이스이미지 FROM openjdk:11-jdk-slim as build # 워킹 디렉토리 설정 WORKDIR /workspace/app # 빌드에 필요한 Gradle 소스 복사 COPY gradle gradle COPY build.gradle settings.gradle gradlew ./ COPY src src # 빌드 진행 RUN ./gradlew bootJar # 빌드 진행 RUN mkdir -p build/libs/dependency && (cd build/libs/dependency; jar -xf ../*.jar) # 종속성 추출 ##### Run Stage ##### # 실행 작업을 ..

DevOps/DOCKER 2023.09.22

[Docker] DockerHub에 이미지 올리고 다른 환경에서 실행하기

[Docker] Docker Compose로 SpringBoot와 H2 연동 및 실행하기 [Docker] 실습용 SpringBoot 프로젝트 만들기 1) JDK 11 설치 - JDK11 설치 ( https://www.oracle.com/kr/java/technologies/javase/jdk11-archive-downloads.html ) - 터미널에서 설치 확인 2) InteliJ 설치 - InteliJ 설치 페이지 ( https:// lordofkangs.tistory.com 지난 포스팅에서 SpringBoot Dockerfile을 이용하여 도커 이미지를 만들어 보았다. H2 이미지는 도커허브에서 가져왔지만 SpringBoot 프로젝트 이미지는 로컬환경의 Dockerfile을 빌드해서 만들어야 했다...

DevOps/DOCKER 2023.09.20

[Docker] Docker Compose로 SpringBoot와 H2 연동 및 실행하기

[Docker] 실습용 SpringBoot 프로젝트 만들기 1) JDK 11 설치 - JDK11 설치 ( https://www.oracle.com/kr/java/technologies/javase/jdk11-archive-downloads.html ) - 터미널에서 설치 확인 2) InteliJ 설치 - InteliJ 설치 페이지 ( https://www.jetbrains.com/idea/download/?section=windows#sect lordofkangs.tistory.com 지난 포스팅에서 ORM을 JPA로 하여 H2 DB와 연동하는 간단한 SpringBoot App을 만들어 보았다. 그럼 SpringBoot App과 h2 DB를 Docker Compose를 활용하여 컨테이너에 띄어보자. Do..

DevOps/DOCKER 2023.09.18

[Docker] 실습용 SpringBoot 프로젝트 만들기

1) JDK 11 설치 - JDK11 설치 ( JDK11 설치경로 ) - 터미널에서 설치 확인 2) InteliJ 설치 - InteliJ 설치 페이지 ( IntelliJ 설치경로 ) 3) H2 DB 설치 - 1.4.200 버전을 설치 ( H2 DB 설치경로 ) - 설치 후 설정 과정 ( 인프런 스프링 입문 강의 - 섹션6 H2 데이터베이스 설치 참고 ) 4) IntelliJ에 SpringBoot 프로젝트 띄우기 - hellospring.zip 설치 후 압축 풀기 - 인텔리제이 File 탭 > open > hellospring 디렉토리 이동 > build.gradle 선택하여 프로젝트 열기 5) 프로젝트 실행하기 - Main 클래스로 이동 hellospring > src > main > java > hel..

DevOps/DOCKER 2023.09.18

[DOCKER] 우분투 리눅스에 도커엔진(Docker CE) 설치하기

우분투 버전 : Ubuntu 20.04.3 LTS 도커 버전 : Docker verision 20.10.21 1. 도커 설치하기 # 도커 공식 GPG 키 가져와 등록하기 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 도커 공식 Repository 등록하기 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 패키지 update하기 sudo apt-get update # Docker CE 패키지 설치하기 sudo apt-get install docker-ce # Doc..

DevOps/DOCKER 2022.11.19