컨테이너 사용과정에서 가장 어렵게 느껴지는 부분은 호스트 운영체제와 게스트 컨테이너의 네트워킹 설정입니다. 아래 과정에서 호스트 서버는 외부 접속이 가능한 상황, ssh 서버의 설치 운영을 전제합니다.
# ssh 서버 관련 설치
sudo apt update
sudo apt tasksel
sudo tasksel
## 화면 하단의 SSH server 선택하고 확인 버튼을 눌러 설치합니다.
# 만약 호스트 서버의 아이피를 모를경우,
sudo apt net-tools
ifconfig
## ssh 유저아이디@호스트서버아이피 로 외부에서 접속할 수 있어야 합니다.
rstudio-container라는 리눅스 컨테이너 안에 rstudio 서버를 설치하고 외부접속하는 과정입니다.
# (호스트 서버에서) rstudio-container에 접속
sudo lxc-start -n rstudio-container
sudo lxc-attach -n rstudio-container
# (컨테이너 안에서) rstudio server 설치를 위한 배경 패키지 설치
apt update
apt install -y r-base gdebi-core wget
# RStudio Server 다운로드 및 설치(https://posit.co/download/rstudio-server 참조)
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-2023.06.0-421-amd64.deb
gdebi rstudio-server-2023.06.0-421-amd64.deb
# 컨테이너의 내부 아이피 확인
ip addr show eth0
# 호스트 서버로 나오기
exit
# 호스트 시스템에서 포트 포워딩 설정
sudo iptables -t nat -A PREROUTING -p tcp --dport 8787 -j DNAT --to-destination <컨테이너_IP>:8787
# 만약 ufw로 방화벽 관리중이라면
sudo ufw allow 8787/tcp
# 컨테이너가 실행될 때 자동으로 rstudio server가 시작하려면
systemctl enable rstudio-server
RStudio Server 접속: 웹 브라우저에서 http://<외부_IP>:8787로 접속하면 RStudio Server 로그인 페이지가 나타날 것입니다. (만약 사용자계정을 만들지 않았다면, adduser로 만들고, 사용자 아이디, 패스워드로 접속할 수 있습니다.)
- 포트 포워딩 규칙 영구 설정: 호스트 시스템에서 iptables 규칙을 영구적으로 저장하고 부팅 시 자동으로 로드되도록 설정합니다:
Copysudo apt-get install iptables-persistent sudo netfilter-persistent save sudo netfilter-persistent reload
- 부팅 시 포트 포워딩 규칙 적용: /etc/rc.local 파일을 생성하거나 수정하여 부팅 시 포트 포워딩 규칙이 적용되도록 합니다:
Copysudo nano /etc/rc.localbashCopy#!/bin/bash iptables -t nat -A PREROUTING -p tcp --dport 8787 -j DNAT --to-destination 10.0.3.30:8787 iptables -t nat -A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE exit 0Copysudo chmod +x /etc/rc.local
- 재부팅 테스트: 모든 설정이 완료되면 호스트 시스템을 재부팅하여 모든 것이 예상대로 작동하는지 확인합니다:
Copysudo reboot
이렇게 설정하면 호스트 컴퓨터가 재부팅된 후에도 컨테이너가 자동으로 시작되고, 컨테이너 내의 RStudio Server도 자동으로 실행되며, 필요한 포트 포워딩 규칙도 적용될 것입니다.
'Ubuntu > Ubuntu22.04' 카테고리의 다른 글
[lxc + limesurvey] 리눅스 컨테이너 안에 라임서베이 설치 (0) | 2024.08.18 |
---|---|
[LXC] 리눅스 컨테이너 설치 (0) | 2024.08.18 |
raid 5 + bcache (0) | 2024.08.01 |
Limesurvey Self-Hosting Installation [2] : nginx, php-fpm (0) | 2024.07.30 |
mail server 설정[1] - 요약 (1) | 2023.10.28 |