본문 바로가기

Container

(21)
22. Docker Build Pipeline http://www.dockermall.com/take-the-last-pass-off-the-docker-container-test-is-fully-explored/
21. Docker CLI Dashboard 오픈 소스로 Docker 명령을 대화형으로 실행하거나 도커 이미지를 실시간으로 확인하는 도구로 아래 사이트에서 확인할 수 있다. https://github.com/goody80/docker_cli_dashboard 설치 $ curl -sL bit.ly/ralf_dcs -o ./dcs $ sudo chmod 755 ./dcs $ sudo mv ./dcs /usr/bin/dcs 구성 간단히 가용한 Docker 이미지와 실행중인 도커 컨테이너 및 모든 컨테이너가 표시되며 그 아래에 앞서 사용한 Docker 명령들을 CLI 모드에서 대화형으로 진행 할 수 있도록 되어있다.
20. Docker Machine Docker Machine Docker Machine 은 Docker Engine을 사용자 로컬 머신이 아닌 클라우드 컴퓨터, VM 을 비롯한 원격지의 서버에 설치할 수 있도록 돕는 도구이다. 1. Docker Engine이있는 호스트를 프로비저닝하고 관리하기위한 도구이다. 2. 일반적으로 로컬 시스템에 Docker Machine을 설치하고 원격지 서버에는 Docker Engine 을 설치하고 로컬과 통신한다. 즉 이 도구는 Virtual Machine 에 Docker 를 설치하고 이와 쉽게 통신하게 하는 프로그램이다. Docker Machine 은 결국 VM 에 Docker 를 설치하고 이를 원격으로 제어해 주는 개념이다. 그럼 지금부터 Docker Machine 을 어떻게 사용할 수 있는지 살펴보기 ..
19. Docker Private Registy 도커의 가장 큰 장점은 경량화된 가상화(격리)를 통한 어플리케이션 배포에 있지만, 도커의 다른 장점 중 하나는 도커에서 빌드한 이미지를 쉽게 공유할 수 있다는 점이다. 실제로 도커에서는 도커에서 생성한 이미지를 공유할 수 있는 공식 저장소를 제공하고 있다. 공식 저장소에는 프론트엔드 어플리케이션과 데이터베이스와 같은 백엔드 어플리케이션 등 이미 많은 도커 이미지들이 공유되고 있고 이러한 열린 공간을 통해서 오픈소스 어플리케이션을 공유하는 새로운 장을 열어놓고 있다. 하지만 개발하는 내용을 모두 공식 저장소에 저장하기 보다는 사적으로 이미지를 공유하는 공간을 가지고 사내망에서 이미지 공유가 되어야 하는 경우가 있을 수 있다. 이런 경우를 위해 도커에서는 도커 레지스트리를 제공하고 있다. Docker Reg..
18. Docker Security 앞서 03. Docker 시스템 에서 도커는 리눅스 기능중 하나인 네임 스페이스를 사용하여 사용하여 작업 공간 프로세스 ID 네트워크 등의 컨테이너 리소스를 분리한다고 하였다. 도커는 이 네임 스페이스 기능을 사용하여 분리된 환경을 컨트롤 하고 자신의 리소스를 가지게 된다. 그리고 호스트와 컨테이너에 실행된 프로세스가 잡히지만 네임 스페이스 공간에서 조회시와 도커 호스트에서 조회시 PID 가 서로 다르게 나오며 도커 프로세스 실행은 root 유저로 실행이 된다. User 설정 root 유저외에 다른 유저를 설정하고자 하면 docker run 시에 --user 로 실행할 유저 ID 를 입력하거나 도커 파일에 USER ID 를 정의하여 이미지를 빌드 후 실행시키면 아래와 같이 USER 를 설정할 수 있게 된..
17. Docker Volume 앞서 도커 스토리지 부분을 살펴보았고 컨테이너 레이어에 데이터는 컨테이너의 실행이 끝나 컨테이너가 삭제되면 사라진다고 하였다. 그렇다면 데이터를 보존하려고 한다면 어떻게 해야 할까? 컨테이너에 영구 볼륨을 추가해야 한다. 그리고 이것이 도커 볼륨이다. Docker Volume 도커 볼륨은 /var/lib/docker/volumes/ 라는 디렉토리를 만들고 이를 컨테이너 내부 디렉토리에 마운트 해준다. 도커 볼륨을 생성하지 않으면 임시 디렉토리 이름을 도커가 만들고 배치하며 도커 볼륨을 docker volume create 명령으로 만들수도 있다. Docker Data Volume 도커 컨테이너 생성시 -v 옵션에 '컨테이너 디렉토리' 를 제공하는 방식이다. 이 경우 도커는 호스트의 /var/lib/doc..
16. Docker Storage 이번장에서는 도커가 어디에 어떻게 데이터를 저장하는지, 컨테이너의 파일 시스템을 관리하는 방법을 살펴보자. File System 시스템에 도커를 설치할 때 시스템에 아래 폴더가 설치된다. 그리고 컨테이너와 관련된 모든 파일은 컨테이너 폴더에 저장되고 이미지와 관련된 파일은 이미지 폴더에 , 도커 컨테이너가 생성 한 모든 볼륨은 볼륨 폴더 아래에 생성된다. Layered architecture 도커는 이미지를 만들때 레이어 개념을 사용해서 데이터를 저장하고 다른 이미지를 만들때 저장한 캐시 레이어가 이미 있으면 이를 재사용한다. 컨테이너 실행시 이미지 레이어 정보는 Read Only 로 설정되고 더불어 컨테이너 레이어가 생성되며 이는 Read Write 레이어가 생성된다. 만약 사용자가 이미지 레이어에 있..
15. Docker Network DNS Docker DNS 브릿지 네트워크에 속한 컨테이너가 서로 통신할 때 사실은 도커 호스트에 생성한 DNS 서버를 통해 서비스의 이름을 관리해주며 각 컨테이너가 이 DNS 서버를 확인하여 다른 컨테이너와 통신할 수 있게 된다. Docker DNS Round Robin 결국 도커 호스트에 DNS 서비스가 있으므로 라운드 로빈 서비스를 이용할 수 있고 도커에서 이를 기본으로 제공한다. 라운드 로빈이란 하나의 도메인에 여러개의 IP 주소를 등록해 요청 순서대로 각각 다른 IP 주소로 보내 (즉 다른 서버로 접속시켜) 부하를 분산하는 기술이다. 즉 Docker 컨테이너를 만들 때 두 개 이상의 컨테이너에 동일한 네트워크 별칭을 할당 할 수있는 옵션이 있어 컨테이너가 클라이언트 요청에 응답 할 수 있다. 이를 확인..