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 |