분류 전체보기(472)
-
docker 스웜
스웜 클래식과 도커 스웜모드 스웜 클래식과 스웜 모드는 여러 대의 도커 서버를 하나의 클러스터로 만들어 컨테이너를 생성하는 여러 기능을 제공합니다. 유동적으로 서버에 붙여서 확장시킬 수 있고 쉽게 관리할 수 있습니다. 도커 스웜에는 두 가지 종류가 있습니다. 첫 번째는 도커 버전 1.6 이후부터 사용할 수 있는 컨테이너로서의 스웜이고 두번째는 도커 버전 1.12 이후부터 사용할 수 있는 도커 스웜모드이다. 첫 번째를 스웜 클래식, 두 번째를 스웜 모드라고 부르겠습니다. 두 기능은 이럴때 구분하여 실행합니다. 스웜 클래식 여러 대의 도커 서버를 하나의 지점에서 사용하도록 단일 접근점을 제공합니다. docker run, docker ps 등 일반적인 도커 명령어와 도커 API로 클러스터의 서버를 제어하고 관..
2020.02.04 -
docker swarm이란??
docker swarm 지금까지 사용했던 docker들은 하나의 호스트를 기준으로 합니다. 이전의 모든 명령어 docker ps 명령어는 하나의 도커 엔진에 존재하는 컨테이너의 목록을 출력하며 create. run 명령어 또한 하나의 도커 엔진에 컨테이너를 생성합니다. 그러나 실제로 서비스 운영환경에서 도커를 운영한다면 조금 이야기가 달라집니다. 하나의 호스트 머신으로는 cpu나 메모리. 용량같은 자원들이 제한적이기 때문에 비싼 서버를 사면 되긴 되지만 비용이나 확장성 측면에서 힘듭니다. 이를 해결하기 위해 가장 많이 사용되는 방법은 여러 대의 서버를 클러스터로만 들어 자원을 병렬적으로 확장하는 것입니다. 위와 같이 16GB의 메모리가 탑재된 서버 3대에 docker엔진을 설치해 실제 운영 환경에서 사용..
2020.02.04 -
Docker 구조
docker의 구조 도커를 사용할 때 마다 docker라는 명령어를 사용했습니다. docker는 실제로 아래와 같은 위치에 있습니다. 이번에는 docker 프로세스를 확인해봅시다. docker 프로세스 뿐만 아니라 dockered라는 프로세스도 실행되고 있습니다. 이는 docker 명령어가 실제 도커 엔진이 아닌 클라이언트로서의 도커이기 때문입니다. 도커는 크게 두개로 나누어집니다. 하나는 클라이언트로서의 도커 다른 하나는 서버로서의 도커입니다. 실제로 컨테이너를 생성하고 실행하며 이미지를 관리하는 주체는 도커서버입니다. 이는 dockerd 프로세스로서 동작합니다. 다른 하나는 도커 클라이언트입니다. 도커 데몬은 API 입력을 받아 도커 엔진의 기능을 수행합니다.이 API를 사용할 수 있도록 CLI를 제..
2020.02.04 -
Dockerfile 명령어
ENV: Dockerfile에서 사용할 환경변수를 설정합니다. 설정한 환경변수는 ${ENV_NAME} 또는 $ENV_NAME의 형태로 사용할 수 있습니다. FROM ubuntu:14.04 ENV test /home WORKDIR $test // WORKDIR /home RUN touch $test/mytouchfile test /home으로 지정했다. container에 접속 후 echo $test를 통해 확인할 수 있습니다. container를 시작할 때 Dockerfile에 적힌것과 다르게 값을 줄 수 있습니다. docker run -it --name test \ -e test=newFolder \ 이미지이름 /bin/bash VOLUME 빌드된 이미지로 컨테이너를 생성했을 때 호스트와 공유할 컨테이..
2020.02.04 -
docker build 과정
docker build 과정 docker build -t mybuild:0.0 ./ 이전에 우리가 build를 할 때 위와 같은 명령어를 사용했다. 우선 docker는 위와 같은 명령어로 build를 시작하면 build context를 읽어 들입니다. build context는 이미지를 생성하는 데 필요한 각종 파일, 소스코드, 메타데이터 등을 담고 있는 디렉터리를 의미합니다. build 명령어 제일 마지막에 폴더위치 이다. 빌드 컨텍스트는 이미지에 파일을 추가할 때 사용됩니다. Dockerfile에서 이미지에 파일을 추가하는 방법은 ADD, COPY 등이 있습니다. 이 명령어들은 빌드 컨텍스트의 파일을 이미지에 추가합니다. 그래서 위의 경우에는 현재 폴더에 위치한 파일 test.html은 이미지의 폴더..
2020.02.02 -
dp 백준 9251 LCS
https://www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 이 문제는 두개의 문자열 중 동일한 부분수열 중 가장 긴 부분수열의 개수를 구하는 문제이다. 하나의 문자열을 베이스로 하나하나 동일한지 비교하며 표를 채워 나가면된다. if (letter1[i] == letter2[j] ) 이전 문자열 단계(이전 문자열의 최장 길이)에서 하나씩 증가하면 된다. 결국 ACAYKP와 CAPCAK는 K의 이전 ACAY와 CA..
2020.02.02