devops/docker(16)
-
docker compose yaml 파일 작성
docker compose yaml 파일 작성 (1) 버전 정의 YAML 파일 포맷에는 버전이 여러개 있는데 compose version 1.10 이상부터는 사용할 수 있는 yaml 버전을 3으로 설정합니다. 그리고 버전 3은 docker swarm모드랑 호환되기때문에 좋습니다. 버전은 일반적으로 YAML 파일의 맨 윗부분에 명시합니다. version: '3.0' (2) 서비스 정의 서비스는 도커 컴포즈로 생성할 컨테이너 옵션을 정의합니다. 이 항목에 쓰인 각 서비스는 컨테이너로 구현된다. 이 컨테이너들은 하나의 프로젝트로서 도커 컴포즈에 의해 관리됩니다. 서비스의 이름은 services의 하위 항목으로 정의하고 컨테이너의 옵션은 서비스 이름의 하위 항목에 정의합니다. services: 컨테이너1: im..
2020.02.08 -
Docker compose
Docker Compose 여러개의 컨테이너가 하나의 서비를 운영하기 위해서 여러번의 run 명령어를 사용해주어야합니다. 예를들어 node webServer를 사용하는데 DB까지 사용한다면 node서버를 run하고 DB 서버를 run해야합니다. 매번 이렇게 run하여 컨테이너를 만들기 귀찮습니다. 이런 문제를 해결하기 위해 Docker는 여러 개의 컨테이너를 하나의 서비스로 정의해 컨테이너 묶음으로 관리할 수 있도록하는 기능을 제공해줍니다. 이를 Docker Compose라고합니다. 개발과 CI를 할 수있게 여러개의 container를 하나의 묶음으로 다룰 수 있는 환경을 제공합니다. Docker Compose는 여러 개의 컨테이너의 옵션과 환경을 정의한 파일을 읽어 container를 순차적으로 실행합..
2020.02.08 -
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