devops(27)
-
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 -
docker file 작성
Docker file 작성 이미지 생성하는 방법 개발한 애플리케이션을 컨테이너화할 때 이전까지는 아래의 방법과 같이 진행했습니다. 아무것도 존재하지 않는 이미지(ubutu, Centos 등)로 컨테이너를 생성 애플리케이션을 위한 환경을 설치하고 소스코드 등을 복사해 잘 작동하는 것을 확인 컨테이너를 이미지로 커밋(commit) 이 방법을 사용하면 어플리케이션이 동작하는 환경을 구성하기 위해 일일이 패키지를 설치하고 코드를 복사해야합니다. 물론 직접 컨테이너에서 애플리케이션을 구동해보고 이미지로 커밋하기 때문에 정확하다는 장점이 있습니다. docker는 위 과정을 손쉽게 기록하고 수행할 수 있는 build 명령어를 제공합니다. 하나의 파일에 설치해야하는 패키지, 소스코드, 명령어 등을 build 명령어를 ..
2020.01.31 -
docker image 배포
docker image 배포 이전 글과 같이 image를 배포하기 위해 save 및 load를 사용하여 tar파일로 만들어 배포할 수 있지만 옮기는데 귀찮고 파일이 크거나 도커 엔진의 수가 많다면 이미지를 파일로 배포하기 어렵습니다. 또한 도커의 이미지 구조인 레이어 형태를 이용하지 않으므로 비효율적입니다. 이를 해결하기 위한 방법은 1. docker hub private 제한이 있지만 public으로 단순하게 psuh, pull 하면되어 매우 간단하게 사용할 수 있습니다. 이미지 저장소(Reooisutiry) 생성 docker hub에 접속한 다음 https://hub.docker.com/ 로그인 하면 아래와 같이 보입니다. 여기서 create Repository를 눌러주면 아래와 같이 이름, 설명등과..
2020.01.31