Category Archives: 초격차 패키지 : 한 번에 끝내는 CI/CD의 모든 것: Docker부터 GitOps까지

[DOCKER] 컨테이너 배포 자동화(CI/CD) 프로젝트-18

[실습] 컨테이너 배포 자동화를 위한 CI/CD(Jenkins) 구성 지속적 통합과 배포(CI/CD) CI/CD는 애플리케이션 개발 단계를 자동화하여 보다 짧은 주기로 변경을 제공하여 전박적인 프로세스의 효율성과 지속성을 보장할 수 있다. 지속적 통합(CI, Continuous Integration) CI는 코드 변경 사항을 지정된 repository에 정기적으로 통합하고 자동화된 빌드와 테스트를 실행한다. 지속적 전달과 배포(CD, Continuous Delivery & Deployment) CD는 실제 운영에 배포하기 위해

Read More

[DOCKER] 클라우드 기반의 Amazon ECS 서비스 활용-17

Amazon ECS 및 ECR 이해 Amazon ECS(Elastic Container Service) 컨테이너화된 애플리케이션을 배포, 관리 스케일링할 수 있도록 도와주는 완전 관리형 컨테이너 오케스트레아션 서비스 Amazon ECS 기반 애플리케이션들은 간단한 API 호출을 이용하여 컨테이너 애플리케이션 운영, 관리를 손쉽게 할 수 있고, 단일 컨테이너부터 수천 개의 컨테이너까지 복잡한 과정 없이 확장 가능할수 있다. Serverless 방식으로 클라우드 인프라에서 애플리케이션을 호스팅하는

Read More

[DOCKER] 컨테이너 애플리케이션 통합을 위한 docker CI 구성-16

최근들어서 개발에서  CI/CD가 중요한 화두가 되었다. 예전에는 수동으로 빌드를 해서 그 파일을 서버에 배포하곤 했었는데 이 과정을 자동화 하는게 CI/CD이다. 그중에서 CI이란 개발한 소스를 저장소(GIT)에서 통합하고 배포 가능한 아티팩트를 만드는 과정이다. 여기서는 깃에 소스를 push하면 소스를 빌드해서 docker에 이미지를 올리는 과정을 다룬다. 코드 배포를 위한 Gitaction workflow 이해 GitHub Action 코드 저장소인 GitHub에 CI/CD 기능이

Read More

[DOCKER] 컨테이너 오케스트레이션을 위한 Docker swarm-15

Docker swarm cluster 이해 이사를 하느라 한동안 스터디에 신경을 못썼네요. 이번 장에서는 Docker swarm에 대해 다루는데 쿠버네티스의 도커 버전으로 이해 하면 됩니다.  실습위해서 지난번과 비슷하게 hostos2를 복사해서 hostos3을 만들고 진행 했습니다.  Docker swarm mode Docker swarm은 docker 컨테이너를 위한 분산 환경 클러스터링 및 스케줄링 도구다. Docker는 단일 호스트, Docker swarm mode는 다중호스트 기반의 컨테이너 기반

Read More

[DOCKER] 멀티 컨테이너 서비스를 위한 docker compose-14

이번 글에서는 드디어 docker compose를 다루게 되었습니다. 도커를 사용하면 사실상 compose를 사용하는게 당연하게 생각 되듯이 널리 사용되고 있습니다. 이번 글에서 기본적인 사용법과 실습을 해보면서 익숙해 지도록 해봅시다. 멀티 컨테이너 서비스 구성 [실습] wordpress와 mysql을 이용한 web application cd ~/fastcampus/ch10/my-webdb docker volume create mydb_data docker volume create myweb_data docker network create my-webdb-net docker run -itd –name=mysql_app

Read More

[DOCKER] 컨테이너 인프라 구성을 위한 Dockerfile 작성-13

Image 생성을 위한 Dockerfile 명령어 Dockerfile Dockerfile은 Docker에서 동작하는 컨테이너의 구성 정보를 프로비저닝(Provisioning)한 텍스트 template 파일이다. Docker 이미지는 컨테이너가 런타임 환경으로 동작하기 위해 필요한 특정 기술 또는 서비스를 사전에 구축한 환경이다. Dockerfile은 애플리케이션 배포에 필요한 컨테이너 인프라를 코드 형태로 정의한 파일이다.(IaC-Infrastructure as Code) Dockerfile 명령어 FROM(layer) (필수) 생성하려는 이미지의 베이스 이미지 지정으로 hub.docker.com에서 제공하는 공식(오피셜,

Read More

[Docker] docker volume-12

Docker 제공, volume 기술 이해 volume 기술 이해 Docker에서 제공하는 volume 기술은 컨테이너 애플리 케이션에서 생성되고 사용되는 데이터를 유지, 보존하기 위한 메커니즘을 제공한다. 컨테이너가 삭제되어도 volume은 독립적으로 운영되기 때문에 데이터를 유지한다. volume 기술은 Docker HostOS와 컨테이너에서 직접 접근이 가능하다. 일반적으로 컨테이너 내부의 데이터는 컨테이너의 생명 주기와 연관되어 컨테이너 종료시 삭제되지만, 이를 지속적으로 보존하기 위한 방법으로

Read More

[DOCKER]컨테이너 리소스 모니터링과 자원 할당 관리-11

컨테이너 리소스 모니터링을 위한 cadvisor 컨테이너들을 모니터링하는 도구인 cadvisor를 설치하고 metric(지표)가 의미하는 바를 알아 봅시다. 이전장에서 이미 설치를 진행해서 올라가 있네요. 혹시나 설치가 안되어 있을수도 있으니 아래에 설치하는 명령어를 적어 놓을게요. arm64버전의 문제인지 CPU 항목에서 usage per core 활성화가 안되서 확인이 안되는 문제가 있습니다. docker run –restart=always –volume=/:/rootfs:ro –volume=/var/run:/var/run:rw –volume=/sys/fs/cgroup:/sys/fs/cgroup:ro –volume=/var/lib/docker/:/var/lib/docker:ro –volume=/dev/disk/:/dev/disk:ro –publish=9559:8080 –detach=true –name=cadvisor

Read More

[DOCKER]컨테이너 서비스를 위한 docker network 관리-10

컨테이너 네트워크 docker network docker network = Linux network CNM(Container Networking Model) 인터페이스 집합 위에 구축. OS 및 인프라에 상관없이 동일한 환경을 가질 수 있다. 리눅스 네트워킹 빌딩 블록(리눅스 브리지, 네트워크 네임스페이스, veth pair 및 iptables) iptables가 방화벽(?)이고 bridge를 통해서 os의 네트워크와 통신을 하는 구조입니다. docker network는 리눅스 브리지를 사용하기에 그 목록을 조회하기 위해서 bridge-utils를

Read More

[DOCKER]컨테이너 운용에 필요한 CLI-9

이번 장에서는 컨테이너를 다루는 CLI를 다루는 장입니다. 도커는 결국 이미지를 사용해서 컨테이너를 만들어서 사용하는게 목적이므로 빠질수 없는 부분이죠. 컨테이너 격리 기술 docker run -it –name=myubuntu16-2 ubuntu:16.04 ls df -h hostname ps -ef 위의 커맨드를 실행하면 컨테이너 내부로 들어 갑니다. 거기서 내부 구조를 ls로 확인해보면 ubuntu구조가 보입니다. 이처럼 컨테이너는 우분투 구조를 호스와 별개로 격리되게 구성하고 있습니다.

Read More