본문 바로가기

Docker

(13)
[Docker] 도커 컨테이너 다루기 : 도커 컴포즈 개념 및 사용법 도커 컴포즈 (Docker Compose) 도커 서버에서 여러 컨테이너를 프로젝트로 묶어서 관리하게 위해 사용됩니다. 단일 서버에서는 도커 엔진의 도커 커맨드라인 명령어를 사용하여 도커 컨테이너를 실행할 수 있었습니다. 하지만 도커 컴포즈를 사용하게 되면 docker-compost.yml YAML 파일을 통해서 컨테이너들을 명시적으로 관리할 수 있으며, 컨테이너들을 프로젝트 단위로 묶어서 관리할 수도 있기 때문에 더 격리된 환경을 제공할 수 있습니다. 이 외에도 프로젝트 단위로 도커 네트워크와 불륨 관리가 가능하며, 프로젝트 내 서비스 간 의존성 정의가 가능하며 디스커버리 자동화, 손 쉬운 컨테이너 수평 확장이 쉽게 가능합니다. 주요 사용 목적 로컬 개발 환경 구성 - 특정 프로젝트의 로컬 개발 환경 구..
[Docker] 도커 컨테이너 다루기 : 도커 데몬 디버깅 (docker system 명령어 사용법) 해당 글에서는 docker system 명령어 사용법과 docker stats 명령어 대해서 설명하였습니다. 해당 명령어들을 알고 있다면 도커 운영 시, 도커 데몬에 어떠한 문제가 생겼을 때 문제를 해결할 수 있는 방법이 될 수 있습니다. # docker system -h Flag shorthand -h has been deprecated, please use --help Usage: docker system COMMAND Manage Docker Commands: df Show docker disk usage events Get real time events from the server info Display system-wide information prune Remove unused data Run..
[Docker] 도커 이미지 다루기 : 도커 허브 저장소 이용 도커 이미지를 사용함에 있어서 혼자 사용하기 보다는 조직 내에서 함께 도커 기반의 컨테이너 서비스를 운영하는 경우가 많기 때문에, 이미지에 대한 관리와 공유가 중요하다. 이미지 관리 및 공유를 도와주는 장치가 이미지 저장소이다. 가장 대표적인 이미지 저장소 어플리케이션으로 도커 허브 저장소가 있다. [도커 허브 공식 사이트] https://hub.docker.com/ Docker Hub Container Image Library | App Containerization Build and Ship any Application Anywhere Docker Hub is the world's easiest way to create, manage, and deliver your team's container ap..
[Docker] 도커 이미지 다루기 : 이미지 압축파일로 저장 및 불러오기 도커 이미지파일을 압축파일로 저장하고 불러오는것은 인터넷이 되지 않는 환경에서 자주 활용할 수 있다. 혹은 이미지파일을 온라인 상에 올리지 않고 특정 서버나 사람에게 전달해주기 위한 목적으로 사용할 수 도 있다. 이미지 압축파일로 저장 SAVE 명령어 사용 -o 옵션 : out-file 지정 (어떤 파일 경로로 해당 tar 압축파일이 저장될지를 지정) // 이미지를 tar 압축파일로 저장한다. # docker save -o [OUTPUT-FILE] IMAGE ex) ubuntu:focal 이미지를 ubuntu_focal.tar 압축 파일로 저장 # docker save -o ubuntu_focal.tar ubuntu:focal 이미지 압축에서 불러오기 LOAD 명령어 사용 -i : input-file 지..
[Docker] 도커 이미지 다루기 : Dockerfile 문법 Dockerfile 문법 도커 공식 홈페이지 문서 참조 https://docs.docker.com/engine/reference/builder/ Dockerfile reference Dockerfile reference Docker can build images automatically by reading the instructions from a Dockerfile. A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image. This page describes the com docs.docker.com 기본 형식 // 주석 사용법 # Comme..
[Docker] 도커 이미지 다루기 : 이미지 빌드 도커 이미지 구조 도커 이미지 구조는 새로운 변경사항이 하나씩 쌓이는 레이어 아키텍쳐 구조로 되어있다. 위의 예제를 보았을때 nginx 이미지의 경우 ubuntu 이미지를 기반으로 만들어졌기 때문에 ubuntu의 레이어가 그대로 있는 상태에서 nginx 이미지를 구성하기 위한 레이어들이 쌓이게 된다. web app 이미지의 경우 구성된 nginx 이미지 위에 web app의 레이어가 쌓여 만들어지게 된다. 위의 예제는 web app image를 기반으로 컨테이너를 생성하였다. 컨테이너가 실행될 때 web app image layer가 복사되어 생성되는데 해당 레이어는 Read Only로 생성된다. 따라서 이미지 레이어에 있는 파일들은 변경이 불가능하다. 이와 함께 컨테이너가 생성될 때 마다 해당 컨테이너..
[Docker] 도커 컨테이너 다루기 : 로그 STOUT(표준출력) / STDERR(표준오류) 어플리케이션에서 로그를 다룰 때, 어플리케이션 해당 언어 프레임워크에서 제공해주는 로그 프레임워크를 사용하여 표준 출력으로 로그를 내보내거나, 혹은 syslog로 내보내거나, 혹은 엘라스틱서치와 같은 외부 저장소로 보내는 등 다양한 방식으로 어플리케이션 단에서 구현이 되었다. 도커 컨테이너에서 로그를 다루기 위해서는 어플리케이션에서 로그를 표준 출력(STOUT)과 표준오류(STDERR)로 로그를 내보내는것을 표준으로 삼아야 한다. 어플리케이션 컨테이너 단에서 표준 출력(STOUT)과 표준오류(STDERR)로 로그를 내보내게 되면 도커가 해당 표준 출력 오류로 내보내지는 오류를 쌓아서 로깅 드라이버(logging driver)가 처리할 수 있도록 한다. 도커..
[Docker] 도커 컨테이너 다루기 : 볼륨 도커 레이어 아키텍처 1. Image Layers docker build -t app [경로] -> docker file을 기반으로 도커 이미지가 빌드됨 이미지를 분석해보면 레이어 구조로 되어있음 Docker file 내에 작성되어 있는 여러 명령어들이 순차적으로 layer가 쌓이듯이 저장됨 = 도커 컨테이너 이미지의 경우 layer 구조를 가짐 장점 : 이미지에 특정 변경이 필요할 경우, 변경할 layer 부분만 변경하여 업데이트 하면 됨 2. Container Layers docker run app -> 컨테이너가 실행됨 컨테이너의 경우 두가지의 레이어를 가짐 1) Image Layer : 이미지를 불러들여 사용하는것이기 때문엔 항상 동일. 읽기전용으로 사용되기 때문에 변경 불가능 2) Contain..