프로그래밍 노트/도커

퍼시스턴스 데이터를 다루는 방법 도커 컨테이너가 실행 중에 작성 혹은 수정된 파일은 호스트 쪽 파일 시스템에 마운트하지 않으면 컨테이너가 파기될 때 호스트에서 함께 삭제된다. 즉, 상태를 갖는 애플리케이션을 운영하려면 새로운 버전의 컨테이너가 배포돼도 이전 버전의 컨테이너에서 사용하던 파일 및 디렉터리를 그대로 이어받아 사용할 수 있어야 한다. 이런 경우에 데이터 볼륨(data volumne) 이 사용된다. 데이터 볼륨 데이터 볼륨은 도커 컨테이너 안의 디렉터리를 디스크에 퍼시스턴스 데이터로 남기기 위한 메커니즘이다. (호스트와 컨테이너 사이의 디렉터리 공유 및 재사용 기능을 제공) 데이터 볼륨을 사용하는 방법은 아래와 같다. $ docker container run [options] -v 호스트_디렉터..
docker container prune # 1.13 docker rm $(docker ps -q -f status=exited) docker image prune # 1.13 - a, --all : 사용하지 않는 모든 이미지 제거 --filter : 조건 설정 -f, --force : 이미지를 강제로 삭제
Docker를 활용해서 nginx위에 vue를 올리는 프로젝트 셋팅을 하다가 아래와 같은 에러를 만났다. COPY failed: Forbidden path outside the build context ?? 으잉 이게 무슨에러일까 일단 나의 폴더구조는 아래와 같다. 텍스트로 표현하자면.. Vue project ㄴ docker ㄴ Dockerfile ㄴ src vue.config.js package.json 이런식이고 Dockerfile은 아래와 같다. FROM nginx:1.13 COPY ../dist/ /usr/share/nginx/html/ COPY etc/nginx/nginx.conf /etc/nginx/ COPY etc/nginx/conf.d /etc/nginx/conf.d/ CMD ["nginx..
Dockerfile 이란? 도커 이미지를 만들기 위해서는 Dockerfile이라는 이미지 빌드용 DSL(Domain Specific Language) 파일을 사용한다. 쉽게 말하면 이미지를 만들 때 필요한 설정파일이라고 보면 되겠다. 기본적으로 Dockerfile이라는 이름을 사용하고, 다른 이름을 사용하고 싶을 경우 -f옵션을 준다. Dockerfile 명령어 기본적인 명령어를 살펴보고, 예제를 통해서 더 공부해보자.(참고:https://docs.docker.com/engine/reference/builder/) FROM: 베이스 이미지를 지정한다. 이미지 빌드 시 여기에 지정된 이미지를 내려받는다. RUN: 컨테이너 안에서 실행될 명령어를 정의한다. CMD: 컨테이너 안에서 실행할 프로세스를 지정한다..
docker-compose.yml 작성법 알아보기 공식문서에 더 자세한 내용이 존재(https://docs.docker.com/compose/compose-file/) Top-level keys that define a section in the configuration file such as build, deploy, depends_on, networks, and so on, are listed with the options that support them as sub-topics. This maps to the : : indent structure of the Compose file. 기본구조 Docker Compose는 기본적으로 docker-compose.yml 파일을 설정 파일로 사용하는데 일반..
Docker Compose 도커는 복잡한 설정을 쉽게 관리하기 위해 yaml 방식의 설정파일을 이용한 Docker Compose라는 툴을 제공한다. (Docker for Mac을 설치했으면 자동으로 설치됨) Docker Compose를 이용하면 여러 개의 컨테이너(container)로 구성된 애플리케이셔을 하나의 파일에 정의해놓고 한 번에 올리거나 내릴 수 있음 Docker Compose 커맨드 사용법 Docker Compose의 커맨드는 공식 사이트에서 더 자세한 내용을 확인할 수 있다. (https://docs.docker.com/compose/reference/) 여러 개의 컨테이너(container)로 구성된 애플리케이션을 관리하기 위한 간단한 오케스트레이션(Orchestration)도구 dock..
https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html 위의 블로그에서 내용을 가져왔으며, 더 자세한 설명들이 포함되어 있습니다. 컨테이너 실행하기 컨테이너를 실행하는 명령어는 다음과 같다. $ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...] 자주 사용하는 옵션 -d : detached mode 흔히 말하는 백그라운드 모드 -p : 호스트와 컨테이너의 포트를 연결(포워딩) -v : 호스트와 컨테이너의 디렉토리를 연결 (마운트) -e : 컨테이너 내에서 사용할 환경변수 설정 --name : 컨테이너 이름 설정 --rm : 프로세스 종료시 컨테이너 자동 제거 -it : -i 와 -t 를 ..
컨테이너 목록 확인하기(ps) docker ps [OPTIONS] -a 옵션을 사용하면 종료된 컨테이너까지 보여진다. 컨테이너는 종료되어도 삭제되지 않고 남아있다. 종료된 건 다시 시작할 수 있고 컨테이너의 읽기/쓰기 레이어는 그대로 존재한다. 컨테이너 중지하기(stop) docker stop [OPTIONS] CONTAINER [CONTAINER...] 실행중인 컨테이너를 하나 또 여러개 (띄어쓰기로 구분)중지할 수 있다. docker stop ${MYSQL_CONTAINER_ID} 도커 ID의 전체 길이는 64자리지만, 명령어의 인자로 전달할 때 전부 입력하지 않아도 된다. 압부분이 겹치지 않는다면 1-2자만 입력해도 된다. 컨테이너 제거하기(rm) docker rm [OPTIONS] CONTAINE..
도커란? 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 컨테이너 : 다양한 OS에 여러 application이 올려져 있는 것 . 서버에서도 다양한 OS환경, 여러 프로그램들을 화물과 비유하여 컨테이너에 실어 여러 곳으로 운반하여 배포할 수 있다는 개념에서 비슷하다. 컨테이너와 VM(Virtual Machine)은 무엇이 다를까? 컨테이너는 같은 kernel을 공유하는 반면, Virtual Machine의 경우 Hypervisor을 통해 각 독립된 커널 공간을 가진 OS를 생성해 가상화 기능을 제공해준다. => 따라서 컨테이너가 VM보다 가볍다. Virtual Machine VM은 호스트 OS 위에 게스트 OS를 가상화 하여 사용하는 방식이다. 게스트 OS는 호스트 OS의 자원을 할당받아 Hyper..
깡냉쓰
'프로그래밍 노트/도커' 카테고리의 글 목록 (2 Page)