DevOps 5

Docker 데몬없이 Jib로 Docker 이미지 빌드하기

백엔드 애플리케이션을 배포할 때 주로 Dockerfile를 작성하고 docker build로 이미지를 생성하는 방식이 주로 사용된다.하지만 CI 환경에서 Dockerfile 기반 빌드는 몇 가지 구조적인 한계를 가지고 있다. 이러한 문제를 해결하기 위해 이번 프로젝트에서는 Google Jib을 사용해 Docker 데몬 없이 이미지를 빌드하는 방식을 선택했다. Dockerfile 기반 빌드의 한계1. Docker 데몬 의존성Dockerfile 방식은 기본적으로 Docker 데몬이 반드시 필요하다. 즉, CI 서버에도 Docker가 설치돼 있어야 하고, 내부적으로는 Docker 데몬에 접근할 수 있는 권한이 필요하다.문제는 Docker 데몬 특성상대부분 root 권한을 요구CI 환경에서 보안 리스크 증가라는..

DevOps/DevOps 2026.01.23

[Docker] 3. image 만들기

Dockerfile 명령어명령어설명FROM베이스 이미지를 설정하는 명령어(: 형식으로 설정)MAINTAINER관리자의 정보를 기재하는 부분, 빌드에 영향을 주지 않기 때문에 생략하는 경우도 있다.COPY파일이나 디렉토리를 이미지로 복사하는 명령어소스를 복사할 때 많이 사용된다.이미지 파일이 위치할 경로는 절대 경로 방식으로 설정해야 한다.URL을 사용할 수 없고 압축이 해제되지 않고 그대로 복사된다.ADD파일이나 디렉토리를 이미지로 복사하는 명령어이다.COPY 명령어와 비슷하지만 ADD는 상대 경로를 사용할 수 있고, URL을 사용할 수 있다.또한 압축 파일이 있으면 압축 파일을 풀어서 추가한다.RUN이미지를 만드는 과정에서 이미지에서 사용해야 하는 명령어를 실행해주는 명령어CMD컨테이너가 실행되었을 때..

DevOps/Docker 2024.11.25

[Docker] 2. Docker 명령어

Docker 설치 후 Docker Hub에 가입을 한다.아래 명령어로 Docker가 설치되었는지 확인할 수 있다.docker versionDocker 관련 명령어1. Docker 도움말docker help2. Docker 명령어 상세 사용방법 확인하기docker search --helpimage 관련 명령어1. 원격 저장소에서 image 다운로드하기# 축약형docker pull # 버전을 붙이지 않으면 가장 최신의 것이 다운로드 된다.docker pull hello-world # 원격 저장소에서 hello-world라는 이름의 docker image를 다운# 풀명령어docker image pull # 버전을 붙이지 않으면 가장 최신의 것이 다운로드 된다.docker image pull hello-w..

DevOps/Docker 2024.11.20

[Docker] 1. Docker 개요

Docker란?리눅스 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트로,컨테이너 기반 오픈소스 가상화 플랫폼이라고 정의할 수 있다.Virtual Box와 Docker1. Virtual BoxOS가 2개 존재할 수 없으므로 Hyper-v라는 가상화 기술을 이용해서 host OS(나의 경우 windows) 위에 virtual box를 통해 다른 OS가 설치되고 실행될 수 있다. Linux의 다양한 배포판 중 하나가 Ubuntu이다.2. DockerContainer 기술로, Docker engine 위에 여러가지 container가 올라간다. Container 역시 독립된 공간으로, docker engine의 기반은 linux이다.Windows는 linux를 사..

DevOps/Docker 2024.11.20

[DevOps] 1. DevOps

DevOps1. DevOps란?: 단절된 개발과 운영 간의 프로세스를 원활하게 연결하고 자동화 방법을 통해 효율성을 극대화하는 방법(서로 다른 업무의 통합).SW 개발(Dev)와 IT 운영(Ops)의 경계를 허물고, 지속적인 통합(CI), 지속적인 배포(CD), 자동화 등을 통해 더 빠른 SW 개발과 더 높은 운영 효율을 달성하려는 문화, 움직임, 관행의 집합이다. 2. DevOps의 핵심 요소(CAMS)(1) Culture(문화) DevOps 문화는 협업과 의사소통을 중시한다.개발(Dev)팀과 운영(Ops) 팀 간의 장벽을 허물고, 모든 이해관계자가 목표 달성을 위해 긴밀히 협력하도록 장려하는 문화이다.(2) Automation(자동화)DevOps에서는 반복 가능하고 예측 가능한 작업을 자동화함으로써,..

DevOps/DevOps 2024.11.15