Profile

생각정리..

Lunight

[Docker#4] 도커에 tomcat 이미지 생성과 관리


1. tomcat8 이미지 다운


# docker tomcat:8 

# docker images


2. tomcat8을 컨테이너로 실행


# docker run -d -i -t --name tomcat8-apple -p 8081:8080 tomcat:8

* -d : 데몬으로 실행한다 
* -p : 이미지를 8080으로 실행하지만 호스트에서 접근할때 8081로 접근한다. 
* -i : 표준입력을 활성화하여 컨테이너와 연결되어 있지 않더라도 표준 입력을 유지해준다?


# docker ps -a


3. War파일 생성


적재할때 필요한 war파일을 만들어보았다.


docker tomcat 컨테이너에 복사한다 . 


# docker cp contain.war tomcat8-apple:/usr/local/tomcat/webapps/



* contain.war : 로컬호스트에 war 파일
* tomcat8-apple : 컨테이너이름
* /usr/local/tomcat/webapps/ : tomcat8 컨테이너의 웹 파일이 적재될 경로

컨테이너를 쉘에 연결

# docker exec -it 0484b7e76568 /bin/bash



* 0484b7e76568는 컨테이너 ID
* -it 옵션은 표준입력을 활성화 유지하며 셸을 사용하겠다는 뜻

복사한 war파일이 있는지 확인한다. 



컨테이너 tomcat path


/usr/local/tomcat/



4.기존에 운영하던 소스 옮길때


docker를 데몬으로 올리기때문에 접근해서 수정 및 작업이 어렵다. 

때문에 volume을 설정해서 도커를 생성하고 해당파일을 volume을 통해서 구성하였다. 


먼저 /opt/tomcat8-apple/tomcat/webapps/ROOT/생성하고 다음과 같이 생성해주었다. 


# docker run -d -i -t --name tomcat8-apple -v /opt/tomcat8-apple/tomcat/webapps/ROOT/:/usr/local/tomcat/webapps/ROOT/ -p 8081:8080 tomcat:8


# docker run -d -i -t --name tomcat8-apple -v /opt/tomcat8-apple/tomcat/webapps/ROOT/:/usr/local/tomcat/webapps/ROOT/ -p 80:80 tomcat:lunakiim-0.3

-v <host 경로>:<컨테이너 볼륨 경로> 


그리고 /opt/tomcat8-apple/tomcat/webapps/ROOT/에 파일을 업로드하니 웹서버가 수정이 정상적으로 되었다. 



5. 파일을 옮기거나 가져오는 방법


호스트 -> 컨테이너


docker cp <host   파일경로> <컨테이너 네임>:<컨테이너 내부경로>


컨테이너 -> 호스트


docker cp <컨테이너 네임>:<컨테이너 내부경로>


6. 컨테이너 수정 후 나만의 이미지 Commit하기

나는 다음과 같이 입력해보았다. 

docker commit -a "lunakiim <kimkshahaha@gmail.com>" -m "apple.secuwiz.net tomcat8" tomcat8-apple tomcat:lunakiim-0.1


* -a, --author="" : 생성자 정보
* -m,--message="" : 이미지 메세지
* -p, --pause=true/false : 이미지를 생성할때 컨테이너 중지를 한 뒤 commit 여부




다음 이미지 확인 

# docker images


과감히 삭제하고 다시 도전 !  


다행이다... 정상적으로 적용되었다..(용량 차이가 있어서 .. 긴가민가했는데... 다행임...ㅠㅠ)


docker Hub를 운영해볼까 했는데 Gitlab에 이미지를 저장하는 방법으로 알아보자 ㅎ



(역시 못하는게 없네 GitLab)




 
    



 


'Server Security > Docker' 카테고리의 다른 글

[Docker#5] Docker 이미지 관리  (0) 2018.03.13
[Docker#3] image 설치하고 실행하기  (0) 2018.03.09
[Docker#2] 설치하기  (0) 2018.03.05
[Docker#1] Docker에 대하여..  (0) 2018.03.05