본문 바로가기 메뉴 바로가기
Docker 컨테이너 외부 노출

도커는 기본적으로 컨테이너에 172.17.0.x 의 IP를 순차적 할당(내부 네트워크)을 받습니다. 외부로 컨테이너의 어플리케이션을 노출하기 위해서는 컨테이너IP 와 호스트IP를 바인딩 해야 합니다. 위 그림은 사용 예시입니다. -p [호스트 포트] : [컨테이너 포트] 다음은 호스트 7777 포트를 컨테이너의 80포트와 바인딩의 예입니다. 여러개의 포트노출을 위하여 -p옵션을 여러개 사용합니다. 도커 컨테이너 외부노출 아키텍처

Docker/Docker 네트워크 2019. 9. 18. 18:07
Docker network

Docker network docker0는 container가 통신하기 위한 가상 linux bridge 입니다. bridge는 기본적으로 L2 통신 기반이며, 만약 container가 하나 생성되면 이 bridge에 container의 interface가 하나씩 binding 되는 형태입니다. 따라서 container가 외부로 통신할 때는 무조건 docker0 interface를 지나야합니다. 만약 외부와 연결을 해야할 경우에는 호스트에 veth(=virtual eth)라는 네트워크 인터페이스를 생성하고 컨테이너의 eth와 연결이 됩니다. veth 인터페이스는 사용자가 직접 생성할 필요 없이 도커엔진에 의해 자동으로 생성이 됩니다. veth 인터페이스 뿐만 아니라 docker()라는 브리지도 있는데, ..

Docker/Docker 네트워크 2019. 9. 18. 17:56
CPU 자원관리

기본적으로 Docker 컨테이너는 호스트 머신의 CPU 자원을 제한없이 사용할 수 있습니다. 즉, 하나의 컨테이너가 수행될 때 CPU-Intensive 한 작업을 돌리면, 호스트 머신의 CPU 자원을 점유해버리는 상황도 발생할 수 있습니다. 이는 컨테이너간 독립적인 환경을 구축할 수 없음을 의미하기 때문에 CPU 사이클에 대한 쿼터(Quota)를 적용할 필요가 있습니다. Docker는 기본적으로 CFS 스케줄러를 사용하며, 버전 1.13이상에서 실시간 스케줄러를 이용할 수 있습니다. CFS 스케줄러를 이용하기 때문에 설정들이 CFS 스케줄러와 연관되어 있습니다. CPU에 대한 실시간 스케줄링은 다음과 같이 할 수 있습니다. cpu를 할당해서 sysbench 테스트를 진행해보겠습니다. cpu 0과 1, 2..

Docker/Docker 자원 관리 2019. 9. 18. 01:07
Docker 실습

여기서 다뤄볼 것은 아래와 같습니다. Docker 버전확인 pull 명령으로 이미지 받기 images 명령으로 이미지 목록 출력하기 run 명령으로 컨테이너 생성하기 ps명령으로 컨테이너 목록 확인하기 start 명령으로 컨테이너 시작하기 restart 명령으로 컨테이너 재시작하기 attach 명령으로 컨테이너에 접속하기 exec 명령으로 외부에서 컨테이너 안의 명령 실행하기 stop명령으로 컨테이너 정지하기 rm 명령으로 컨테이너 삭제하기 rmi 명령으로 이미지 삭제하기 Docker 버전확인 pull 명령으로 이미지 받기 images 명령으로 이미지 목록 출력하기 run 명령으로 컨테이너 생성하기 docker run 형식입니다. 여기서는 ubuntu이미지를 컨테이너로 생성한 뒤 ubuntu 이미지 안의..

Docker/Docker 기초 2019. 9. 17. 01:42
Docker의 구성

레이어 저장방식 도커 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 보통 용량이 수백메가에 이릅니다. 처음 이미지를 다운받을 땐 크게 부담이 안되지만 기존 이미지에 파일 하나 추가했다고 수백메가를 다시 다운받는다면 매우 비효율적일 수 밖에 없습니다. 도커는 이런 문제를 해결하기 위해 레이어layer라는 개념을 사용하고 유니온 파일 시스템을 이용하여 여러개의 레이어를 하나의 파일시스템으로 사용할 수 있게 해줍니다. 이미지는 여러개의 읽기 전용read only 레이어로 구성되고 파일이 추가되거나 수정되면 새로운 레이어가 생성됩니다. ubuntu 이미지가 A + B + C의 집합이라면, ubuntu 이미지를 베이스로 만든 nginx 이미지는 A + B + C + nginx가 됩니다. web..

Docker/Docker 기초 2019. 9. 14. 21:57
도커란?

Docker 정의 도커는 리눅스 컨테이너 기반으로 하는 오픈소스 프로젝트이며, 반가상화보다 경량화된 방식입니다(운영체제 수준의 가상화). 또한 하드웨어를 가상화하는 계층이 없습니다. 네임스페이스, 컨트롤 그룹 같은 리눅스 커널 기능을 이용해서 운영체제 위에 컨테이너들을 생성하는 것입니다. 애플리케이션 실행에 필요한 것을 하나로 모아두고 그 이미지를 사용하여 다양한 환경에서 애플리케이션 실행환경을 구축 및 운용하기 위한 오픈소스 플랫폼입니다. 응용 프로그램을 개발, 배포 및 실행하기 위한 개방형 플랫폼입니다. 컨테이너란? host OS 상에 논리적인 구획(컨테이너)를 만들고, 애플리케이션을 작동하기 위해 필요한 라이브러리나 애플리케이션등을 하나로 모아, 별도의 서버인 것 처럼 사용할 수 있게 만드는 것. ..

Docker/Docker 기초 2019. 9. 10. 18:32
이전 1 다음
이전 다음

티스토리툴바

운영자 : 로또 세상
제작 : 아로스
Copyrights © 2022 All Rights Reserved by (주)아백.