본문 바로가기

Docker6

[DevOps] Docker + Jenkins 조합으로 CI/CD - 기본 세팅편 개요 드디어 프로젝트에서 완전한 인프라를 맡았고 🥹🥰 첫 도전과제는 Jenkins로 CI/CD를 구축하는 것이다. 먼저 Jenkins가 어떤 툴인지, 어떻게 사용하는지 기본적인 세팅을 이 포스팅을 통해 정리해본다. 활용도를 위해 Docker와 함께 사용하였다. 그렇기에 해당 포스팅에는 Docker에 대한 설명도 포함된다. Docker 환경에서 Jenkins 사용하기 (Docker Desktop은 이미 설치되어 있다고 가정한다.) 도커 허브는 오픈소스답게 다양한 이미지를 활용할 수 있는데, 역시나 젠킨스 이미지도 있다. Jenkins 이미지 다운 먼저 Jenkins 사용을 위해 이미지를 다운받아주자 docker pull jenkins/jenkins Jenkins 이미지 실행 Jenkins의 공식 문서를 보.. 2024. 3. 20.
[Docker] Docker Container OS와 VM | Docker Image Layer 개요 오늘 업무 관련해서 컨테이너, k8s 등 인프라 관련 발표를 진행할 일이 있었다. 이 업무를 맡으면서 컨테이너와 K8S라는 기술이 등장한 배경과 이점이 무엇인지에 대해 잘 이해했다고 생각했는데 뾰족한 질문들에 대한 답을 못했다. 질문 리스트는 다음과 같다. 도커 OS와 가상환경 OS의 차이점. (왜 컨테이너 OS가 더 가벼운건지?) 도커 이미지 생성 원리(도커 이미지 레이어) 여러 컨테이너로 배포한다고 했을 때 port가 중복이 될텐데 그러한 문제는 발생하지 않는지? 아무튼 질문에 대해 궁금하기도 하고, 확실히 알아야 할 것같아 이번 포스팅을 통해 정리해본다. Host OS와 Guest OS 가상머신과 컨테이너의 차이점을 알기 위해서는 먼저 Host OS와 Guest OS란 무엇인가? 에 대한 이해.. 2023. 11. 9.
[GCP] Docker와 Artifact Registry 개요 GCP 환경에서 CI/CD를 구축하기 위해 도커 컨테이너 이미지가 저장될 저장소가 필요하다. 처음에는 Docker Hub를 통해 이 저장소를 구축할 생각이었으나, private/public 저장 공간을 생각 못 했다. Docker Hub의 private version을 이용하려면 요금을 지불..해야한다..! 그런데 어차피 유료라면 Google의 Artifact Registry라는 저장소를 사용하는 게 낫다고 판단했다. Google Cloud에 종속성이 높지만, 보안적인 측면에서 더 강한 장점이 있는 Google Artifact Registry를 사용하기 위해 해당 문서를 작성한다. 1. Artifact Registry Artifact Registry란? 컨테이너 이미지(docker)나 언어 패키지(.. 2023. 10. 25.
[Docker] Docker와 Docker hub, Docker hub push 개요 ci/cd 로컬 환경 테스트를 위한 모든 삽질이 끝나고 ∙∙∙하아 app을 도커 이미지에 올려서 도커 허브로 푸쉬하고, Google Cloud Run을 통해 배포하기 위한 구축 과정에 대한 포스팅이다. 배포 자동화 아키텍처는 다음 그림과 같다. 이번 포스팅에서 정리해볼 것은 위 아키텍처를 구축하는 핵심 과정 중 첫 번째 부분 - app코드 Docker Image 생성과 Docker Hub에 Push하기이다. 포스팅에 앞서 로컬 환경에 다음 세팅이 모두 완료되었음을 가정하고, 이와 관련한 설명은 생략한다. Docker Local Setting Docker Installation on VM Instance - https://cobinding.tistory.com/212 Docker Hub Setting.. 2023. 10. 23.
[GCP/Docker] GCP(Google Cloud Platform) Docker Setting 개요 Google Cloud Platform에 VM 인스턴스를 만들고 Docker를 설치하여 컨테이너화하려고 한다. 이번 포스팅에서는 VM 인스턴스에 Docker를 설치하는 과정을 정리한다. VM 인스턴스는 무료 버전(e2-micro)로 설정하고 부팅디스크는 20GB, http와 https 트래픽 접근을 허용해주었다. OS는 ubuntu 20.04 LTS로 세팅하였다. VM 인스턴스에 Docker 설치하기 VM 인스턴스를 조작하기 위해 os 접근 방법은 아래 콘솔 페이지에서 빨간 박스를 클릭하면 된다. SSH로 인스턴스에 접근을 해주면 다음과 같은 터미널 화면이 뜬다. 박스로 가린 내용은 서버 유저네임이다. 도커 설치를 위한 VM 인스턴스 기본 세팅 우선 루트권한을 얻기 위해 sudo su 명령어를 입력.. 2023. 10. 20.
[Docker] 도커 기본, 가상화(Virtualizaion)와 컨테이너 가상화(Virtualization)와 Container 가상화란 컴퓨터 자원을 가상 환경으로 분리하여 프로그램들이 상호 충돌없이 실행 가능하도록 하는 아키텍처 기술이다. 가상화의 종류 OS 수준 가상화 - (docker) 하나의 OS 커널을 여러 개의 공간으로 격리하여 각각의 컨테이너가 마치 독립된 것처럼 사용하는 가상화이다. 따라서 OS를 새로 설치하지 않고 host OS의 커널을 공유한다. 이러한 방식으로 실행 속도가 빠르고 성능 상의 손실이 적다. 사용자에게는 가상머신처럼 보인다. 개발 환경 가상화 anaconda, venv 등 특정 폴더를 가상환경으로 만들어서 라이브러리나 소스코드를 관리하는 방식이다. 머신 가상화 다수의 OS를 동시에 실행하는 플랫폼을 말한다. 하이퍼바이저에 OS를 설치하여 운영.. 2023. 3. 29.