전체 설정 순서 `Jenkins`는 `Java` 기반으로 작동하는 오픈소스입니다. 그러기에 자바를 우선 설치를 해줍니다. 이후, `Jenkins`를 `Docker` 기반으로 작동 시켜야 하기 때문에 `Docker`를 설치 해줍니다. 작동 중인 `Jenkins`에 필요한 설정들을 시작합니다. Ubuntu 설정 `apt`를 최신버젼을 가져올 수 있도록 먼저 `update`를 해줍니다. sudo apt update `Jenkins`는 자바 기반으로 작동이 되기에 `Java`를 설치해줍니다. sudo apt install -y default-jdk `Ubuntu`에 `Java`가 제대로 설치되었는지 확인 해줍니다. java -version openjdk version "11.0.20.1" 2023-08-24 O..
Docker Compose 단일 서버에서 여러 컨테이너를 프로젝트 단위로 묶어서 관리해주게 해주는 기능을 말합니다. `docker-compose.yml` 파일을 통해 명시적으로 관리가 가능합니다. 장점 프로젝트 단위로 도커 네트워크 볼륨 관리가 용이함. 프로젝트 내 서비스 간 의존성 정의 가능함. 프로젝트 내 서비스 디스커버리 자동화 가능. (서비스 도메인으로 호출이 가능) 손 쉬운 컨테이너 수평 확장 가능. 용어 프로젝트(Project) 도커 컴포즈에서 다루는 워크스페이스 단위를 의미합니다. 하나의 `yml` 파일이라고 생각하면 됩니다. 그리고 프로젝트는 함께 관리하는 서비스 컨테이너의 묶음이기도 하고 기본 도커 네트워크를 생성합니다. 서비스(Service) 도커 컴포즈에서 컨테이너를 관리하기 위한 중..
Docker 이미지를 경량화하는 데는 여러 가지 방법이 있습니다. 경량화를 통해 이미지 크기를 줄이고 실행 속도를 향상시킬 수 있습니다. 아래에는 Docker 이미지 경량화를 위한 몇 가지 일반적인 방법을 설명합니다 필요한 패키지 및 파일만 추가 `node.js`의 경우 설치한 `module`이 저장되는 `node_module`을 이미지화 하는데 제외하여 관리하는 것이 경량화 방법 입니다. 컨테이너 레이어 수 줄이기 `Dockerfile` 을 실행시 작동되는 `run` 명령어들을 `&&` 연산자를 통해 하나의 `RUN` 명령어로 변경하여 경량화를 할 수 있습니다. RUN \ apk add --no-cache bash curl git && \ git clone https://github.com/course..
이미지를 압축 및 풀기 `save` 명령어를 통해 이미지를 압축 할 수 있습니다. # docker save -o [저장될 파일명] [이미지명]:[태그] docker save -o my-app-v2.tar my-app:v `load` 명령어를 통해 압축을 풀 수 있습니다. #docker load -i [파일명] docker load -i my-app-v2.tar 도커허브 사용하기 우선 도커허브에 회원가입을 해주도록 합니다. Docker Hub Container Image Library | App Containerization Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker ..
도커 이미지 구조 ubuntu는 layer A > layer B > layer C 순서대로 쌓여서 이미지가 생성됩니다. nginx는 ubuntu 기반으로 만들어지고 마지막에 nginx만 쌓이는 구조입니다.. web app은 nginx 이후에 쌓이는 형태를 가집니다. docker image inspect nginx:latest // 아래와 같이 layer가 쌓인 것을 배열값으로 볼 수 있습니다. "RootFS": { "Type": "layers", "Layers": [ "sha256:d310e774110ab038b30c6a5f7b7f7dd527dbe527854496bd30194b9ee6ea496e", "sha256:eb7e3384f0ab3a08dd0163ab66625d954e511e8fa112c09923e..
STDOUT / STDERR App Container에서 나오는 표준 출력과 표준 에러를 logging driver를 활용하여 표출하고 있습니다. 명령어 컨테이너를 로그를 볼 수 있는 명령어. docker log ${con-id} 마지막 로그의 5개만 보는 명령어. docker log --tail 5 ${con-id} 실시간으로 컨테이너 로그를 보는 명령어. docker log -f ${con-id} 실시간으로 보면서 타임스탬프를 찍어주는 명령어. docker logs -t -f ${con-id} 로그 용량 제한하기 컨테이너 단위로 로그 용량 제한을 할 수 있지만, 도커 엔진에서 기본 설정을 진행할 수 있습니다. 한 로그 파일당 3mb, 최대 5개의 파일로 로테이팅하는 명령어 입니다. docker run..