오늘은 Docker를 배우는 마지막 날이라 Docker의 전반적인 학습 내용을 정리하며, Production에서 사용 시 주의점 그리고 Container Orchestration에 대해 학습하였다. 그리고 강의에서 Container Orchestration이 무엇인지 알아보며 K8s 컴포넌트 구조를 간단하게 설명주셨는데, 평소에 쿠버네티스가 궁금했던 터라 K8s에 대해 더 찾아보았다. (다음글 : https://hyem207.tistory.com/121) 우선은 아래에 오늘 배운 내용을 정리해본다. #️⃣ Docker를 실제 Production 환경에서 사용할 때 주의할 점 Production에서는 Docker volumes 를 named volumes 를 써야된다. Docker container는 re..
Docker
오늘은 전반적인 Docker 개념과 Airfow에서 Docker와 K8s가 필요한 이유에 대해 학습하였다. 새로 알게된 점은 다음과 같다. 💡 새로 알게된 점 💡 1. Docker run과 exec 차이 2. Dockerfile에서 arg와 env 차이 3. Airflow 운영상의 이슈와 이를 Docker 및 K8S로 해결하는 법 이전에는 단순 K8s를 이용해서 컨테이너 관리를 하겠지라고만 생각했는데, "Airflow의 task를 Docker Image로 만들고 Worker를 Airflow 전용 worker가 아닌 K8s에서 할당받아서 실행하는 형태" 라는 것을 새롭게 알게되었다. 이로 인해 Docker 학습의 중요성을 깨달았고, 이번주 학습도 신경써서 들어야겠다. 01. Docker란 01-1. Doc..
로컬 환경(Windows)에서 만든 Python 기반의 크롤러 프로젝트를 Docker image로 만들어 이를 EC2에서 실행하고자 한다. 원래는 github 프로젝트를 clone하여 프로젝트를 가져와 이를 실행할까 생각했는데, (1) 현재 프로젝트가 100% 완성되지 않아서 수정으로 여러번 배포가 될 것이기도 하고, (2) 크롤링을 위해서 환경 구축하는데 시간을 줄이고자 docker image화 하여 배포하는 것으로 선택하였다. 로컬에서의 작업 프로젝트 환경 구성은 다음과 같다. 주요 정보들은 config 폴더에, 실행 결과는 result 와 prev_result 폴더에, 로깅으로 기록되는 로그 파일은 logs 폴더에, 그리고 나머지 .py 파일은 클래스 및 test 코드 이다. 1. requremen..
🐳 도커란? 도커는 리눅스 컨테이너 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트 이다. 가상화 방법인 가상 머신과 달리 도커 컨테이너는 성능 손실이 적다 일반적인 도커는 도커 엔진 혹은 도커와 관련된 모든 프로젝트를 의미함 도커 엔진은 컨테이너를 생성하고 관리하는 주체를 말한다. 1.1 가상 머신과 도커 컨테이너 가상머신 특징 기존에는 하이퍼바이저를 이용해 여러개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식이었음. 생성되는 운영체제는 '가상 머신' 단위로 구별됨 하이퍼바이저로 관리되는 운영체제를 '게스트 운영체제 (Guest OS)' 라고 하고, 이는 게스트 운영체제 각각은 완전히 독립된 공간과 시스템 자원을 할당 받음 단점 가상화 작..
🐳 도커 컨테이너 기본 도커 명령어는 공식 독스에 가면 자세히 기입되어 있다. 그 중 자주 쓰이는 명령어를 책 (시작하세요! 도커/쿠버네티스)을 참고하여 아래에 정리해보았다. 명령어 정리 도커 엔진 버전 확인 docker -v 이미지 내려받기 및 조회 이미지 내려받기 docker pull [옵션] 이미지명[:TAG|@DIGEST] 도커 공식 이미지 저장소인 docker hub에서 이미지를 다운로드 함 이미지 조회 docker images 도커 엔진에 존재하는 이미지 목록 출력 컨테이너 목록 확인 docker ps docker ps 명령어는 정지되지 않은 컨테이너만 출력함 exit 로 나온 컨테이너는 정지 상태라 목록에 출력되지 않음 ctrl+P, Q를 입력해 나온 컨테이너는 목록에 출력됨 모든 컨테이너 ..