본문 바로가기

리눅스

[Container]LXC

반응형

설치환경

OS : Ubuntu 20.04

 

LXC 설치

# apt install lxc

 

컨테이너 생성

# lxc-create -n test-container -t download

 

Setting up the GPG keyring
ERROR: Unable to fetch GPG key from keyserver
lxc-create: test-container: lxccontainer.c: create_run_template: 1617 Failed to create container from template
lxc-create: test-container: tools/lxc_create.c: main: 327 Failed to create container test-container

해결방법

# lxc-create -n test-container -t download -- --no-validate

설치 시 Distribution : ubuntu, Release : bionic, Architecture : i386 로 설정

 

 

 

LXC 실행

# lxc-start -n test-container -d

 

LXC 확인

# lxc-ls --fancy

 

 

LXC 사용

 

생선한 test-container의 root계정으로 접속

# lxc-attach -n test-container

 

[test-container]

# adduser test

# passwd test

 

# visudo

Line 21 : 내용 추가

 root    ALL=(ALL:ALL) ALL
 test    ALL=(ALL:ALL) ALL

 

#exit

[host(hong)]

 

# lxc-console -n test-container

※만약 콘솔에서 나가고 싶은경우 $에서 Ctrl + a → q  (동시 입력 아님)

 

Container SSH 연결

[test-container]

# apt update && apt upgrade

# apt install openssh-server net-tools

# systemctl status sshd

 

 

[host(hong)]

포워딩 정보 추가

  ㄴ9999포트로 들어오면 10.0.3.32의 22번포트(SSH)로 접속한다는 뜻

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9999 -j DNAT --to 10.0.3.32:22

 

포워딩 정보 확인

#  iptables -t nat -v -L PREROUTING -n --line-number

포워딩 정보 삭제

# iptables -t nat -D PREROUTING [num]

 

 

Apache 서비스

[test-container]

# apt install apache2

# systemctl status apache2

 

[host(hong)]

포워딩 정보 추가

  ㄴ9998포트로 들어오면 10.0.3.32의 80번포트(HTTP)로 접속한다는 뜻

  ㄴ 포트번호는 서로 겹치면 안됨 → 서비스 별로 서로다른 포트번호!

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9998 -j DNAT --to 10.0.3.32:80