전체 글 373

Docker & K8S - Docker Volume nginx 데모(실습)

데모: 앞서 nginx 두 가지 실행 예 살펴보기 첫 번째는 하나는 볼륨없이 내용이 사라지는 경우를 두 번째는 볼륨을 지정하고 실행하며 내용이 사라지지 않는 경우를 이렇게 두 상황을 살펴보았습니다. 이 상황들에 대한 데모를 진행해보겠습니다. 거기에 더해 세번째는 Airflow의 docker-compose.yml에서 volumes 내용만 살펴보기도 했는데요. 데모의 끝 부분에서 airflow의 docker-compose.yml 파일도 잠깐 살펴볼 예정입니다. 첫 번째 실습 볼륨없이 내용이 사라지는 경우 Nginx 공식 이미지 다운 일단 docker에서 nginx 공식 Image를 다운받겠습니다. docker run -d --name=nginx -p 8081:80 nginx PS C:\Users\User> ..

Docker & K8S 2023.12.20

Docker & K8S - Docker Volume이란

Docker Volume이란? Docker Container가 무슨 이유로건 중단되고 재실행된다면 그전의 데이터는 어떻게 되는 걸까? 그 문제를 해결하기 위해 등장한 것이 Docker Volume입니다. Docker Volume의 필요성 Docker Container가 실행되었다가 중단되면 데이터들은 어떻게 될까? 특정 소프트웨어가 Docker Container를 통해 일회성으로 동작하는 것이 아니라 계속해서 동작해야 한다면 데이터가 영구적으로 보관되어야함 예) 데이터베이스가 Docker Container안에서 동작한다면? 이를 보장하는 기능이 Docker Volumes => Data Persistence Docker Container내의 가상 파일 시스템과 호스트 시스템의 파일 시스템을 맵핑 이런 맵핑..

Docker & K8S 2023.12.20

Docker & K8S - Docker 명령 정리

Docker 명령 정리와 2장 퀴즈 다양한 docker 명령을 정리하고 2장 내용을 정리하는 퀴즈를 풀어보자 Docker 명령 정리 - Image 관련 docker build --platform=linux/amd64 -t jon/hangman Dockerfile에 기술된 내용대로 Docker Image를 build docker images docker image ls Docker Image 리스트 docker rmi docker image rm Docker Image 삭제 Docker 명령 정리 - Docker Hub 관련 docker login -u 사용자ID -p 사용자PW 한번 해두면 로컬에 저장 정보가 저장되어 반복할 필요가 없어집니다. docker pull jon/hangman (어카운트 ID/..

Docker & K8S 2023.12.20

Docker & K8S - Github Actions 사용 # 2

학습 목표 CI/CD의 개념과 가장 많이 사용되는 소스 컨트롤 시스템 Git과 Github에 대해 알아보고 Github이 제공하는 CI/CD 서비스인 Github Actions에 대해 알아보려 합니다. 이렇게 배운 개념들을 바탕으로 1. Github Actions로 Hangman 코드에 테스트를 붙이는 실습 2. Github Actions를 기준으로 Docker Image를 만들고 Docker hub에 push하는 실습 2개의 실습을 하려합니다. 2. Github Actions를 기준으로 Docker Image를 만들고 Docker hub에 push하는 실습 시작하기 전에 먼저 learndataeng/hangman_web repo를 본인의 Github 어카운트로 fork 여기에 앞서 만든 Dockerfi..

Docker & K8S 2023.12.19

Docker & K8S - Github Actions 사용 # 1

학습 목표 CI/CD의 개념과 가장 많이 사용되는 소스 컨트롤 시스템 Git과 Github에 대해 알아보고 Github이 제공하는 CI/CD 서비스인 Github Actions에 대해 알아보려 합니다. 이렇게 배운 개념들을 바탕으로 1. Github Actions로 Hangman 코드에 테스트를 붙이는 실습 2. Github Actions를 통해 Docker Image를 만들고 Docker hub에 push하는 실습 2개의 실습을 하려합니다. 1. Github Actions로 Hangman 코드에 테스트를 붙이는 실습 정확하게는 테스트이외에도 문법 에러나 코딩 스타일 이슈까지도 체크하는 스텝을 추가하겠습니다. 시작하기 전에 먼저 learndataeng/hangman_web repo를 본인의 Github ..

Docker & K8S 2023.12.19

Docker & K8S - Github Actions 소개

학습 목표 CI/CD의 개념과 가장 많이 사용되는 소스 컨트롤 시스템 Git과 Github에 대해 알아보고 Github이 제공하는 CI/CD 서비스인 Github Actions에 대해 알아보려 합니다. 이렇게 배운 개념들을 바탕으로 1. Github Actions로 Hangman 코드에 테스트를 붙이는 실습 2. Github Actions를 통해 Docker Image를 만들고 Docker hub에 push하는 실습 2개의 실습을 하려합니다. Push나 Merge 시점이 CI/CD를 실행하기 위한 절호의 순간 코드가 메인/마스터나 브랜치에 추가되는 순간 CI/CD를 트리거 이를 특정 메인/마스터나 특정 브랜치만 대상으로 하도록 설정 가능 이 때 테스트 수행하고 최종적으로 Docker Image등을 만들도..

Docker & K8S 2023.12.19

Docker & K8S - Git과 Github 소개

학습 목표 CI/CD의 개념과 가장 많이 사용되는 소스 컨트롤 시스템 Git과 Github에 대해 알아보고 Github이 제공하는 CI/CD 서비스인 Github Actions에 대해 알아보려 합니다. 이렇게 배운 개념들을 바탕으로 1. Github Actions로 Hangman 코드에 테스트를 붙이는 실습 2. Github Actions를 통해 Docker Image를 만들고 Docker hub에 push하는 실습 2개의 실습을 하려합니다. Git이란? Git은 분산환경을 지원하는 소스 버전 컨트롤 시스템 CVS, SVN은 항상 서버에 연결되어 있다는 전제하에서 사용 가능 (중앙 개발) 리눅스를 만든 Linus Torvalds가 개발 리눅스 커널 개발을 위해 만들었으며 GPL v2 오픈소스 SVN/CV..

Docker & K8S 2023.12.19

Docker & K8S - CI/CD

학습 목표 CI/CD의 개념과 가장 많이 사용되는 소스 컨트롤 시스템 Git과 Github에 대해 알아보고 Github이 제공하는 CI/CD 서비스인 Github Actions에 대해 알아보려 합니다. 이렇게 배운 개념들을 바탕으로 1. Github Actions로 Hangman 코드에 테스트를 붙이는 실습 2. Github Actions를 통해 Docker Image를 만들고 Docker hub에 push하는 실습 2개의 실습을 하려합니다. Docker와 K8S 공부 도중에 CI/CD 이야기를 하는 이유는 먼저 아주 간단하게 설명드리자면 CD에 Docker Image가 많이 사용되고 프로덕션 서버환경이 점점 K8S와 같은 container orchestration 플랫폼이 사용되기 때문입니다. CI/C..

Docker & K8S 2023.12.19

Docker & K8S - Hangman을 Dockerization

Hangman 서비스를 Dockerization하기 앞서 살펴본 Hangman 서비스를 Docker Image로 빌드하고 Docker Container로 실행해보자 Dockerfile 리뷰 FROM python:3.8-slim-buster LABEL Maintainer="keeyong@gmail.com" WORKDIR /app COPY app.py ./ COPY requirements.txt ./ RUN pip3 install -r requirements.txt EXPOSE 4000 CMD ["python3", "-m", "flask", "run", "--host=0.0.0.0", "--port=4000"] LABEL은 key와 value 형태로 메타데이터에 정보를 저장합니다. docker insepec..

Docker & K8S 2023.12.19