티스토리 뷰

728x90
반응형

  본 포스팅은 초보자를 위한 Docker 설치 방법 및 사용 가이드입니다.


최근 클라우드 환경은 IT 전반에서 매우 빠르게 확산되고 있습니다. 그중 도커는 리눅스 컨테이너 기술을 자동화해 쉽게 사용할 수 있게 도와주는 역할을 담당하고 있습니다. 도커를 사용하면 가상화보다는 내부에서 더 적은 일을 처리하고, 애플리케이션을 좀더 빠르고 효율적으로 실행시킬 수 있다는 장점이 있습니다. 현재 업계에선 가상화 기술과 도커가 서로 부족한 부분을 채우는 보완 기술로 발전할 것으로 보고 있습니다.


먼저 Docker 설치 과정입니다.

Docker를 사용하고 운영하기 위해 일반 사용자 계정인 dockerCon이라는 사용자를 생성합니다.

Docker의 경우 root 권한이 필요함으로 먼저 해당 계정에 sudo 사용 권한을 부여합니다. root 계정으로 /etc/sudoer 파일을 vi로 열고 dockerCon 계정에 권한을 부여합니다.


sudo 권한이 정상부여되었으면 다음과 같이 Linux 환경에 docker를 설치 합니다.

wget를 사용하여 sudo wget -qO- http://get.docker.com/ | sh 과 같이 입력해 주면 Docker가 설치 됩니다.


docker가 정상적으로 설치가 되면 다음 명령어로 실행 또는 중지 할수 있습니다.

docker-containerd 프로세스가 기동됩니다. 다음과 같이 기동(sudo service docker start) 종료(sudo service docker stop)을 수행할 수 있습니다.docker 버전은 docker version 명령어로 확인 할 수 있습니다.


다음으로 Docker hub (Docker Repository) 연동 과정입니다.

- Docker는 2013년에 시작된 오픈소스 프로젝트로, 이미 콘테이너와 거의 동의어 취급을 받기에 이르고 리눅스 콘테이너와 똑같은 커널 원리로 만들어졌으며, 사용하기 편한 인터페이스와 중앙 공공 이미지 저장소의 운영을 통해 콘테이너 열풍을 부추기고 있습니다. 이 중앙 저장소를 도커 허브(Docker Hub)라고 부르며, 이것이 ‘쉬운 콘테이너 기술’인 도커의 핵심이라 할 수 있습니다.
- Docker hub(Docker Hub https://hub.docker.com/)에서는 자신만의 repository를 등록하고 배포하고 관리할 수 있습니다. 

하단의 New to Docker 부분을 통해 손쉽게 Docker Hub에 가입할 수 있습니다. 

- 가입시 입력한 E-Main로 인증메일이 날라오니 Confirm 하시면 최종 승인됩니다.


다음으로 Docker 활용 가이드에 대해 알아보겠습니다.

간단히 지금까지 수행한 내용을 정리하자면, 다음과 같습니다.

- Linux에 Docker Install 방법을 설명하였습니다.

- Docker Hub 가입 및 로그인 방법을 설명하였습니다.


다양한 명령어들을 지금부터 테스트 해 보겠습니다.

먼저 Docker Hub에 올라가 있는 최신 버전의 Wildfly를 다운로드 받아 위에 생성한 Docker hub nara0617 계정에 repository를 생성하여 업로드 해보도록 하겠습니다.


1) Docker 로그인하는 방법입니다.

Docker hub에서 다운로드 받기 위해 docker login(sudo docker login)을 수행합니다.

docker ID, PassWD는 Docker Hub 가입시 입력한 값을 넣어 주시면됩니다.


2) Wildfly Package를 조회 하는 방법입니다.

Wildfly 다운로드를 받기 위해 아래와 같이 package를 조회(sudo docker search wildfly)해 봅니다.

위와 같이 다양한 docker repository가 있는데요 그중 최상단의 jboss/wildfly를 다운로드 받아 보도록 하겠습니다.

조회 결과 내용은 Docker Hub에서 조회한 내용과 동일함을 알려 드립니다.


3) Docker hub에서 wildfly를 다운로드 받는 방법입니다.

아래와 같이 손쉽게 docker hub에서 다운로드 받을 수 있습니다.

여기서 유의할 점은 sudo docker pull jboss/wildfly:[tag] 의 tag 부분입니다.

Docker hub에는 repository 하위 구조로 tag를 생성할 수 있습니다. 먼저 설명전에 jboss/wildfly의 tag를 살펴 보겠습니다.

Repository의 jboss/wildfly -> tags를 클릭하면 아래 화면으로 이동합니다.


Tag는 위와 같이 해당 repository에 버전 관리 또는 패치 이력을 확인 할 수 있는 역할을 수행합니다. 자 그럼 실제 docker hub에서 해당 파일을 다운로드 해보겠습니다.

저희가 받은 버전은 wildfly12.0.0.Final 버전이며 아래와 같이 받을수 있습니다. 위에 적어 두었지만 다시한번 말씀드리자면, sudo docker pull jboss/wildfly:[tag]와 같이 tag 부분에 해당 repository의 tag 명을 적어주면 다운받을 수 있습니다.

직접 들어가서 확인해 보시는 것도 도움이 되겠네요.

예를 들어 wildfly12 버전을 다운로드 받는다고 보면 (sudo docker pull jboss/wildfly:12.0.0.Final)과 같이 입력하면 됩니다.


4) 개인 계정에 repository를 생성하는 방법입니다.

그럼 이제 다운로드 받은 wildfly12.0.0.Final을 개인 계정으로 옮기기 위해 repository를 생성하도록 하겠습니다.

방법은 매우 간단합니다.

sudo docker tag jboss(다운받은 계정명)/wildfly(다운받은 계정의 repository):12.0.0.Final(다운받은 Tag) nara0617(본인 계정)/wildfly(본인 계정의 repository):12.0.0.Final(본인 계정의 Tag 명칭) 형식으로 이루어지며 sudo docker tag jboss/wildfly:12.0.0.Final nara0617/wildfly:12.0.0.Final 과 같이 예를 들어볼수 있습니다.

 

5) 개인 계정 repository에 업로드하는 방법입니다.

그럼 저의 최초 tag 및 upload 과정입니다.

sudo docker push nara0617(본인 계정)/wildfly(본인 계정의 repository):12.0.0.Final(본인 계정의 Tag 명칭) 형식으로 이루어 지며 sudo docker push nara0617/wildfly:12.0.0.Final 과 같이 예를 들어 볼수 있습니다.

업로드가 완료 되었으니 직접 본인의 Docker Hub에 가서 확인해 보겠습니다. 


6) Docker hub를 확인해 보도록 하겠습니다.

DashBoard를 보면 repository wildfly가 생성된 것을 볼 수 있습니다.

위에서 살펴보았던 것처럼 Tags로 이동하면, 방금전 업로드 했던 12.0.0.Final 버전이 업로드 된것을 볼수 있습니다.

nara0617/wildfly는 누구나 다운로드 받을 수 있는 버전이 되었습니다.

docker repository에 들어가면 Tags 옆에 Settings 라는 탭이 있습니다.  Make this Repository Private 항목은 해당 repository를 Owner와 organization에 포함된 멤버에게만 공개하는 방식입니다. Delete Repositry는 말 그대로 그냥 해당 Repository를 지우겠다는 의미입니다.


마지막으로 Docker 이미지를 수정하는 방법에 대해 알아보겠습니다.

방금전 업로드 했던 기존 이미지를 변경하여 반영하는 방법을 알아 보겠습니다.

1) docker ps는 docker repository를 통해 기동되어 있는 Process를 확인할 수 있습니다. 또한 docker exec를 통해 Container 내부 Pod로 접속할 수 있습니다.

방금전 기동했던 nara0617/wildfly:12.0.0.Final이 기동되었는지 확인하는 명령어 입니다.

CONTAINER ID를 입력값으로 다음과 같이 sudo docker exec -ti [container id] bash 를 이용해 해당 Container 내부로 접속합니다.

 

2) 파일 패치을 복사하는 방법입니다.

패치를 반영한 파일 위치를 찾아 보겠습니다. wildfly는 modules라는 디렉토리를 참고해서 파일을 찾게 되죠. 본 포스팅의 테스트에서는 Hello class를 반영해서 배포하는 방법을 알아보겠습니다. 먼저 해당 위치에 복사를 수행해 보겠습니다.

자 copy 할 파일을 해당 서버에 업로드 하고 docker container에 copy 하는 명령어입니다.

docker cp 명령어를 사용하며 sudo docker cp Patch.jar ContainerID:/opt/jboss/wildfly/modules 과 같이 업로드할 파일을 지정해 주면됩니다.

위 명령어를 보면 Patch.jar 파일을 docker container로 정상적으로 전송하는 과정이라 할 수 있습니다.

sudo docker cp [전송할 파일] [container ID]:[경로]로 명령어가 구성됩니다.


3) 패치 파일을 docker hub에 반영하는 방법입니다.

자 위와 같이 파일 반영 후 서버에 Parch version을 업로드 하는 방법입니다.

업로드 하는 과정은 총 3가지로 분류 됩니다.

a. docker tag 생성을 위해 sudo docker tag nara0617/wildfly:12.0.0.Final nara0617/wildfly:12.0.0.Filnal-Hello 명령어를 수행합니다.

b. docker 반영을 위해 : sudo docker commit 68de57cb32f2 nara0617/wildfly:12.0.0.Filnal-Hello 명령어를 수행합니다.

Docker Hub에 업로드 하기 위해서는 tag 생성 후 push 전에 변경된 데이터를 Commit 해줘야 업로드가 수행됩니다.

c. docker push 명령어를 통해 sudo docker push nara0617/wildfly:12.0.0.Filnal-Hello 실제 Docker Repository에 업로드를 수행합니다.

 

위와 같이 Docker 설치 및 이미지 생성 다운 패치 등의 다양한 명령어를 살펴보았습니다. 앞으로 지속적인 업데이트로 클라우드 환경에 앞장서는 waspro가 되겠습니다.

맙습니다.



728x90
반응형