티스토리 뷰

[DEV] 서버

리눅스 컨테이너 (LXC)

공부하는 규우82 2017.01.04 16:16

Docker를 학습하기 전 리눅스 컨테이너에 대한 이해가 필요하여 내용을 정리한다.


OS의 내부

 - 물리적 자원을 관리하는 커널 공간

 - 사용자 프로세스를 실행하는 사용자 공간


기존 가상화 기술

 - OS위에 또 하나의 OS가 동작

 - 호스트 OS와 게스트 OS를 완전 분리 할 수 있는 장점

 

LXC (리눅스 컨테이너)

 - 모든 프로세스는 호스트 OS에서 바로 시작

 - 일반적인 프로세스의 동작과 다른 점은 그 과정의 일부를 그룹화하고 다른 그룹이나 그룹에 속하지 않는 프로세스에서 단절된 공간으로 동작

 - 화물 컨테이너처럼 독립된 공간에 프로세스가 들어 있기 때문에 이 공간을 '컨테이너'라고 부른다.

 - 가상 머신 부팅 및 종료 개념이 없기 때문에 가상 환경의 시작과 종료가 빠름

 

기존의 가상화 기술들을 하드웨어 환경을 가상화하는데 비해 컨테이너 방식은 OS에서 관리되기 때문에 "OS 레벨의 가상화"라고 불리기도 한다.



[LXC 설치 및 실행]

테스트 환경은 ubuntu 14.04


설치

# sudo apt-get install lxc


네트워크 및 설정 확인

# lxc-checkconfig


컨테이너 생성

# sudo lxc-create -n test-container -t ubuntu

-n : NAME of the container

-t : Template to use to setup container

컨테이너가 생성되면 기본 계정 및 패스워드는 ubuntu/ubuntu 이다.


컨테이너 상태

# sudo lxc-ls --fancy


컨테이너 실행

# sudo lxc-start -n test-container -d

# sudo lxc-ls --fancy 실행하면 다음과 같이 test-container 상태가 RUNNING으로 되어 있는 것을 확인할 수 있다.

NAME            STATE    IPV4        IPV6  AUTOSTART

----------------------------------------------------

test-container  RUNNING  10.0.3.173  -     NO


컨테이너 중지

# sudo lxc-stop -n test-container


컨테이너 삭제

# sudo lxc-destroy -n test-container


컨테이너 접속

# sudo lxc-console -n test-container

테스트를 위한 nginx 설치하기

sudo apt-get install nginx

sudo service nginx start

sudo apt-get install wget vi


포트 포워딩

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9090 -j DNAT --to 10.0.3.173:80


컨테이너 제한 추가

/var/lib/lxc/test-container 디렉토리의 config 파일에서 관리


참고 URL

https://www.digitalocean.com/community/tutorials/getting-started-with-lxc-on-an-ubuntu-13-04-vps

'[DEV] 서버' 카테고리의 다른 글

Google App Engine 환경에 Spring Boot 배포하기  (0) 2017.08.09
kubernetes 정리  (2) 2017.01.12
Kubernetes 설치  (6) 2017.01.12
Docker 정리  (2) 2017.01.04
리눅스 컨테이너 (LXC)  (0) 2017.01.04
MQTT (mosquitto broker 오픈소스)  (0) 2016.11.02
tomcat 구동 시 /dev/random 블로킹 이슈  (6) 2016.08.25
Nginx  (0) 2016.07.15
Apache worker 파일에 template 적용하기  (0) 2016.01.22
TAG
댓글
댓글쓰기 폼