8000 GitHub - kimhongji/container-internal: 컨테이너 인터널 실습 리포입니다
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

kimhongji/container-internal

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files 8000 navigation

container-internal

컨테이너 인터널 실습 리포입니다

실습 환경 갖추기

실습 안내

  • Mac 환경(M1 제외) 에서 VirtualBox 와 Vagrant 기반으로 테스트 되었습니다
  • Mac 이외 OS 환경에서도 가급적 “Vagrant + VirtualBox” 사용을 권장드립니다.
  • Mac M1,M2 등 Vagrant + Virtualbox 환경을 지원하지 않는 경우 별도의 Ubuntu(1804) 환경을 준비해주세요.

Vagrant 기반 실습환경 준비가 어려운 분들은 아래 "Vagrant 미지원 시 실습환경 갖추기"를 참고해주세요.

실습 도구

맥 OS기준 (M1제외) Virtualbox 및 Vagrant 설치 방법은 다음과 같습니다.

설치 방법

# virtualbox 설치
brew install virtualbox --cask
# vagrant 설치
brew install vagrant --cask

Virtualbox 설정

  • (설정1) 시스템 환경 설정에서 “Oracle” 허용 및 맥 재부팅
시스템 환경설정 > 보안 및 개인 정보 보호 > 일반 > 하단에 Oracle 관련 설치 허용
$ sudo -i
# mkdir -p /etc/vbox/
# vi /etc/vbox/networks.conf
* 0.0.0.0/0 ::/0

FAQ

  1. VM기동(vagrant up) 중 에러 메시지1
...
VBoxManage: error: VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory
...

Sol) 위의 Virtualbox (설정1)을 확인해 주세요

  1. VM기동(vagrant up) 중 에러 메시지2
Valid ranges can be modified in the /etc/vbox/networks.conf file

Sol) 위의 Virtualbox (설정2)를 확인해 주세요

실습 환경

아래 Vagrantfile을 사용합니다.

BOX_IMAGE = "bento/ubuntu-18.04"
HOST_NAME = "ubuntu1804"

$pre_install = <<-SCRIPT
  echo ">>>> pre-install <<<<<<"
  sudo apt-get update &&
  sudo apt-get -y install gcc &&
  sudo apt-get -y install make &&
  sudo apt-get -y install pkg-config &&
  sudo apt-get -y install libseccomp-dev &&
  sudo apt-get -y install tree &&
  sudo apt-get -y install jq &&
  sudo apt-get -y install bridge-utils

  echo ">>>>> install docker <<<<<<"
  sudo apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common > /dev/null 2>&1 &&
  sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - &&
  sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" &&
  sudo apt-get update &&
  sudo apt-get -y install docker-ce docker-ce-cli containerd.io > /dev/null 2>&1
SCRIPT

Vagrant.configure("2") do |config|

 config.vm.define HOST_NAME do |subconfig|
   subconfig.vm.box = BOX_IMAGE
   subconfig.vm.hostname = HOST_NAME
   subconfig.vm.network :private_network, ip: "192.168.104.2"
   subconfig.vm.provider "virtualbox" do |v|
     v.memory = 1536
     v.cpus = 2
   end
   subconfig.vm.provision "shell", inline: $pre_install
 end

end

Vagrant 기본 사용법. vagrant는 "Vagrantfile" 경로를 기준으로 동작합니다.

# VM 중지와 재개
$ vagrant suspend
$ vagrant resume

# VM 종료와 기동
$ vagrant halt
$ vagrant up

# VM 재기동
$ vagrant reload

# VM 재설정/기동
$ vagrant reload --provision

# VM 상태 확인 (VM 목록별 상태 출력)
$ vagrant status

# VM 터미널 접속
$ vagrant ssh <VM이름>

실습 참고

  • 실습 터미널 : VM 터미널 창을 두 개를 준비해주세요. (Vagrantfile 경로에서 실행)
vagrant ssh ubuntu1804
  • 실습 계정 : root 계정을 기본으로 합니다.
vagrant@ubuntu1804:~$ sudo -Es
root@ubuntu1804:~#
  • 실습 경로 : /tmp 를 기본으로 합니다.
root@ubuntu1804:~# cd /tmp
root@ubuntu1804:/tmp#

Q. 실습경로를 제한하는 이유?

virtualbox의 특수한 mount 경로 사용 시 심볼릭 링크 제한 등 실습이 원활하지 않을 수 있어 실습경로를 통일합니다.

  • 실습 종료 : chroot, unshare, nsneter, docker exec 등 컨테이너 사용 시 각 실습이 끝나면 “exit” 로 컨테이너 프로세스를 종료해 주세요.
bash-4.4# exit
exit
root@ubuntu1804:/tmp#

Vagrant 미지원 시 실습환경 갖추기

  • 본 가이드는 맥 m1,m2 (arm계열) 등 기타 OS에서 Vagrant 기반 실습환경 구성이 어려운 경우에 해당합니다.
  • Ubuntu(1804) 환경을 2개 준비해 주세요. * 무료클라우드 활용 등

실습 환경 갖추기

각자 준비된 Ubuntu(1804) 환경에서 아래 설치 스크립트를 실행해 주세요

  • Pre-requisite
apt-get update \
&& apt-get -y install gcc \
&& apt-get -y install make \
&& apt-get -y install pkg-config \
&& apt-get -y install libseccomp-dev \
&& apt-get -y install tree \
&& apt-get -y install jq \
&& apt-get -y install bridge-utils
  • Docker 설치
apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common > /dev/null 2>&1 \
&& curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - \
&& add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
&& apt-get update \
&& apt-get -y install docker-ce docker-ce-cli containerd.io > /dev/null 2>&1

About

컨테이너 인터널 실습 리포입니다

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • 2E88 Python 65.6%
  • Shell 34.4%
0