docker tomcat container에 war파일 배포하기

3070 단어 dockerdocker

🐳 docker images

# 이미지 검색

$ docker search [이미지이름]

-- $ docker search mysql

# 이미지 다운

$ docker pull [이미지이름]:[버전]

-- $ docker pull mysql:latest  (latest 붙히면 최신버전으로 다운) 

# 이미지 삭제

$ docker rmi [이미지 id]

$ docker rmi -f [이미지 id]

컨테이너를 삭제하기 전에 이미지를 삭제 할때, -f 옵션을 붙어면 컨테이너도 강제 삭제가 가능하다.

# 이미지 목록보기

$ docker images

🐳 docker Container

# 컨테이너 목록보기

$ docker ps

$ docker ps -a

-a 옵션 : 컨테이너의 모든 목록을 볼 수 있음.

# 컨테이너 시작

$ docker start [컨테이너 id 또는 name]

# 컨테이너 재시작

$ docker restart [컨테이너 id 또는 name]

# 컨테이너 정지

$ docker stop [컨테이너 id 또는 name]

Bash Shell에서 exit 또는 Ctrl + D를 입력하면 컨테이너가 정지된다.
Ctrl + P, Ctrl + Q를 차례대로 입력하여 컨테이너를 정지하지 않고, 컨테이너에서 빠져나온다.

# 컨테이너 삭제

$ docker rm [컨테이너 id 또는 name]

$ docker rm docker ps -a -q 

 : 모든 컨테이너 삭제

# 컨테이너 실행

$ docker run [options] image[:TAG|@DIGEST] [COMMAND] [ARG...]

-- $ docker run -d -p 3306:3306 -v /mnt/sdb1/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Pgh561511* --name mysqldb mysql
제목1제목2
-ddetached mode 흔히 말하는 백그라운드 모드
-p호스트와 컨테이너의 포트를 연결 (포워딩)
-v호스트와 컨테이너의 디렉토리를 연결 (마운트)
-e컨테이너 내에서 사용할 환경변수 설정
-u실행할 사용자 지정
--name컨테이너 이름 설정
--it-i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 (컨테이너의 표준 입력과 로컬 컴퓨터의 키보드 입력을 연결)
--rm프로세스 종료시 컨테이너 자동 제거
--link컨테이너 연결 [컨테이너 명:별칭]

# 컨테이너 내부 접속

$ docker exec -i -t [컨테이너 이름] /bin/bash

-- $ docker exec -i -t mysqldb bash 
-- $ docker exec -it tomcat_1 /bin/bash 

🐳 Doker Tomcat Container에 war를 배포하기

메이븐(maven) 빌드를 이용하여 웹 프로젝트를 war로 아카이빙 하자. 톰캣은 ROOT.war로 아카이빙 하여 webapp에 넣게 되면 context path가 '/'이 된다. 그러면 'http://localhost:10000/' 로 접속이 가능해 진다. 만약 sample.war로 아카이빙하면 'http://localhost:10000/sample'로 접속해야 한다.

컨테이너 내부의 tomcat 구조를 살펴보자. /usr/local/tomat 이 root 디렉토리이다. 루트 디렉토리의 webapp 폴더에 maven 빌드결과 생성된 ROOT.war를 복사하면 된다.

보통 원격지 서버에 파일을 보내기 위해서는 FTP 프로토콜을 이용한다. Docker의 경우는 Docker에서 제공하는 기능을 사용하면 간단하게 파일을 컨테이너에 복사할 수 있다. 명령은 docker cp를 사용하면 된다.

docker cp ./ROOT.war tomcat_1:/usr/local/tomcat/webapps/

좋은 웹페이지 즐겨찾기