CentOS 6 || 7에 Docker + 우분투 16.04 LTS설치하기

CentOS 6/7 기준으로 다시 설치법부터 간단한 실행법까지 기술하도록 하겠습니다. 기본적으로 root 권한으로 아래 과정을 진행한다고 가정하겠습니다!

 

1.  docker를 해당 페이지에서 바로 받아온 뒤, 쉘스크립트를 수행하도록 합니다. 만약 curl이 설치되어있지 않다면 먼저 yum install curl 명령어를 통해 curl을 설치해주세요.

curl -s https://get.docker.com/ | sudo sh

* 위 명령어를 수행하면… 알아서 명령어를 수행해줍니다 -_-;;

 

2. 설치된 docker의 버전을 확인합니다.

docker -v

 

3. docker에서 사용하는 방화벽 포트인 4243번 TCP 포트를 open시켜준 뒤, 방화벽 데몬을 재시작합니다.

CentOS 7인경우

firewall-cmd --zone=public --add-port=4243/tcp --permanent
firewall-cmd --reload

 

CentOS 6인경우

iptables -A INPUT -p tcp -m tcp --dport 4243 -j ACCEPT
service iptables resetart

 

만약 AWS를 사용중이라면

EC2 Console > NETWORK&SECURITY 의 Security Groups > 현재 서버 인스턴스에 적용된 보안 그룹클릭 > 하단에 OUTBOUND에 EDIT – Add Rule – Type: Custom TCP Rule – Port Range: 4243 – Destination: Anywhere 0.0.0.0/0 두고 SAVE

 

4. docker 데몬을 실행합니다.

systemctl start docker

 

5. ubuntu 최신버전을 docker 저장소에서 가져옵니다.(pull) – 2016.05.03 기준 16.04LTS가 설치됩니다.

docker pull ubuntu:latest

 

6. 잘 가져와졌는지 확인합니다.

docker images

 

7. 이미지에서 보이는 REPOSITORY, TAG를 이용하여 docker를 실행, 해당 이미지에 접근을 시도합니다.

docker run -i -t ubuntu:latest /bin/bash

* 위 명령이 성공하는 경우, root@269654a22cb8: /# 형태로 ssh 접속 후 결과처럼 접속할 수 있습니다!!

 

8. docker의 쉘을 종료시킨 뒤, 프로세스 리스트를 확인합니다.

root@269654a22cb8: /# exit
docker ps -a

* CONTAINER ID영역에 방금 root@269654a22cb8 <- 여기서 본 hash값을 확인할 수 있습니다. exit 명령어로 접속했던 쉘에서 빠져나왔기때문에 STATUS는 Exited (0)으로 표시되고 있음을 확인할 수 있습니다. 이제 이 이미지로 다시 접속을 시도해봅니다.

 

9. 종료된 컨테이너를 다시 실행시킨 뒤, 컨테이너의 상태를 확인해봅니다. Up n Seconds로 표시됩니다! 바로 접속을 시도합니다.

docker restart 269654a22cb8
docker ps -a
docker attach 269654a22cb8

(간혹 shell이 stuck된것같아 보일때가 있는데, 커서를 아무거나 하나 눌러주시면 보이실거예요.)

 

10. 다시 접속된 이미지에서 git을 설치합니다. 설치 전, apt-get update를 수행하여 저장소 파일들을 갱신시켜줍니다. 설치 후 git 버전까지 확인합니다.

apt-get update
apt-get install git
git --version

 

11. 이제 git까지 설치된 CONTAINER ID를 이용하여 새로운 docker image로 만들어봅시다! 이미지의 태그를 git으로 주도록 하겠습니다.

docker commit 269654a22cb8 ubuntu:git
docker images

* 이미지가 추가된 것을 확인할 수 있습니다!

 

12. 새로 만들어진 이미지를 통해 docker를 run 시켜보겠습니다.

docker run -i -t ubuntu:git /bin/bash
git --version

* 미친것같습니다! 어떻게 이런걸 만들었지!!! -_-;;;

 

13. 이제 생성한 이미지를 삭제해보겠습니다. 삭제 시, 해당 이미지를 통해 컨테이너를 생성한 것이 있다면 이미지는 삭제할 수 없습니다. 그러므로 컨테이너부터 먼저 죽인 뒤 이미지를 삭제해야합니다!

docker ps -a

* 이미지가 ubuntu:git인 컨테이너 아이디를 확인합니다. 저는 927ae238ba00으로 되어있네요.
 

docker rm 927ae238ba00 && docker ps -a

* rm 옵션으로 컨테이너 삭제 후 docker 프로세스 중 ubuntu:git이 없음을 확인할 수 있습니다.
 

docker rmi ubuntu:git && docker images

* rmi 옵션으로 이미지 삭제 후 docker images에 ubuntu:latest만 남아있음을 확인할 수 있습니다.

 

오늘은 여기까지! 우선 이러한 형태로 활용할 수 있으며, 실제 활용 시에는 해당 docker 컨테이너에 각종 서버 및 환경설정을 마친 상태에서 이미지를 만들어 재활용한다면 엄청 간편하고 좋겠죠? 심지어 2016년 현재에는 윈도우즈도 지원하고! MAC OSX도 지원한다고 하니!! 안쓸 이유가 없습니다! 무거운 VM 쓰지 말고 가벼운 docker를 반드시 활용해봅시다~!!


도커(Docker)에 대한 이후 활용법에 대해서는 아래의 포스팅을 참고해 주세요. 책보다 더 상세한 설명을 곁들어주신 귀한 포스팅이 있어 이렇게 링크를 걸어 놓으니, 자세한 활용법을 추가적으로 알고싶다면 꼭 가서 읽어봐주세요!

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

You may also like...

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.