전체 글 373

Docker & K8S - Hangman을 Docker Image로 구성 개요

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 & K8S 2023.12.19

Docker & K8S - 학습 목표 소개 (Docker로 웹 서비스 실행)

웹 서비스를 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. 테스트 수..

Docker & K8S 2023.12.19

Docker & K8S - MySQL

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 & K8S 2023.12.18

Docker & K8S - 우분투(Ubuntu)

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

Docker & K8S 2023.12.18

Docker & K8S - 데모

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

Docker & K8S 2023.12.18

Docker & K8S - IMAGE와 TAG 보충 설명

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 & K8S 2023.12.18

Docker & K8S - 실습 간단한 Hello World 프로그램(2)

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

Docker & K8S 2023.12.18

Docker & K8S - 실습 간단한 Hello World 프로그램(1)

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 & K8S 2023.12.18

Docker & K8S - Docker 프로그램 개발 프로세스

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

Docker & K8S 2023.12.18