목록분류 전체보기 (135)
Connecting
Dockerfile 작성하기 What is Dockerfile ? Dockerfile은 Docker image를 만들기 위한 설정 파일로, 아래에서 설명할 여러 명령어를 통해 작성하면 image를 만들어서 Docker Hub에 업로드할 수 있다. 따라서 이미지가 어떻게 만들어지고 어떠하나 특성을 가지고 있는지 알고 싶다면 Dockerfile을 해석할 수 있다는 뜻이 된다. FROM Docker image를 만드는데 필요한 가장 기본인 베이스 이미지를 지정하는 부분이다. FROM ubuntu:20.04 LABEL Dockerfile를 작성한 개발자의 정보를 작성한다. 기존 명령어인 MAINTAINER와 동일한 역할을 담당한다. 단, MAINTAINER는 공식적으로 deprecated 되었기 때문에 사용하지..
Docker 데이터 저장하기 리눅스 컨테이너 즉 docker는 프로세스 형태로 자원을 격리하여 사용하기 때문에 컨테이너가 삭제되면 기존에 저장되었던 데이터는 사라진다. 이를 예방하기 위해서 docker volume을 사용하거나 로컬 컴퓨터 파일에 마운트 하여 docker 내부에 생성되는 데이터를 저장하는 과정이 필요하다. 이번에는 postgres 데이터베이스를 통해서 실습을 진행하도록 하겠다. $ docker run -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=1q2w3e4r -d postgres Unable to find image 'postgres:latest' locally latest: Pulling from library/postgres..
Docker Hub는 많은 개발자들이 Docker 이미지를 개발하여 공개하는 사이트라고 할 수 있다. git이 코드를 관리하기 위한 공간이라면 Docker Hub는 이미지를 관리하는 공간이라고 할 수 있다. 가입을 하지 않더라도 이미지를 다운로드하거나 사용하는데 지장이 없지만 회원가입을 통해서 자기가 만든 이미지를 공개할 수 있다. github와 같이 Public repositories는 무제한이지만 Private repositories를 사용하기 위해서는 무료 계정의 경우 1개, 그 이상을 사용하고 싶다면 별도의 가격을 지불해야 한다. 만약 기업 혹은 그룹에서 별도의 비용을 지불하지 않고 별도의 별도의 Private Docker Registry를 구축하고 싶다면 CNCF에서 인증한 HARBOR를 사용하..
Let's learn how to use Docker 이제 본격적으로 Docker 기본 명령어를 실습하고 사용할 수 있도록 한다. 참고로 리눅스 사용자의 경우 root 혹은 sudo 권한을 통해 명령어를 실행해야 한다. 해당 계정에 권한을 줘서 실행할 수 있지만 권장하지 않는다. docker search Docker에서 이미지를 검색하기 위해 사용한다. $ docker search ubuntu $ docker search centos $ docker search jenkins docker pull Docker를 사용하기 위해 이미지를 받기 위한 과정으로 별도의 버전을 기술하지 않는 경우 최신 버전으로 설정되며, ubuntu와 filebrowser 이미지를 다운로드한다. $ docker pull ubunt..
컨테이너 우리가 일반적으로 생각하는 컨테이너는 무엇인가? 선박 운영에 있어서 사용되는 컨테이너는 일종의 표준 규격을 가지고 안에 화물을 넣어서 쉽게 이동할 수 있는 인류의 물품 수송에 일대 혁명을 가져온 발명품이다. 컨테이너가 없던 시절 크레인과 인력을 동원하여 화물을 적양하 하는 것이 일반적이었다. 여기서 발생하는 인력과 시간 및 사고와 물자 분실은 필수 불가결한 존재였다. 하지만 컨테이너가 등장하면서 규격화된 크레인과 수송체계만 있으면 과정이 매우 단순화되며 비용도 크게 줄었다. 우리가 학습할 컨테이너도 운송용 컨테이너와 다르지 않다. 만약 본인이 Go로 작성된 어떠한 애플리케이션을 만들고 있다고 가정한다. 당연히 본인 컴퓨터에서는 관련 환경설정이 되어 있기 때문에 개발하고 운영하는데 아무런 지장이 ..
서버와 네트워크 간단한 역사 1957년 인류 최초 인공위성인 소련의 스푸크니호의 발사가 성공하자 핵전쟁 등의 상황에서도 살아남을 수 있는 네트워크를 연구하였고 이 결과 기존의 회선 교환(circuit switching)방식보다는 패킷 교환(packet switching)방식이 매우 견고하고하다는 것을 발견하여, 미국 국방부에서는 1962년 ARPANET (Advanced Research Projects Agency Network) 프로젝트를 시행, 1969년 로스 앤젤레스에 있는 캘리포니아 대학교에 that's us! 메시지를 전송하는데 성공한다. 초기 군사용 및 연구용으로 사용되던 ARPANET은 사용요구가 많아지면서 1983년 미국 국방성은 군사용 네트워크를 분리시키고 아파넷을 대중에게..
타워형 12Layer 케이스에 PoE 스위치와 PoE HAT, 라즈베이파이 4 8GB 12개를 이용해서 Docker Cluster 시스템을 구축하게 되었다. 마지막 사진은 테스트하기 위해서 저렇게 둔거고 추후 랙에 들어갈 예정이었다. 하드웨어적으로는 준비가 끝나고 ubuntu 20.04과 Docker 설치를 완료하고 테스트를 하려는데 아래와 같은 에러가 날 맞이했다. $ ubuntu@main:~$ sudo docker run jusk2/topent Unable to find image 'jusk2/topent:latest' locally latest: Pulling from jusk2/topent 8559a31e96f4: Pull complete bd517d441028: Pull complete f670..
리눅스 컨테이너 즉 docker는 프로세스 형태로 자원을 격리하여 사용하기 때문에 컨테이너가 삭제되면 기존에 저장되었던 데이터는 사라진다. 이를 예방하기 위해서 docker volume을 사용하거나 로컬 컴퓨터 파일에 마운트하여 docker 내부에 생성되는 데이터를 저장하는 과정이 필요하다. 이번에는 postgres 데이터베이스를 통해서 실습을 진행하도록 하겠다. $ docker run -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=1q2w3e4r -d postgres Unable to find image 'postgres:latest' locally latest: Pulling from library/postgres d121f8d1c412: Already ex..
Description 본 문서에서는 Kafka를 사용하기 위해 각 OS별로 설치하는 방법에 대해 기술합니다. 이전 이론에 대한 학습과 더불어 본 설치를 통해서 본격적인 실습에 준비하시길 바랍니다. 각 OS 버전에 따라 설치방법이 조금씩 다를 수 있으며, 기술한 버전 이외의 약간의 차이점이 있거나 실행이 정상적으로 진행되지 않을 수 있습니다. 따라서 본인 환경에 직접 적용하기 이전에 가상환경 등 테스트를 진행하는 것을 권장하며 혹은 Docker로 설치하는 것을 적극 권장합니다. Windows 본 설치는 윈도우 2004 버전에서 진행했습니다. Apache Kafka를 설치하기 위해서는 먼저 JDK 1.8이 설치되어 있어야 합니다. 현재 LTS 버전인 JDK 11의 경우 Kafka 설치 및 운영시 오류가 발생..
본 문서는 "실전 아파치 카프카", "카프카 데이터 플랫폼의 최강자" 책과 위키백과 등을 기반으로 작성되었음을 알려드립니다. 지난 시간에는 Apache Kafka (앞으로는 카프카로 지칭)의 대한 탄생배경과 목표, RabbitMQ과 어떠한 차이점을 가지고 있으며, 간단한 성능차이에 대해서 알아보았다. 이번 시간에는 카프카의 장점과 특징과 동작방식에 대해서 서술한다. Kafka Basic 카프카는 기본적으로 대량의 메시지를 처리하기 위한 플랫폼이다. 다른 메시지 큐에 비해서 월등히 빠른 성능을 보여주고 전달하고자 하는 메시가 일부 중복이 발생하더라도 절대 메시지 손실이 발생하지 않는다는 원칙을 가지고 있다. 아래 표를 통해 메시지 전달 보증 수준을 확인해 보자. 종류 개요 재전송 유뮤 중복 삭제 유무 비고..