Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titleVagrantfile
Vagrant.configure("2") do |config|
  config.vbguest.auto_update = false
  config.vm.box = "kleesc/coreos"
  config.vm.hostname = "docker1"
  config.vm.network "private_network", ip: "192.168.56.201"
  config.vm.network "public_network", ip: "192.168.0.180"
  config.vm.provider "virtualbox" do |vb|
     vb.memory = "2048"
  end
end

도커구동을 위해한, 라이트하고 가벼운  최소 스펙의 리눅스 OS인 coreos 를 선택하였으며

os자체가 도커를 포함하고 있어서, 구동과 동시에 도커가 준비된 상태가 됩니다.

3개의 VM을 구동예정이며, 다르게 설정되어야 할값은 단지 메모리/호스트명/네트워크IP지정입니다.

...


Vagrant의 장점은 준비된 OS를 선택하여 VM환경에서 프로비저닝 할수 있습니다. 

  • kleesc/coreos
  • kleesc/coreosubuntu/bionic64
  • kwilczynski/ubuntu-20.04-docker



간단하게 살펴본 크기순서 디펜던시입니다.

  • Host(물리컴퓨터) > 물리 OS > VM > VMOS > 도커가상화 > 도커 컨테이너
  • Host(물리컴퓨터) > 도커 가상화 > 도커 컨테이너

...

Expand
title다른OS의 Docker가필요한경우

다른 조합의 OS+Docker가 필요한경우 : https://app.vagrantup.com/boxes/search


OS의 Size는 곧 비용이다.  Core OS는 도커 가상화기술을 사용할수 있는 최적화된 경량화된 OS이다.   

Tip

core os 가 도커환경에서 유용한경우

도커를 위해 cent os / ubuntu 등을 선택해도 되지만 , 도커의 스펙만 이용한다고 하면 core os로도 충분합니다.

우선 최소 설치 용량이 가벼우며(전체 OS를 처음 다운받고 최초 도커환경을 준비하는데 5분이면 충분합니다.)

Vagrant가 아닌, VM에서 OS를 직접선택하고 도커환경을 위해 OS-Updateg하고 네트워크 셋팅을 다거치고 나서 도커 설치까지 걸리는 시간대비

여기서 학습하고자하는  방식을 사용하면 이미 도커 3개를 스케일아웃할수 있는 구조와 함께 웹에서 어떤 인프라를 선택할지 원클릭 설치를 할수 있는 환경이 제공됩니다.

( 클라우드에 비용을 지불하고 원클릭으로 인스턴스 생성이 가장 빠를것이지만, Rancher구동이후에는 적어도 클라우드 환경을 이용하는 수준으로 빠른 서비스 스택 구축이 가능합니다.)

VM만을 이용한 처음설치를 위해  우분투를 선택했다고 하면,OS를 내려받는 과정을 포함하여 최신 도커사용을 위해 update및 디펀던시 준비하는데 이미 1시간 이상을 소요했을것입니다. -숙련자기준

비숙련자 기준으로는 네트워크 환경 셋팅은 고려하지도 못한체 하루이상 소요될수도 있습니다.

인프라 환경 셋팅에서 숙련과 비숙련의 차이는 단연코 시간입니다.




파일을 위와같이 작성을 한후, Vagrantfile을 가지고 있는 디렉토리내에서 VM 컨트롤이 가능합니다.

...

  • vagrant up : vm을 구동시킨다.
  • vagrant ssh : ssh접속
  • vagrant halt : vm 중지
  • vagrant reload : vm 재시작
  • vagrant destroy : vm 삭제



Code Block
themeEmacs
titlevagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'kwilczynski/ubuntu-20.04-docker' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'kwilczynski/ubuntu-20.04-docker'
    default: URL: https://vagrantcloud.com/kwilczynski/ubuntu-20.04-docker
==> default: Adding box 'kwilczynski/ubuntu-20.04-docker' (v0.1.1) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/kwilczynski/boxes/ubuntu-20.04-docker/versions/0.1.1/providers/virtualbox.box
Download redirected to host: vagrantcloud-files-production.s3-accelerate.amazonaws.com
    default: Calculating and comparing box checksum...
==> default: Successfully added box 'kwilczynski/ubuntu-20.04-docker' (v0.1.1) for 'virtualbox'!
==> default: Preparing master VM for linked clones...
    default: This is a one time operation. Once the master VM is prepared,
    default: it will be used as a base for linked clones, making the creation
    default: of new VMs take milliseconds on a modern system.
==> default: Importing base box 'kwilczynski/ubuntu-20.04-docker'...
==> default: Cloning VM...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'kwilczynski/ubuntu-20.04-docker' version '0.1.1' is up to date...
==> default: Setting the name of the VM: docker1_default_1682824169580_70976
==> default: Clearing any previously set network interfaces...
==> default: Available bridged network interfaces:
1) enp1s0f0
2) docker0
3) veth34ef55e
4) vetha664839
5) vethrd1950fa082
6) vethr9717e7bb98
7) vethr58070fba63
8) vethr05e74b7144
9) vethrad400661b5
10) vethr5b82529cc4
11) vethr2fc719c621
12) vethrf1bc8f62fc
13) vethre515607d4e
14) vethrb272d8eda7
15) vethr36b78e5a3f
16) vethr8d18704b7c
17) veth5575467
18) vethr01e0126ef1
==> default: When choosing an interface, it is usually the one that is
==> default: being used to connect to the internet.
==> default: 
    default: Which interface should the network bridge to? 1
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: 
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default: 
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...




참고링크: