Realman's World

Docker 설치 (window 7) 본문

Kairos/Item

Docker 설치 (window 7)

리얼맨 2015. 7. 22. 14:19

Hadoop 을 설치하려고 하니 서버가 부족하여 Docker를 상용하기로 하였다.

회사에 남는 리눅스 서버가 없어서 부득이 하게 windows 7이 설치된 노트북을 사용하였다.


https://www.docker.com/ 의 메인화면에서 Get Started with Docker를 클릭한다.


파란색 글 중 눈에 띄게 주황색으로 된 Windows 를 클릭하면 왼쪽 메뉴에 Install Docker on Windows로 변경된다.


* 링크 : http://docs.docker.com/windows/step_one/


Boot2Docker 라는 가상 머신을 설치하고 이것을 기반으로 docker container 들을 실행시킨다.


Boot2Docker는 해당 페이지의 링크를 통해 즉시 설치 가능하며 설치시 꼭 모든 software를 체크해 주어야 한다.


Docker Client for Windows

Boot2Docker management tool and ISO

Oracle VM VirtualBox

Git MSYS-git UNIX tools


Boot2Docker Start를 실행시키면 $ prompt 가 실행되면 정상적으로 설치 및 실행이 완료된 것이다.

docker를 본격적으로 사용하기 전에 boot2docker를 업그레이드 시킨다.


boot2docker download


1. image 검색


docker search


2. image download


docker pull [image 명]


3. container 생성


docker run -i -t -p [host port]:[container port] --name [container 명] [image명]


* 생성시 port forwarding 을 시켜주지 않으면 추가시킬 수 없는 것 같다.

container 에서 웹서버를 실행시키거나 외부에서 접속을 해야 할 경우 반드시 생성할 때 -p 옵션을 통해서 host의 port와 container의 port 을 mapping 시켜주어야 한다.

여러개의 port 를 연결시킬 경우에는 아래와 같이 -p 옵션을 반복하여 써 준다.


docker run -i -t -p 3000:3000 -p 80:80 -p 20:20 --name [container 명] [image명]


이후 Oracle VM VirtualBox 에서 port forwarding 설정을 추가해야 한다.


boot2docker 를 선택한 후 설정을 클릭한다.



설정 창에서 네트워크를 선택한 후 포트 포워딩을 클릭한다.



호스트 IP 와 호스트 포트를 설정하고 연결한 게스트 포트를 입력한다.

이때 실제 호스트 IP를 입력하면 외부에서도 연결이 가능하며 127.0.0.1만 입력하면 외부에서는 접속이 되지 않는다.


또한 하나의 port 는 단 하나의 container 에서만 사용이 가능하다.

만일 특정 container에서 사용 중이 port를 추가하려고 하면 아래와 같은 에러가 발생하여 원천적으로 중복 사용되지 않도록 한다.


Error response from daemon: Cannot start container xxxxxxxxxxxxxxxxxxxxxxxxxx: Bind for 0.0.0.0:3000 failed: port is already allocated


4. container 실행 후 빠져나오기


exit -> container 종료 후 빠져나옴

ctrl + p/q -> container 종료 시키지 않고 빠져나옴


5. container 실행


docker start [container 명]


6. container 접속 (실행 중이 container 에 접속, start만 했거나 ctrl + p/q 로 빠져나왔을 경우)


docker attach [container 명]


7. container 목록 보기


docker ps : 실행 중인 container 만 조회

docker ps -a : 모든 continaer 조회


8. container 삭제


dokcer rm [container 명]


* Docker 참조 자료

- http://www.slideshare.net/pyrasis/docker-fordummies-44424016

http://blog.nacyot.com/articles/2014-01-27-easy-deploy-with-docker/


* Hadoop on docker

- http://larrylo.gitbooks.io/distribute-cloud-environment-on-ubuntu-14-04-with/content/set_hadoop_environment_in_a_docker_container.html

Comments