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

Docker Image 이름? docker image ls와 docker images와 동일한 결과를 보여줌 유니크해야 하는 be86780ae61e라는 IMAGE ID가 2개가 잡힙니다. IMAGE ID가 중복된 것이 아니라 keeyong/hello-world-docker와 hello-world-docker는 같은 이미지이고 별칭이 하나 붙은 것 뿐입니다. 앞서 docker tag 명령의 경우 별칭을 만들어주는 것임 (이름을 바꾸는 것이 아님) docker tag hello-world-docker keeyong/hello-world-docker Docker image의 실제 ID는 IMAGE ID임 정말로 Unique한 것은 IMAGE ID Image 이름 자체는 REPOSITORY 이름과 TAG로 구성..

Docker Hub 소개 1. node.js로 Hello World를 프린트하는 프로그램을 작성합니다. 2. 그 프로그램을 Docker Image로 만듭니다. 3. 만든 이미지를 컨테이너에서 실행합니다. 4. Docker Hub에 로딩합니다. 5. 다른 컴퓨터에서 Pull해 Container에서 실행합니다. 이전 시간에 1~3의 과정을 살펴보았습니다. 4~5 과정에 대해 살펴보겠습니다. 4. Docker Hub에 로딩 Docker Registry에 등록 (1): Docker Hub 회원등록 먼저 Docker Hub에 회원 등록: https://hub.docker.com/ ID와 Password를 기억해둘 것 Docker Registry에 등록 (2): hello-world-docker repo 만들기 C..

node.js로 만든 간단한 프로그램을 단계별로 이미지 빌드부터 최종적으로 다른 서버에서 실행까지 전체 과정을 다뤄보자 1. node.js로 Hello World를 프린트하는 프로그램을 작성합니다. 2. 그 프로그램을 Docker Image로 만듭니다. 3. 만든 이미지를 컨테이너에서 실행합니다. 4. Docker Hub에 로딩합니다. 5. 다른 컴퓨터에서 Pull해 Container에서 실행합니다. 만들려는 프로그램 개요 Node.js로 구성된 초간단 웹 서비스 a. app.js가 전부! b. 하지만 node 런타임 환경이 필요 보통 이를 실행하려면 a. node app.js 단 node 환경이 설정되어 있어야함! app.js console.log("Hello Docker!"); 만들려는 프로그램 실행..

Docker로 소프트웨어를 패키징(빌드)하는 프로세스를 알아보자 도커로 패키지를 만들고(빌드) 만든 패키지를 컨테이너로 실행하고 다른 사람과 공유도 해보는 프로세스를 알아보겠습니다. 하이레벨 Docker 사용 프로세스 먼저 대상 소프트웨어를 선택 다수의 컴포넌트로 구성되는 소프트웨어라면 각각이 Docker Image로 만들어져야할 수도 있음 이를 Docker Image로 빌드하자: Dockerization이라고 부름 Dockerfile이란 텍스트 파일로 세부 정보를 기술 - 해당 소프트웨어를 이미지로 바꾸기 위한 Docker에게 주는 명령들을 포함 Docker Image: 하나의 Docker Container안에서 실행됨! - Dockerfile을 기준으로 만들어지며 소프트웨어를 실행하기위해 필요한 모든..

Docker Desktop vs. Docker Engine https://docs.docker.com/get-docker/ Docker Desktop은 Docker Engine + 여러가지 툴들 Docker 사용을 위한 시스템 사양 체크 2023년 5월 기준 맥 최소 4GB의 메모리 맥 OS 버전 11 혹은 그 이상 윈도우 최소 4GB의 메모리 64비트 윈도우 10이나 윈도우 11 그 이외에 다른 조건이 존재 - 예) Hyper-V와 Container 기능이 활성화되어 있어야함 - 예) WSL 버전 (이는 윈도우 위에서 돌아가는 리눅스 커널) Docker (Desktop) 설치 - Windows https://touchingdata.tistory.com/174 Superset - Docker 설치 Doc..

Virtual machine과 container의 차이점에 대해 배워보자 Virtual Machine 소개 AWS의 EC2가 대표적인 Virtual Machine (VM) 하드웨어를 추상화하여 한 컴퓨터 위에 가상 컴퓨터를 올리는 것 즉 컴퓨터 하드웨어 단의 추상화 Virtual Machines: 보통 하나의 컴퓨터 위에 다수의 VM을 실행하는 것이 일반적, 이 안에서 소프트웨어가 동작 VM을 생성하고 관리하기 위한 소프트웨어: VMWare, VirtualBox, Hyper-v, … Virtual Machine의 장단점 장점 소프트웨어를 실행하기 위한 독립적이고 분리된 공간을 제공 다수의 소프트웨어를 각 VM단에서 독립적으로 실행가능 단점 각 VM은 자신만의 OS를 필요로 함 (가상 하드웨어위에서 돌기 ..

내가 만든 프로그램이 다른 컴퓨터에서 안 돌아간다면? 설치 과정에서 중요한 파일이 빠짐 사용하는 라이브러리 등의 버전이 안 맞음 가장 골치 아픈 문제! 환경 설정이 안 맞는 것이 존재 내 컴퓨터 환경을 그대로 패키징해서 다른 이에게 줄 수 있다면? Docker Image: 이렇게 독립적으로 완전하게 만들어진 패키지 내가 만든 소프트웨어를 모든 의존성(Dependency)이 포함된 완전한 형태로 패키지화 한 것 Docker Container: 이 Docker Image를 독립된 환경에서 실행한 것 나와 환경이 다른 사람이 Docker Engine만 갖고 있다면 Image를 받아 똑같이 소프트웨어를 실행시킬 수 있습니다. 물론 조금의 compatibility 이슈가 있을 수는 있지만 기본적으로 같은 리눅스 ..

관리해야하는 DAG의 수가 100개를 넘어간다면? 데이터 품질이나 데이터 리니지 이슈 이외에도 다양한 이슈들이 발생 어떤 이슈들이 있을까? 라이브러리 충돌 Worker의 부족 Worker 서버들의 관리와 활용도 이슈 1. 라이브러리 충돌 라이브러리/모듈의 충돌 이슈가 발생하기 시작함 DAG에 따라 실행에 필요한 라이브러리/모듈이 달라지기 시작 예) Python 버전 이로 인해 DAG 혹은 Task별로 별도의 독립공간을 만들어주는 것이 필요 Docker to the rescue Dag 혹은 Task 코드를 Docker Image로 만들고 이를 독립된 공간(Docker Container)안에서 실행 지금은 Docker 이미지(Image)는 소프트웨어의 실행을 위해 필요한 모든 dependent한 모든 것(의..
Airflow 환경 구축을 위한 Docker와 K8S 실습 Docker란 무엇인가? Container란 무엇인가? Airflow에서 Docker와 K8s 실습 Contents 1. Hello World, Docker! 2. 웹 서비스를 Docker로 빌드하고 실행해보기 3. Docker-Compose 사용해보기 4. Container Orchestration이란? 5. Docker로 Airflow Task 실행해보기 6. Airflow를 Docker/K8s로 설정하기 1. Hello World, Docker! Docker가 왜 필요하고 무엇인지 배우고 다양한 실습을 해보자 1. Airflow 운영상의 어려움 2. Docker 소개 3. Virtual Machines vs. Docker Containers..