티스토리 뷰

 

 

 

 

 

 

며칠 전까지 잘 돌아가던 내 도커 컨테이너 프로젝트가 갑자기 이런 에러를 남발한다..

 

 

Error response from daemon: failed to create task for container: 
failed to create shim task: OCI runtime create failed: runc create failed: 
unable to start container process: error during container init: error mounting 
"/run/desktop/mnt/host/c/GovFrameDev-3.10.0-64bit/workspace/GPTProject/target/ROOT.war" 
to rootfs at "/usr/local/tomcat/webapps/ROOT.war": 
mount /run/desktop/mnt/host/c/GovFrameDev-3.10.0-64bit/workspace/GPTProject/target/ROOT.war:/usr/local/tomcat/webapps/ROOT.war (via /proc/self/fd/6), 
flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)?
Check if the specified host path exists and is the expected type

 

 

 

war 파일을 못찾고 있는 에러였는데, war 파일이 있음에도 불구하고 찾지 못하고 있다.

 

 

 

 

 

 

 

구글링 해보다가 이런 글 발견

 

 

Are you trying to mount a directory onto a file (or vice-versa)?

I have a docker with version 17.06.0-ce. When I trying to install NGINX using docker with command: docker run -p 80:80 -p 8080:8080 --name nginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx...

stackoverflow.com

 

 

 

 

 

 

 

 

 

 

원인은 바로..

 

내가 리눅스의 root 계정 비밀번호를 변경해서 생긴 문제였다..

 

 

 

Docker Desktop에서 Windows의 공유 드라이브 설정은 사용자 인증 정보를 활용하여 파일 시스템을 컨테이너에 마운트한다. Linux의 비밀번호가 변경되면, Docker가 이전 인증 정보를 사용하려다 실패하여 마운트 관련 문제가 발생할 수 있다고 한다.

 

 

 

 

 

 

 

컨테이너 내부 webapps 폴더에서

 

> ls -l

 

 

확인해보니 ROOT.war가 파일이 아닌 폴더로 되어있다.

 

그래서, 내 war 파일을 매핑하려 하니 폴더가 아니라는 에러가 떴었던 것,,

 

 

 


 

 

 

 

해결 방법

 

컨테이너 삭제했다가 다시 생성하여 war 파일 매핑에 성공했다.

 

 

컨테이너 제거

> docker stop {컨테이너 ID 또는 이름}
> docker rm {컨테이너 ID 또는 이름}

 

 

컨테이너 생성

> docker-compose up -d

 

하니 war 파일 문제는 해결됨

 

 

 

 

 

 

그러나 잘 되던 DB가 갑자기 또 오류 발생..

 

Caused by: java.net.ConnectException: Connection refused Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

 

 

 

 

이건 해결 방법을 찾을 수가 없어서 싹 다 지우고 다시 했다.

 

 

아래 글 참고

 

https://oeuni.tistory.com/60?category=1257613

 

Docker로 Spring 웹 애플리케이션 배포하기 (1) - Windows 11 Pro에서 Docker 설치 방법

Docker란?Docker는 소프트웨어를 컨테이너라는 독립적인 실행 환경에서 실행할 수 있게 해주는 플랫폼이다.Docker는 개발, 배포, 실행 과정에서 일관성과 효율성을 제공한다.  Docker 엔진Docker 엔진은

oeuni.tistory.com

 

 

 

처음부터 다시하니 잘 된다..

 

루트 계정 비밀번호는 함부로 변경하지 말자..

 

어디서부터 꼬였는지 해결할 수가 없다.

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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
글 보관함