Docker Swarm Docker Swarm : 컨테이너들을 오케스트레이션 해주는 도구중 하나이면(쿠버네티스와 같이) 여러 대의 Docker 호스트 들을 하나인 것처럼 만들어준다. 도커 스웜 사용 이유 : 서버 자원이 부족한 경우 서버 자원 확장 필요 Scale out 확장을 위한 병렬 클러스터 구성 필요 여러 대의 서버를 하나의 풀로 관리 가능 새로운 서버가 추가됐을 때 발견 하고 관리 컨테이너를 서버에 할당 할 때 스케줄러와 로드밸런싱 문제 해결 대표적인 도커 제공 클러스터 엔진 실습. 가상머신 2대와 컴퓨터 1대를 준비해서 본체(Manager 역할) 나머지 2대의 가상머신을 다른 node 역할로 설정. 먼저 Manager 역할을 할 컴퓨터에서 Swarm이 실행중인지 확인(예전 Docker 버전에서는 따로 설치해야 했지만.. Docker 4년 전
Docker volume 컨테이너는 여러개의 레이어로 구성 되어있다. 컨테이너 레이어의 데이터는 컨테이너 를 삭제할 경우 레이어까지 함께 삭제되어 복구가 불가능 하기 때문에. 따로 볼륨을 구성해서 컨테이너가 삭제 되더라도, 그 데이터는 볼륨안에 따로 저장해놓는 것이 바람직 하다. 볼륨을 호스트 pc에 생성하고 그것을 공유한다거나, 하나의 볼륨 컨테이너를 만들고 그것들을 공유하거나, docker 자체에서 제공하는 볼륨 기능을 활용하는 기능이 있다. 볼륨을 활용하는 방법에는 (1) 호스트 볼륨 공유 호스트와 저장장소를 공유한다. 사용법 : -v 옵션 docker run -it --name [컨테이너이름] -v [호스트pc 공유 디렉토리]:[생성할 컨테이너에서 마운트할 디렉토리(생성)] [이미지:버전] ex) centos7 컨테이너를.. Docker 4년 전
Docker 컨테이너 관리 명령어 (이론) 1. 컨테이너 이미지를 어떻게 사용하는가? 이미지 검색 docker search [옵션] 이미지 다운로드 docker pull [옵션] 이미지 목록 출력 docker images 다운받은 이미지 상세보기 docker inspect [옵션] 이미지 삭제 docker rmi [옵션] docker inspect 명령어는 너무 많은 정보가 표현 되기에 alias를 활용해 쉽게 변수로 등록해서 사용하면 편하다. ex) docker inspect --format '{{.NetworkSettings.IPAddress}}' [컨테이너] 하지만 명령어를 저렇게 치는것은 상당히 귀찮은 일이기 때문에 alias를 사용해 쉘에 변수로 등록해서 사용하는것이 편리하다. ex)alias dcip="docker inspect --f.. Docker 4년 전
Docker 컨테이너 기본조작 명령어 1. 컨테이너 실행 및 중지 1) 실행 docker run -it --name [Repository] [image name] : [version] * d 옵션을 줄 경우 백그라운드로 실행 * it 는 옵션은 특히 컨테이너의 쉘(shell)이나 CLI 도구를 사용할 때 매우 유용하게 사용됩니다. ex) docker run -it --name centos7 centos:7 bash // centos7의 이름을 지정, centos:7의 bash 쉘을 실행시켜라. 2) 중지 실행된 터미널에서 exit 또는 Ctrl + d 컨테이너 중지 및 빠져나오기 실행된 터미널에서 Ctrl + p,q 컨테이너 중지하지 않고 빠져나오기 docker ps 명령어를 사용해 확인해 보니 시작했던 컨테이너가 중지되지 않고 up상태인것.. Docker 4년 전
Docker Repositry 운영 1. Public Repository 이용 hub.docker.com 에서 gnu 환경으로 확인 확인 하지않고, cli 환경에서 목록을 보고 싶을 때 docker search : 이미지 검색 하는 명령어 docker pull [이미지명] : hub.docker.com 의 repository에서 이미지 다운 실행. 2. Private Registry 운영하기 private registry를 이용하는데 도와주는 컨테이너 공식 문서에 써있는데로 실행 해줘보자. docker run -d -p 5000:5000 --restart always --name registry registry:2 localhost 의 5000번 포트를 이용해서 개인 레지스트리를 사용할 수 있다. 동작중인 ps 확인 잘 실행 중인 것을 확.. Docker 4년 전
컨테이너 보관 창고 - 이론 1. 컨테이너 보관 창고(Registry)란? Registry : 컨테이너 이미지를 저장하는 저장소(여러 형태의 이미지가 모여있는 저장소) Docker Hub : hub.docker.com Private Registry : 사내의 컨테이너 저장소 (혹은 개인적인 저장소) 2. docker hub(Registry)를 사용하고 싶다. http:hub.docker.com image 종류 : 1) Official images (docker.com이 직접 관리하는 이미지 컨테이너들) 2) Verified Publisher (Vendor가 제공해주는 이미지들 Oracle, MYsql 등등) etc. 이미지 검색 docker search [keyword] 3. Private Registry를 구축하고 싶다. dock.. Docker 4년 전
Docker 컨테이너 만들기 - 실습 1. nodejs 애플리케이션 컨테이너 만들기 nodejs application 소스코드 만들기. (nodejs 사이트에서 간단하게 가져와서 수정해서 쓸 수도 있고 직접 작성 해 줘도 된다. 간단하게 웹 서비스를 지원 해주는 소스 코드를 Copy & Paste 했다.) 1) 간단하게 파일을 모아놓을 디렉토리 생성 /hellohangil 2) 소스코드 파일 생성 vi hello.js 3) Docker file 생성 기본 Base운영환경은 node:12로 빌드 시 hello.js 파일을 / 최상위 디렉토리로 복사. 컨테이너 동작시 자동으로 node, /hello.js 실행. 4) Docker file 빌드 docker build -t hellohengil . 5) 확인 docker images 2. 우분투 .. Docker 4년 전
Docker 컨테이너 만들기 (이론) 1. 무엇을 컨테이너로 만드는 것인가? *컨테이너 : 개발할 애플리케이션(실행파일)과 운영환경이 모두 들어있는 독립된 공간 컨테이너로 만드는 것은 개발할 프로그램과 실행환경을 모두 컨테이너로 만든다. MSA(Micro Service Architecture)환경의 Polyglot 애플리케이션 운영 *Polyglot Programming : 다양한 언어를 사용하여 프로그래밍 하는 것. *MSA 마이크로 서비스 아키텍처 기존 모놀리식 아키텍처와 다르게 비즈니스 기능마다 서버를 분리 하였고 분리된 서비스 마다 다른 기술이 적용 가능하다. 각각의 Aplication Service 에 맞춰 Container를 만들어 낸다. (컨테이너를 만들고 관리하기 위해 보편화된 오픈소스가 Docker 이다.) 2. 컨테이너는 .. Docker 4년 전
Docker 실습 (이미지 검색, 이미지 다운로드) 컨테이너 = 다른 프로그램과 분리된 환경에서 실행. (실행 한다면 프로세스 read-write 가능) 컨테이너 이미지 = 컨테이너 실행을 위해 미리 준비돼야 함 (read-only만 가능 하나의 파일일 뿐) 허브 = 컨테이너 이미지가 저장된 창고(hub.docker.com) 호스트 컴퓨터에서 도커허브에 컨테이너 검색 및 요청 -> 컨테이너 이미지 다운로드 -> 컨테이너 실행 컨테이너 이미지는 여러개의 레이어로 이루어져 있다. 왜냐하면 그 이미지를 동작하기 위해 서로 의존할 것들이 필요한 파일들을 설치해 줘야 하기 때문에 그 한개 한개의 파일을 레이어 라고 부른다. 설치를 진행 하기 전 레이어가 저장 돼 있는 폴더인 /var/lib/docker/overlay2 디렉토리 확인 그 전에 시험상 생성해 놓은 이.. Docker 4년 전
Docker 설치(CentOS,Ubuntu) Repository를 이용해서 설치 CentOS와 Ubuntu 두 컴퓨터에 다가 도커를 설치할 것이다.(https://docs.docker.com) 참조 1. Ubuntu 환경에서 설치 Repository(저장소)를 이용한 설치 순서 1. 미리 설치해 둬야할 프로그램 설치(update 후 추가 설치) 2. 도커 GPG 인증키 추가.(curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg) 3. 레포지토리 등록(echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-ke.. Docker 4년 전