톰캣 이미지가 설치된 컨테이너를 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>
'...' 카테고리의 다른 글
[Linux] Add Directory to $PATH in Linux (0) | 2021.11.12 |
---|---|
[Jenkins] How to use SED in a Jenkins Pipeline (0) | 2021.11.11 |
[Jenkins]젠킨스 파이프라인 정리 - Scripted 문법 (0) | 2021.11.09 |
[Docker] 컨테이너 시간 변경 방법 (0) | 2021.11.01 |
[Linux] dig 명령어와 사용법 (0) | 2021.10.28 |