티스토리 뷰

 

톰캣 이미지가 설치된 컨테이너를 run으로 실행할 경우

 

docker run --name tomcat8 -i -t -d -p 8088:8080 tomcat-set1

 

톰캣이 자동으로 실행되면서 발생한 오류로 Docker 컨테이너가 실행되지 않았다.

아래 명령어로 컨테이너 에러 로그를 열어 보았고

 

docker logs -t CONTAINER ID

 

원인은 톰캣 실행시 server.xml에 설정한 경로가 존재하지 않아서 였다.

server.xml을 수정해야 하는데 컨테이너 자체가 실행되지 않기 때문에 방법을 고민하다가 결국 구글에 검색해보니 스택오버플로우의 <how-to-edit-files-in-stopped-not-starting-docker-container> 이 글의 답변 중 적절한 해결 방법을 찾았다.

 

 

해결방법

컨테이너는 정지 상태에 있지만 안에 있는 파일을 호스트OS로 복사할 수 있었다.

파일을 복사해와서 안에 있는 설정 파일을 수정 후 다시 붙여 넣으면 된다.

 

 

1. 컨테이너 ID 확인 후 호스트OS로 파일 복사

docker ps -a

 

docker cp CONTAINERID:/컨테이너 내부 경로 /호스트OS 경로

 

ex)

docker cp CONTAINERID:/usr/local/tomcat/ /home/ubuntu

 

 

2. 파일 수정 후 다시 붙여 넣기

호스트OS -> 컨테이너 내부 경로로 파일 복사

아래 코드에서 tomcat 폴더는 현재 경로(/home/ubuntu)에 위치해 있다. 그리고 tomcat  폴더를 덮어씌우기 때문에 

컨테이너 경로가 위와는 다르다.

 

docker cp tomcat/ CONTAINERID:/usr/local/

 

 

3. 실행 여부 확인

docker start -i CONTAINERID

 

실행이 잘되면 컨테이너를 이미지로 만든 후 다시 docker run하면 된다.

docker commit <CONTAINERNAME> <NEWIMAGENAME>

 

댓글
댓글쓰기 폼
공지사항
Total
248,450
Today
825
Yesterday
1,065
링크
«   2022/10   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
글 보관함