Docker란?
Docker는 컨테이너화된 애플리케이션 구축, 배포 및 실행을 위한 플랫폼
Docker는 컨테이너 엔진으로 리눅스 커널 기능을 사용하여 운영 체제 위에 컨테이너를 만들고,
Docker 자체는 서비스의 컨테이너를 관리하는 데몬(Daemon)으로 실행된다.
여기서 데몬이란 백그라운드에서 실행되는 프로그램으로, Docker의 컨테이너 생성/실행/관리/삭제 등의 작업을 수행하며, 사용자는 Docker CLI를 통해 컨테이너를 관리하는 명령을 내려 데몬과 상호작용을 한다.
Docker의 핵심개념 - 이미지와 컨테이너 !
1) 이미지 :
-애플리케이션 실행에 필요한 모든 파일, 라이브러리, 설정 등을 포함하는 패키지, 컨테이너를 실행하는 데 사용 (변경 불가 파일)
- 읽기 전용이므로 "스냅샷"이라고도 하며, 특정 시점의 애플리케이션과 가상 환경을 나타냄
=> 일관성으로 인해 개발자가 안정적인 조건에서 소프트웨어를 테스트 할 수 있다.
2) 컨테이너 :
- 이미지의 인스턴스 개념. 격리된 환경에서 애플리케이션 실행(가상화된 런타임 환경)
- 컨테이너를 생성하면 read-only인 이미지위에 read-write컨테이너 레이어가 추가된다
- 컨테이너는 수정이 가능하다.
3) Dockerfile :
- 도커 이미지를 빌드하는 방법을 정의하는 스크립트, 컨터에니 구동에 필요한 정보 작성
Dockerfile -(Build)-> Image -(Create)-> Container
젠킨스로 CI/CD 배포 환경 구축하기 01
사전 세팅
배포할 리포지토리,
EC2 인스턴스(ubuntu 사용)와 키 페어에 대한 private key(.pem 파일),
PuTTY다운(SSH 프로토콜을 이용해 인스턴스 내부로 접근하기 위한 SSH 클라이언트)
*EC2 인스턴스의 스토리지는 8GB는 용량이 부족할 수 있으니 14~6GB로 설정해주자(프리티어는 최대 30GB까지도 가능하다)
1. ppk 파일 만들기puttygen.exe 실행 -> Load 클릭 -> .pem 파일 불러오기 (.pem 파일을 찾을 때는 All Files(*.*)로 설정) -> Save private key 클릭 -> Warning Alert "예"
2. PuTTY 실행
Session - HostName란에 EC2 퍼블릭 IPv4 주소 붙여넣기 -> Connect type : SSH ->
카테고리에서 SSH-Auth 클릭 -> Private key file for authentication에 Browse 버튼 클릭
-> 생성했던 .ppk 파일 업로드(SSH 서버에 접속할 용도)
3. 카테고리 Session 클릭 -> Load -> Open
ubuntu로 로그인
sudo apt-get update -y
sudo apt-get install -y
sudo apt-get install docker.io -y
sudo apt-get install docker-compose
sudo vi docker-compose.yml
로컬환경에서 서로 연관이 있는 컨테이너를 두 개 이상 한꺼번에 띄워서 테스트 할 때는 docker-compose.yml 을 작성해서 띄우는 것이 편리
#docker-compose.yml
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins_cicd
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /jenkins:/var/jenkins_home
ports:
- "8080:8080"
privileged: true
user: root
docker -v : Docker 버전이 출력된다면 정상적으로 설치가 완료
<스왑 메모리 할당>
- 서버가 프리티어라면 메모리 부족으로 인한 멈춤이 자주 발생
멈춤 현상을 방지하기 위해 Swap 메모리 설정
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo vi /etc/fstab
최하단에 해당 명령어 추가하고 저장 /swapfile swap swap defaults 0 0
sudo docker ps
sudo docker-compose up -d
명령어를 입력하면
Creating network "ubuntu_default" with the default driver
Pulling jenkins (jenkins/jenkins:lts)...
lts: Pulling from jenkins/jenkins
..
..
Status: Downloaded newer image for jenkins/jenkins:lts
Creating jenkins_cicd ... done
이 뜨면 성공
sudo docker-compose logs로 문제가 생길 시 확인 가능
<젠킨스 비밀번호>
logs로 보는 법
1) sudo docker ps 해서 CONTAINER ID의 맨 앞글자를 따서 (예시 : d3f4s..이면 d)
2) sudo docker logs d 입력
3) ****이 세줄 씩 위아래로 뜨는 데 중간의 값이 비밀번호
비밀번호를 획득했다면
나의 퍼블릭 IPv4 주소를 복사해서
http://[퍼블릭 IPv4 주소]:8080 <- 입력
Unlock Jenkins 화면이 열리고 Administrator password를 입력해주어야한다. 여기에 아까 찾은
비밀번호를 입력해주면 된다!
'내일배움캠프 > 내일배움캠프 TIL' 카테고리의 다른 글
내일배움 캠프 TIL 79일차 (0) | 2023.07.03 |
---|---|
내일배움 캠프 TIL 78일차 - 젠킨스로 CI/CD 배포 환경 구축하기 02 (0) | 2023.07.03 |
내일배움캠프 TIL 76일차 - KPT 중간 발표 회고록 (0) | 2023.06.26 |
내일배움캠프 TIL 75일차 (0) | 2023.06.25 |
내일배움캠프 TIL 74일차 (0) | 2023.06.25 |