이 글은 [2024 NEW] 개발자를 위한 쉬운 도커 강의를 듣고 작성한 글입니다! 모든 강의자료 이미지 출처는 해당 강사님께 있습니다. 빌드 스테이지에서는 gradle을 사용하여 빌드해 jar 파일을 만든다. 실행 스테이지에서는 자바 애플리케이션 실행 기능만 갖고있는 openjdk 이미지를 복사하고, 복사한 jar 파일을 애플리케이션으로 실행할 것이다. 컨테이너를 실행하여 컨테이너 내부에서 직접 환경을 구성해보자. 두 개의 터미널을 사용한다. (터미널1) gradle 컨테이너를 실행하고 shell에 접속한다. docker run -it --name gradle gradle:7.6.1-jdk17 bash (터미널1) app 폴더를 생성하고 해당 폴더로 이동한다. (WORKDIR /app과 같은 효과이다...
Docker
이 글은 [2024 NEW] 개발자를 위한 쉬운 도커 강의를 듣고 작성한 글입니다! 모든 강의자료 이미지 출처는 해당 강사님께 있습니다. Postgres는 nginx처럼 이미지에 소프트웨어가 포함되어 있기 때문에 별도의 설정 없이 Postgres의 이미지만 실행해도 데이터베이스를 사용할 수 있다. 기본 이미지에는 아무 데이터도 없기 때문에 초기 데이터를 작성하여 Postgres에 전달해야 한다. 실습 명령어 (cp 명령어를 사용하면 컨테이너로 특정 파일을 복사할 수 있다.) docker cp 원본 위치 복사될 위치 : 컨테이너와 호스트 머신 간 파일 복사 docker cp 컨테이너명:원본 위치 복사될 위치 : 컨테이너에서 호스트 머신으로 파일 복사 docker cp 원본위치 컨테이너명:복사위치 : 호스트..
이 글은 [2024 NEW] 개발자를 위한 쉬운 도커 강의를 듣고 작성한 글입니다! 모든 강의자료 이미지 출처는 해당 강사님께 있습니다. 컨테이너를 구성하기 전에, 컨테이너가 사용할 네트워크를 정의해야 한다. 1. leafy 애플리케이션이 사용할 네트워크를 생성한다. docker network create leafy-network 2. leafy-postgres 컨테이너를 생성하고 실행한다. docker run -d --name leafy-postgres --network leafy-network devwikirepo/leafy-postgres:1.0.0 3. leafy-postgres 컨테이너 로그를 조회한다. database is ready가 나와야 DB가 정상적으로 실행된 것이다. DB가 실행되지 ..
이 글은 [2024 NEW] 개발자를 위한 쉬운 도커 강의를 듣고 작성한 글입니다! 모든 강의자료 이미지 출처는 해당 강사님께 있습니다. 클라우드 클라우드는 보통 스토리지 저장소를 말한다. 클라우드 서비스를 사용하면 원하는 파일을 클라우드에 저장할 수 있다. 사용한 만큼만 비용을 지불한다. 업로드한 파일들은 실제로 어디에 저장될까? 각각의 클라우드 업체들은 자체적으로 서버를 가지고 있고, 여기에 모든 사용자의 파일이 물리적으로 섞여있는 상태로 저장된다. 클라우드 서비스를 사용한다는 것은 인프라적인 부분에 신경쓰지 않고 실제 서비스의 기능만 사용하겠다는 것을 의미한다. 클라우드를 사용하면 물리적인 디바이스에서 자유로워지고 필요할 때 마다 빠르게 확장할 수 있는 편리함이 있다. 클라우드 컴퓨팅은 단순히 스토..
이 글은 [2024 NEW] 개발자를 위한 쉬운 도커 강의를 듣고 작성한 글입니다! 모든 강의자료 이미지 출처는 해당 강사님께 있습니다. 멀티 스테이지 멀티 스테이지 빌드는 두 개의 베이스 이미지를 활용하는 방법이다. 보통 애플리케이션을 빌드하는 과정에서 만들어지는 파일들이 용량을 많이 차지한다. 이 파일들은 실제 애플리케이션이 실행되는 데는 사용되지 않기 때문에 빌드에 사용되는 이미지와 실행에 사용되는 이미지로 나눈다. 멀티 스테이지 빌드를 잘 사용하면 애플리케이션이 실행되는 이미지의 크기를 줄일 수 있다. 백엔드 SpringBoot Application 이미지 구성 자바로 개발된 소프트웨어는 jar나 war로 소스코드를 실행 가능한 아티팩트로 만들 수 있다. jar파일로 실행시키기 위해서는 OS에 j..
이 글은 [2024 NEW] 개발자를 위한 쉬운 도커 강의를 듣고 작성한 글입니다! 모든 강의자료 이미지 출처는 해당 강사님께 있습니다. Node.js 로 개발된 소스코드를 애플리케이션으로 빌드하는 과정 Node.js가 설치되어 있는 OS 환경을 준비하고, Node.js 로 개발된 소스코드가 필요하다. 소스코드를 애플리케이션으로 빌드(여기에서의 빌드는 이미지의 빌드가 아니라 애플리케이션의 빌드이다.)해야 하고, 그 과정에서 애플리케이션을 실행할 때 필요한 라이브러리가 존재해야 한다. 소스코드가 있는 디렉토리에서 npm install을 하면 애플리케이션이 실행되기 위한 의존성 라이브러리가 설치된다. npm start 를 하면 애플리케이션을 실행한다. 애플리케이션 빌드 애플리케이션의 빌드란, 소스코드를 실행..
이 글은 [2024 NEW] 개발자를 위한 쉬운 도커 강의를 듣고 작성한 글입니다! 모든 강의자료 이미지 출처는 해당 강사님께 있습니다. 빌드 컨텍스트 빌드 컨텍스트는 이미지를 빌드할 때 사용되는 폴더이다. 도커 데몬이 임시 컨테이너를 실행시키며 레이어들을 하나씩 추가한다. 도커 데몬에게 Dockerfile과 빌드에 사용되는 파일을 전달해 주어야 한다. 도커 데몬에게 전달해주는 폴더가 빌드 컨텍스트이다. COPY 지시어를 사용하면 빌드 컨텍스트에 있는 파일이 빌드에 사용되는 컨테이너로 복사된다. 도커 데몬은 빌드 컨텍스트에 있는 파일만 COPY 명령으로 복사할 수 있다. .이 빌드 컨텍스트를 지정한 것이다. .은 명령어를 실행하는 현재 디렉토리 경로를 의미한다. 빌드 컨텍스트는 도커 데몬이 이미지를 빌드..
이 글은 [2024 NEW] 개발자를 위한 쉬운 도커 강의를 듣고 작성한 글입니다! 모든 강의자료 이미지 출처는 해당 강사님께 있습니다. 이미지를 만드는 방법 이미지를 만드는 방법은 크게 2가지가 있다. 실행중인 컨테이너를 그 상태 그대로 이미지로 만들어내는 커밋 방식과 Dockerfile이라는 명세서를 이용해서 이미지를 만들어내는 빌드 방식이 존재한다. 대부분 빌드 방식을 사용하지만, 빌드 방식이 커밋 방식을 기반으로 동작하기 때문에 빌드 방식도 알아야 한다. 커밋을 통해 이미지 만들기(Nginx) 실습 -it 옵션을 이용하면 실행할 컨테이너와 직접 상호작용이 가능하다. cmd에 들어가는 실행 명령어에 리눅스의 쉘을 명령어로 주어야 한다. 즉, bin/bash 를 입력하면 된다. 새로 배운 명령어는 다..