본문 바로가기
서버

리눅스 컨테이너 (LXC)

by 탁구치는 개발자 2017. 1. 4.

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

'서버' 카테고리의 다른 글

Google App Engine 환경에 Spring Boot 배포하기  (0) 2017.08.09
kubernetes 정리  (2) 2017.01.12
Kubernetes 설치  (6) 2017.01.12
Docker 정리  (2) 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