docker 14

Docker Network

Docker Network · Version : Docker Docker network는 컨테이너에 내부IP를 순차적으로 할당하고 컨테이너가 재시작 할 때마다 부여된 IP가 변경될 수 있다. 내부IP는 도커가 설치된 호스트의 내부망에서만 쓸 수 있기 때문에 외부와 통신을 하기 위해 veth* 라는 네트워크 인터페이스를 생성하여 외부와 통신한다. 도커가 설치된 호스트에서 ifconfig나 ip addr같은 네트워크 명령어로 인터페이스를 확인 해보면 실행중인 컨테이너 수 만큼 veth*로 시작하는 인터페이스가 생성된 것을 알 수 있다. · eth0 : 내부IP가 외부로 통신하기 위한 인터페이스로 호스트의 네트워크 이다. Eth0 네트워크가 각 veth*로 시작하는 네트워크와 통신한다. · docker0 : ..

Docker Compose-여러개의 컨테이너를 설정하고 생성하기

Docker Compose - 여러개의 컨테이너를 설정하고 생성하기 · Version : Docker Docker compose 명령은 여러개의 컨테이너 옵션과 환경을 정의한 파일을 읽어 컨테이너를 순차적으로 생성한다. 도커 컴포즈의 설정 파일(docker-compose.yml)은 run 명령어 옵션을 그대로 사용할 수 있으며 각 컨테이너의 의존성, 네트워크, 볼륨, 컨테이너 수 등을 유동적으로 조절할 수 있다. 예를 들어 파이썬 프로그램이 구동되는 컨테이너와 데이터를 저장하는 redis 서버, 웹서버 컨테이너를 실행한다고 할 때, 각각의 run 명령어 및 다양한 옵션으로 컨테이너를 생성하고 테스트하기에는 매우 번거롭다. 이때 도커 컴포즈를 활용하면 편리하다. 도커 컴포즈는 컨테이너 설정이 정의된 YAM..

Docker build-Dockerfile을 이용해서 이미지 생성하기

Docker build - Dockerfile을 이용해서 이미지 생성하기 · Version : Docker Docker build 명령은 dockerfile을 이용해서 이미지를 만드는 작업을 한다. dockerfile에는 이미지 생성시 필요한 작업이 스크립트로 작성되어 있다. · dockerfile : http://sqlmvp.kr/221465287824 아래 스크립트는 docker build를 사용해서 이미지를 생성한다. docker build -t makeimage:0.0 ./ · -t : 생성될 이미지의 이름을 설정. 위 스크립트에서는 makeimage:0.0 라는 이름의 이미지가 생성된다. -t 옵션을 사용하지 않으면 16진수 형태의 이름으로 이미지가 생성된다. · ./ : build 명령어 끝에..

Docker file-이미지 생성시 필요한 작업을 스크립트로 만들기

Docker file - 이미지 생성시 필요한 작업을 스크립트로 만들기 · Version : Docker 컨테이너를 생성하는 방법은 베이스 이미지를 이용하여 그 위에 다양한 애플리케이션을 설치하는 방법, 또는 이미 모든 환경이 구성된 컨테이너를 이미지로 만드는 방법 등 다양하다. · Docker Image생성 : http://sqlmvp.kr/221461385385 · Docker Image 추출 : http://sqlmvp.kr/221463568253 이번 포스트에서는 Dockerfile 을 이용해서 이미지를 생성하는 방법에 대해서 알아본다. Dockerfile은 이미지를 생성하기 위해 컨테이너에 설치해야하는 패키지, 추가해야하는 소스코드, 실행시 필요한 명령어, 쉘 스크립트 등을 하나의 파일로 생성한..

Docker Image 추출

Docker Image 추출 · Version : Docker 지난 포스트에 docker commit 명령을 사용하여 이미지를 생성한 다음 docker hub를 사용하여 이미지를 공유하는 방법에 대해서 다루었다. · 도커 이미지 생성 : http://sqlmvp.kr/221461385385 이번 포스트에서는 이미지 파일을 단일 바이너리 파일로 저장하는 방법과 저장된 이미지 파일을 로드 하는 방법에 대해서 살펴본다. 이미지를 파일로 추출하는 명령은 docker save이다. 이 명령을 사용하면 이미지의 모든 메타 데이터를 포함하는 하나의 파일로 추출할 수 있다. docker save [option] image [image] docker save busybox > busybokx.tar docker save..

Docker Image 생성 및 docker hub에 이미지 업로드

Docker Image 생성 및 docker hub에 이미지 업로드 · Version : Docker 컨테이너는 기본적으로 이미지를 사용하여 생성하며, 컨테이너 생성 후 사용자 변경 부분에 대해서는 필요에 따라 새로운 이미지를 만들어서 배포하거나 재사용하기도 한다. 이번 포스트에서는 docker hub에서 이미지를 다운로드 (Pull), 업로드(push) 및 이미지를 생성(commit)하는 방법에 대해서 알아본다. 도커는 기본적으로 docker hub(https://hub.docker.com/)라는 중앙 이미지 저장소에서 이미지를 내려 받는다. 아래 그림처럼 docker hub는 도커가 공식적으로 제공하는 이미지 저장소로 누구나 가입 후 이미지를 내려 받을 수 있다. 또한 사용자 이미지를 도커 허브에 업..

Docker Container 리소스 제한-CPU, Memory, Disk I/O 리소스 사용량 설정

Docker Container 리소스 제한 - CPU, Memory, Disk I/O 리소스 사용량 설정 · Version : Docker 컨테이너를 생성할 때 다양한 옵션으로 컨테이너 리소스 사용량을 조절할 수 있다. 아무런 옵션을 입력하지 않으면 기본적으로 호스트의 모든 리소스를 제한없이 사용할 수 있게 되어, 여러 컨테이너 실행 시 리소스 사용의 불균형이 발생할 수도 있다. 이번 포스트에서는 시스템 리소스(CPU, MEMORY, Disk I/O)를 컨테이너 실행시 설정하거나 이미 운영중인 컨테이너에서 리소스를 수정하는 방법에 대해서 살펴 본다. 현재 컨테이너에 설정된 리소스를 확인하는 방법은 docker inspect 명령을 사용한다. docker inspect 는 많은 항목을 나타내는데 “Host..

Docker Container 로그 확인-컨테이너에서 발생하는 다양한 로그 확인

Docker Container 로그 확인 - 컨테이너에서 발생하는 다양한 로그 확인 · Version : Docker 어떠한 시스템을 운영하던지 로그는 매우 중요하다. 로그는 현재 서비스의 다양한 상태를 확인할 수 있는 훌륭한 도구이기 때문이다. Docker의 경우 다양한 방법으로 컨테이너 로그를 남기는데, 이번 포스트에서는 컨테이너의 표준 입력(STDIN), 표준 출력(STDOUT), 표준 오류(STDERR) 로그를 별도의 메타데이터 파일로 저장하며 이를 확인하는 방법에 대해서 살펴본다. 컨테이너의 로그를 확인하는 명령은 docker logs를 사용한다. docker logs 명령은 컨테이너의 표준 출력을 표시함으로써 애플리케이션 상태를 알 수 있다. docker log [container name] ..

Docker Volume (도커 볼륨)-도커 볼륨을 이용해서 데이터 공유하기

Docker Volume (도커 볼륨) - 도커 볼륨을 이용해서 데이터 공유하기 · Version : Docker Docker 컨테이너가 삭제(또는 재시작)되면 컨테이너의 변경된 데이터가 함께 삭제된다. 데이터를 영속적으로 보존하기위해 volume 옵션을 사용하여 호스트 의 저장소를 마운트하여 사용한다. · Docker Volume (호스트 볼륨 공유) : http://sqlmvp.kr/221449590567 · Docker Volume (컨테이너 볼륨 공유) : http://sqlmvp.kr/221451346970 이번 포스트에서는 도커 자체에서 제공하는 볼륨 기능을 활용하는 방법에 대해서 알아본다. 볼륨을 생성할 때 플러그인을 사용하여 다양한 종류의 스토리지 백엔드를 쓸 수 있지만 이번 포스트에서는 ..

Docker Volume (컨테이너 볼륨 공유)-컨테이너 볼륨을 다른 컨테이너와 공유하기

Docker Volume (컨테이너 볼륨 공유) - 컨테이너 볼륨을 다른 컨테이너와 공유하기 · Version : Docker Docker 컨테이너가 삭제(또는 재시작)되면 컨테이너의 변경된 데이터가 함께 삭제된다. 데이터를 영속적으로 보존하기위해 volume을 사용하는데 지난 포스트에서는 호스트의 디렉터리를 컨테이너와 공유하여, 컨테이너의 데이터 파일을 호스트에 저장하는 방법에 대해서 알아 보았다. · Docker Volume (호스트 볼륨 공유) : http://sqlmvp.kr/221449590567 이번 포스트에서는 볼륨을 사용하는 컨테이너를 다른 컨테이너와 공유하는 방법에 대해서 살펴 본다. 컨테이너를 생성할 때 --volumes-from 옵션을 설정하면 -v 또는 -volume 옵션을 적용한 ..