docker로 web server를 구축해보자


(docker가 뭔지는 Docker란 무엇인가(슬라이드쉐어)를 참조)


우선 개발환경은 ubuntu 14.04.1 LTS 버전입니다. 서버가 다른 곳에 있어서 편의상 putty를 사용해서 진행.


우선

docker를 설치해줍니다.


$ sudo apt-get install docker.io


설치가 되면 docker image를 받아와야 합니다. Dockerfile을 만들어서 진행 할 수 있지만 많은 사람들이 docker image를 repository에 올려놓았기 때문에 받아 씁니다.


$sudo docker search apache2 


이렇게 검색을 하면 매우 많은 image들이 나옵니다.

<이거보다 더 많이 나옴>



star가 많은건 좋아요가 많은 느낌인건데 저는 그냥 기본 아파치 서버만 할 것이므로 쭉 보다가 눈에 띈 emiller/apache2 가 배포한 이미지를 이용합니다.


$sudo docker pull emiller/apache2


이 명령어를 치면 쭈루륵 다운 받습니다.


다운이 다 되면


$sudo docker images 


다운받은 docker image의 목록을 보여줍니다.


이제 이 이미지를 가지고 docker container를 만들어 봅시다.


컨테이너 이름은 server로 하겠습니다 (마음대로 변경하세요)

그리고 계정의 홈 디렉토리에 docker-web이란 디렉토리를 만들어서 container에 있는 html 폴더와 연결 시키겠습니다. 이곳에 index.html이란 파일을 만들어 두었습니다 (docker hello world란 내용을 출력합니다)


$sudo docker run --name server -d -p 8080:80 -v /home/webserver/docker-web/:/var/www/html emiller/aphace2


이곳에서 8080:80 부분은 container의 80번 포트를 호스트 PC의 8080포트와 연결 시켜주는 것 입니다.

이렇게 실행을 시키고

http://hostpcip:8080 으로 들어가시면



도움 받은 곳

http://pyrasis.com/Docker/Docker-HOWTO#section-11














저작자 표시 비영리 변경 금지
신고
Posted by youngjinkmi0706

이제 guest 가 인터넷이 되어야하니까 네트워크 bridge를 사용해서 게스트에서 인터넷이 되도록해보자


sudo vi /etc/network/interfaces

에 가면 인터넷 정보가 뜨는데


auto lo에다가 xenbr0 를추가해주고


iface eth0 inet manual 


iface xenbr0 inet static 

bridge_ports eth0

address

netmask

gateway

broacast

dns-nameservers


를 넣어준다 (만약에 자동 할당을 사용하는 분들은 static 대신 DHCP 해주고 bridge_ports eth0 만 해주면 될듯

내 경우에는 고정 아이피를 쓰므로 저렇게 설정을 해줬다. 만약에 랜카드가 여러개인 분들은 bridge_ports에 쓰는거 다 추가해주셔야 할듯 나는 하나 쓰니까 저렇게!


이렇게 한 다음에


cfg에다가

vif =['bridge==xenbr0'] 를 추가해주고


sudo xl create cfg이름.cfg 를 해주면

네트워크가 되는 guest가 생성된다!!!


이제 나는 서버실에 더이상 안가고 내자리에서 ssh로 연결해야징


저작자 표시 비영리 변경 금지
신고
Posted by youngjinkmi0706

우선 ubuntu 14.04.1 LTS를 다운 받아 USB/DVD 부팅으로 만든다

나의 경우엔 USB 부팅으로 만들었음.

우분투 다운로드 

USB로 부팅하는 방법은 다른 블로그를 찾으면 자세히 나오므로 패스


USB로 부팅을 시키면 설치화면이 뜨는데 파티션을 나눠도 좋고 그냥 깔아도 좋다

하지만 LVM을 사용하는건 체크하지말자 

내가 허접해서 그렇겠지만 그거 체크하면 /가 LVM으로 잡혀서 나중에 우리가 LV를 이용하여 guest를 만들어야하는데 파티션 분리가 안된다. 그래서 LVM은 apt-get 으로 나중에 인스톨을 하고 일단은 그냥 깔자


설치가 다되면 터미널을 켜서 

apt-get update

apt-get install lvm2

apt-get install xen-hypervisor-amd64

apt-get install gvncviewer 

를 설치해준다.


설치가 완료되면 재부팅


그다음에 lvm 파티션을 설정해줘야한다.

나의 경우엔 부트 usb를 넣고 try ubuntu로 들어간다음

sudo gparted 를 실행시켜서 나눠줬는데

기존에 파티션을 나눠놓은사람은 이 짓을 안해도 된다.

파티션을 다 나눴으면


sudo fdisk -l 을 통해서 우리가 사용할 파티션을 확인하고

sudo fdisk /dev/sda (나의경우엔 sda3인데 사용자마다 다를 수 있다)

로 들어간다음

d

3

n

3

엔터 엔터

t

L

8e

w

순으로 진행하면 된다 (command 어쩌구 저쩌구나오는데 쓰기 싫어서 생략, 저게 무슨 의미인지 모르겠다면 직접 쳐보면 알것이다)

이렇게 하면 sda3번이 Linux-LVM으로 세팅이 된다. fdisk -l 을 통해서 확인 할 수 있다.


이렇게 세팅이 되었으면 재시작 한번 더 해주고

재부팅이 완료되었다면 다시 터미널을 켠다


터미널을 키고

sudo pvcreate /dev/sda3

하면 physical volume 이 생성되고

그다음

sudo vgcreate vg /dev/sda3

하면 volume group이 생성된다.

그 다음 저 vg에다가 lv을 생성해 주면된다.

sudo lvcreate -n 이름 -L 사이즈 /dev/vg

이렇게하면 /dev/vg에 -n이름으로 된 Logical volume이 생성된다.


이제 이렇게 생성된 볼륨에 우분투를 깔아보자

다시아까 저 위에 우분투 사이트에서 우분투 iso를 다운받고 (아까꺼 써도 되고)

그다음 아까 lv 이름으로 지정한 파일이름.cfg 파일을 만든다.

vi 이름.cfg

그러면 vi창이 뜨는데

   kernel = "/usr/lib/xen-4.0/boot/hvmloader"
   builder='hvm'
   memory = 4096
   vcpus=4
   name = "ovm-1734"
   vif = ['bridge=xenbr0']
   disk = ['phy:/dev/vg0/windows,hda,w','file:/root/windows.iso,hdc:cdrom,r']
   acpi = 1
   device_model = 'qemu-dm'
   boot="d"
   sdl=0
   serial='pty'
   vnc=1
   vnclisten=""
   vncpasswd=""

이거 입력해준다. 근데 우리는 network 브릿지를 세팅 안했으므로 vif 부분을 삭제해준다.

그리고 disk부분은 자신의 것으로 바꿔주는 것은 센스! 

저렇게 만든 담에

sudo xl create cfg파일이름.cfg

를 하면 짜잔 하고 생성된다 그런데 화면에 아무것도 안뜬다.

그러면 확인을 위해서

sudo gvncviewer localhost:0 

을 입력해주면

내 vm이 화면에 짠 하고 뜬다 !


다음번엔 네트워크를 사용하는 방법을 포스트해야겠다 지금은 아직 모르니까 공부 좀더 하고


reference http://wiki.xenproject.org/wiki/Xen_Project_Beginners_Guide#Creating_a_Windows_HVM_.28Hardware_Virtualized.29_Guest










저작자 표시 비영리 변경 금지
신고
Posted by youngjinkmi0706


티스토리 툴바