Docker Registry -> private 레지스트리 servera 와 serverb 두개의 노드를 사용하여 테스트를 진행 servera에 private 레지스트리 설치되어 있음 serverb는 client 역할 원격 Docker Registry 설정 및 사용하기 servera 에서 Registry 를 설정하고 serverb 에서 이를 테스트하는 순서로 진행 Servera node 에서 Docker Registry 시작 docker run -d -p 5000:5000 \ > -v /var/lib/registry:/var/lib/registry:Z \ > --restart=always --name registry registry:2 private registry의 기본 포트는 5000 -v /var/..
Portainer - 도커 및 쿠버네티스를 관리하기위한 GUI 이미지이다. - Docker 컨테이너 관리부터 컨테이너 내부에 들어가서 명령어, 컨테이너 로그들을 쉽게 확인할 수 있기 때문에 사용하기 매우 편리 - Portainer 의 경우 도커 관리툴 중에서 오픈소스이고 가장 많이 사용되는 툴 1. Potainer 설치하기 # docker volume create portainer_data # docker run --name potainer -d -p 9000:9000 \ > -v /var/run/docker.sock:/var/run/docker.sock:Z \ > -v portainer_data:/data:Z --restart=always portainer/portainer Portainer 설치에 앞..
목차 Dockerfile - Dockerfile 은 필요한 최소한의 패키지를 설치하고 동작하기 위한 자신만의 설정을 담은 파일 - 이 파일로 이미지를 생성(빌드) 가능 - 패키지 설치, 환경 변수 변경, 설정 파일 변경 등 다양한 작업을 하나하나 컨테이너를 만들고 설정을 적용할 필요 없이 Dockerfile 을 사용하여 적용할 수 있고, 사용자의 실수로 인한 설정 누락 예방 등 다양한 장점이 있다. Dockerfile 이미지 만들기 명령어 docker build -t 새로운이미지이름 도커파일의경로 Dockerfile 문법 주석 (Comments) # 주석 시작 # 이 문장은 제외됨 FROM nginx:alpine ~~ FROM - Base Image - 새 컨테이너 이미지는 기존의 Base 이미지에서 시..
목차 Docker Images - Read-Only Template - 이미지는 Container를 만들기 위해 필요. 이미지 그 자체는 의미 없음 - 이미지는 다른 이미지를 기반->이미지는 여러개의 이미지를 포함할 수 있다 - 사용자 자신의 이미지를 만들거나 다른 사용자가 생성하여 레지스트리에 게시한 이미지를 사용가능 - 고유한 이미지를 빌드하려면 이미지를 만들고 실행하는 데 필요한 단계를 정의하기 위한 간단한 구문을 사용하여 Dockerfile 만든다 - Dockerfile의 각 명령은 이미지에 레이어를 생성. Dockerfile을 변경하고 이미지를 재구성하면 변경된 계층만 재구성됨 - 이미지는 매우 가볍고, 작고, 빠르게 만들어야 됨 Docker 컨테이너: 여러 image(이미지, 하나의 패키지로 ..
목차 Docker Volume • container 안의 파일 변경 사항을 UnionFS을 통해 관리 • UnionFS은 이미지 layer와 write layer를 합쳐 container의 데이터 관리하는 데, container 삭제 시 write layer도 삭제 • write layer에는 이미지 layer의 데이터에서 변경된 사항 저장하므로 write layer 삭제 시 데이터 사라짐(데이터 휘발성) • container의 데이터 휘발성 때문에 데이터를 container가 아닌 호스트에 저장 • 또는 container끼리 데이터 공유할 때 Volume 사용 => 컨테이너가 삭제되어도 컨테이너의 DATA가 삭제되지 않도록 사용! -> 영구적으로 data 저장 -> 데이터 공유 가능 -> 데이터 재사용..
도커 컨테이너란? 컨테이너란 • 개발자가 라이브러리 및 기타 종속성과 같이 필요한 모든 부분 응용 프로그램으로 패키징하고 하나의 패키지로 모두 전송 • 여러 컨테이너가 동일한 머신에서 실행될 수 있고 OS 커널 다른 컨테이너와 공유 • 각 컨테이너는 사용자 공간에서 격리된 프로세스로 실행 • Container 개념 탄생 = 1 + 2 1.기존 리눅스 환경: 자원 격리 사용(cgroup) + 특정 디렉토리 권한 제한(chroot) 격리 환경 2.변경 사항 레이어 형태로 저장하는 파일 시스템(Union Filesystem) • 격리된 공간에서 프로세스가 동작하게 해주는 가상화 기술 VM & Container 가상화 개발 => 하이퍼바이저 사용(ex. VMWare, openstack) => 결과물은 가상머신 ..
도커를 이해하기 위해서는 가상화에 대해 알아야 한다. 가상화부터 알아보자. 가상화란? 가상화란 한 대의 시스템 하드웨어를 논리적으로 분할하여 가상의 시스템을 생성 및 활용하는 개념이다. 가상 시스템들은 서로 독립적인 하나의 시스템으로 인지되기 때문에 주어진 하드웨어 리소스를 효율적으로 사용할 수 있다. 가상화에서 중요한 것은 두가지 단어이다. 1. 논리적 분할 2. 독립적 논리적 분할은 얼마든지 생성과 삭제가 쉽다는 것이다. 예를 들어, 물리 시스템은 마음대로 생성하거나 삭제하는것이 쉽지 않다. 하지만, 가상화 같은경우는 개념적으로 분할된 것이기 때문에 언제든 생성과 삭제가 가능하다. 독립적이라는 것은 가상화의 결과물들이 서로 간섭하지 않는다는 것을 말한다. 즉, 가상화된 시스템들은 서로 별개의 시스템으..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public int[] solution(int n, long left, long right) { int len = (int) right - (int) left; int[] answer = new int[len + 1]; int idx = 0; for (long i = left; i
목차 기본적으로 기억해야 하는 것 pull - run - exec docker pull : 이미지 다운 docker run : 컨테이너를 생성하고 실행 => 실행중인 컨테이너 생성 docker exec : 실행중인 컨테이너에 명령어 실행하기 도커의 기본 명령어 1. 컨테이너 생성 및 실행 1) 컨테이너 생성(중지된 상태) docker container create docker container create 이미지명 docker container create --name webserver -p 8080:80 httpd => webserver라는 이름의 contianer를 생성하는데 httpd 이미지를 이용하고 호스트의 포트는 8080이고 컨테이너의 포트는 80 container가 중지된 상태로 생성되기 때..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42747# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이해하는데 시간이 오래 걸린 문제 h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index라고 문제에 나와있다 이를 h번 이상 인용된 논문의 수 >= 현재요소의 인용횟수 라고 이해를 했다 그러나 이 문제는 이게 아니었다 논문의 개수보다 인용횟수가 더 커야했다 즉, >라는 것이다 이때 최대가 될수 있는 논문의 개수를 구하는 것..