Study: DeveloperTools(DevTool)/DevTool: Container

    [Docker] docker-compose에서 links와 depends_on의 차이점

    💡 본 문서는 'docker-compose에서 links와 depends_on의 차이점'에 대해 정리해놓은 글입니다. Docker 컨테이너는 시스템에서 격리된 프로세스로 실행됩니다. 이때 Docker에서 지원하는 프로세스간 통신하기 위한 방법인 links와 depends_on에 대해 정리하였으니 참고하시기 바랍니다. 1. docker-compose에서 links와 depends_on의 차이점 1.1 docker-compose: depends_on depends_on 은 서비스가 시작되고 중지되어야 하는 순서를 설정하는 Docker Compose 키워드입니다. 예를 들어 웹 앱 이미지로 구축할 웹 애플리케이션이 Postgres 컨테이너 이후에 시작되기를 원한다고 가정합니다. docker-compose.ym..

    [Docker] 컨테이너 내부 파일에 접근하는 4가지 방법

    💡 본 문서는 '컨테이너 내부 파일 접근 방법'에 대해 정리해놓은 글입니다. 컨테이너를 실행했거나 실행할때, 컨테이너의 내부 파일에 접근하기 위해 사용할 수 있는 방법을 정리하였으니 참고하시기 바랍니다. 1. 컨테이너 내부 파일 접근 방법 도커는 컨테이너 내부에서 컨테이너 외부의 파일을 사용할 수 있는 방법으로 크게 4가지를 제공합니다. 1.1 docker cp docker cp : 형식으로 호스트에 위치한 파일을 구동 중인 컨테이너 내부에 복사 컨테이너에 임시로 필요한 파일이 있는 경우 단편적으로 전송하기 위해서 사용 컨테이너에 저장돼있는 설정 및 로그를 추출해 확인하는 목적으로 사용 1.2 Dockerfile ADD 이미지를 생성할 때 Dockerfile 내부의 ADD라는 구문으로 컨테이너 내부로 복..

    [Docker] 도커 파일 시스템, 스토리지 정리 (feat. docker volume)

    💡 본 문서는 'Docker 파일 시스템, 스토리지'에 대해 정리해놓은 글입니다. 도커의 이미지 구성이 어떻게 되는지 알고, 이미지를 공유하여 컨테이너를 만들었을 때 컨테이너 간 데이터 공유가 이루어지는 과정에 대해 정리해놓았으니 참고 부탁드립니다. 1. Docker File System 1.1 Image/Container의 Layer Structure 1.1.1 Image 도커 이미지는 Dockerfile 로 만들어진 여러 레이어로 이루어져 있고 각 레이어는 읽기만 가능(Read-only)합니다. 이미지를 가지고 새로운 컨테이너를 생성하면 읽고 쓸 수 있는(Readable and Writable) 레이어가 추가되는데 이를 컨테이너 레이어(Container Layer)라고 합니다. 컨테이너를 가지고 작업..

    [Docker] 도커 컨테이너를 이루는 기술: namespace, cgroups, network

    💡 본 문서는 'Docker 컨테이너를 이루는 기술: namespace, cgroups'에 대해 정리해놓은 글입니다. Docker는 Virtual Machine(VM)처럼 OS level에서 격리(isolation)하는 것이 아닌 Process level로 격리합니다. 이러한 기술은 Docker Engine에서 이루어지며, 이는 리눅스 커널 기술인 namespace, cgroups를 기반으로 구성되었습니다. 이번 포스팅에서는 Docker의 기반 기술인 namespace, cgroups에 대해 정리하였으니 참고하시기 바랍니다. 1. Docker Engine, 컨테이너를 이루는 기술 Docker는 Virtual Machine(VM)처럼 OS level에서 격리하는 것이 아닌 프로세스 단위로 격리합니다. 이러..

    [Docker] 도커 컨테이너, 가상화, 내부구조 (feat. VM vs Container)

    💡 본 문서는 'Docker 컨테이너, 가상화, 내부구조'에 대해 정리해놓은 글입니다. 기본적으로 Docker가 생겨난 배경부터 Docker의 기반 기술에 대해 상세하게 정리해놓은 글이니 참고부탁드립니다. 1. 컨테이너 기술의 탄생 배경 1.1 가상화 기술: Virtual Machine, Hypervisor... 1.1.1 Virtual Machine(이하 VM) 가상화 기술 발전 이전에는 하나의 서버에 하나의 애플리케이션만 구동시킬 수 있었습니다. 하나의 서버에 하나의 OS, 프로그램 만을 운영하기 때문에 안정적이었지만, 남는 서버 자원을 그대로 방치시키기 때문에 비효율적인 경우가 많았습니다. 이런 비효율성을 극복하기 위해 등장한 것이 '가상화 기술'이며, 이는 물리적인 하드웨어 자원을 논리적인 리소스..