목록Docker & K8S (39)
터칭 데이터

학습 목표 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등을 만들도..

학습 목표 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..

학습 목표 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..

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..

Hangman 서비스를 Docker Image로 구성 앞서 살펴본 Hangman 서비스를 Docker Image로 빌드해보자 Docker Container와 Port 번호 어떤 웹서비스를 Docker Container안에서 실행할 때 포트 번호를 오픈해야 합니다. 앞의 HANGMAN은 4000번을 Docker Container가 아닌 상태로 docker labs의 도움으로 실행했었습니다. 만일 Docker Container안에서 HANGMAN을 서비스할 때 Container 외부에서 4000번 포트로 컨테이너 내부의 HANGMAN 서비스에 접속할 수 있는지 헷갈리는 분들이 계실 수 있을까 설명을 드리겠습니다. 결과부터 말씀드리자면 Docker Container는 컴퓨터 안의 컴퓨터 역할을 하고 Conta..

웹 서비스를 Docker로 실행해보기 지난 시간에 Docker 개념을 살펴보고 간단한 실습을 해보았습니다. 이번에는 Hangman 웹서비스를 Github을 통해 Docker Image로 Docker Hub에 업로드해 실행해봅시다. 이 챕터를 위해 필요한 것들 Github 계정 Docker Hub 계정 Docker가 설치된 컴퓨터 본인 Github 계정 아래 존재하는 hangman repo https://github.com/learndataeng/hangman_web를 포크할 것! 이에 대해 별도로 설명하고 이 repo에 Dockerfile을 추가해볼 예정 웹서비스를 Docker로 구동해보는 전체 과정 익히기 hangman_web이라는 repo의 main에 코드가 머지될 때마다 다음을 수행 1. 테스트 수..

MySQL 8.0을 Docker로 실행해보자 MySQL 8.0을 Docker로 실행해보기 먼저 Docker Engine이 실행된 것 확인하고 terminal 프로그램 실행 MySQL docker image를 다운로드 docker pull mysql/mysql-server:8.0 다운로드받은 이미지로 Docker container 실행 docker run --name=mysql_container mysql/mysql-server:8.0 --name 옵션으로 mysql_container라는 이름을 붙여주어 나중에 docker ps로 MySQL의 ID를 찾아야하는 과정을 Skip할 수 있게 해줍니다. MySQL root 계정의 패스워드 찾기 docker logs mysql_container 2>&1 | gre..

각자 Docker 위에서 우분투를 컨테이너로 실행해보자 리눅스 커널과 배포판 리눅스 커널: 리눅스의 핵심부분. (자동차의 엔진) Linus B. Torvalds가 1992년에 처음 공개 이미지에서 음영칠된 커널은 똑같지만 커널을 감싸는 쉘, 응용 프로그램 등의 패키징 요소가 다른 것을 배포판이라고 부릅니다. 어떤 리눅스 배포판이 있는가? 우분투: 가장 많이 사용되며 데비안에 기반해서 만들어진 리눅스 배포판 데비안 알파인: 임베드 시스템에서 사용할 용도로 만들어진 경량화 리눅스 배포판 페도라 센트OS 기타 … 우분투 설치 후 다양한 명령 실행해보기 보통은 docker image를 pull하고 run을 해야함! 바로 run을 하면? 바로 run을 해도 괜찮습니다. 만일 로컬에 다운로드 받은 이미지가 없다면 ..
Airflow 운영상의 어려움 Docker 소개 Virtual Machines vs. Docker Containers Docker 설치 Docker 프로그램 개발 프로세스 실습, 간단한 Hello World 프로그램 (1) 실습, 간단한 Hello Wolrd 프로그램 (2) IMAGE와 TAG 보충 설명 데모 우분투(Ubuntu) MySQL

Docker Image 살펴보기 cat Dockerfile FROM node:alpine COPY . /app WORKDIR /app CMD node app.js Dockerfile이라는 Docker 이미지(Image)파일은 위와 같고 CMD에 node app.js라는 명령어가 지정되어 있습니다. cat app.js console.log("Hello Docker!"); app.js는 console.log("Hello Docker!");라는 코드로 이루어져 있고 node app.js Hello Docker! CMD에 적혀있던 node app.js는 app.js를 실행하며 app.js는 살펴본 코드대로 Hello Docker!를 출력합니다. Docker Image 빌드(build)하기 docker build..