티스토리 뷰
Docker war 파일 못찾음 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 에러 해결 방법
오은이 2025. 1. 7. 13:05
며칠 전까지 잘 돌아가던 내 도커 컨테이너 프로젝트가 갑자기 이런 에러를 남발한다..
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
처음부터 다시하니 잘 된다..
루트 계정 비밀번호는 함부로 변경하지 말자..
어디서부터 꼬였는지 해결할 수가 없다.
'Cloud' 카테고리의 다른 글
Google Cloud Run으로 배포한 서비스를 가비아 도메인과 연결하기 (0) | 2025.01.10 |
---|---|
docker 이미지를 Google Cloud Run에 배포하기 (0) | 2025.01.09 |
Docker로 Spring 웹 애플리케이션 배포하기 (4) - 이미지 처리, 볼륨 매핑 (2) | 2024.12.19 |
Docker로 Spring 웹 애플리케이션 배포하기 (3) - MySQL DB 연결과 데이터 옮기기 (1) | 2024.12.13 |
Docker로 Spring 웹 애플리케이션 배포하기 (2) - Docker 컨테이너에 배포 (1) | 2024.12.12 |
- Total
- Today
- Yesterday
- 티스토리챌린지
- Java
- docker배포
- dockerspring
- websquare
- 백준
- 자바
- 노드
- 클라우드
- 이클립스
- docker앱배포
- Apache
- 오블완
- Spring
- docker
- controller
- 웹스퀘어
- 백준알고리즘
- MySQL
- docker컨테이너
- tomcat
- db
- SpringBoot
- 트리
- 그리드
- 톰캣
- 알고리즘
- 백준자바
- google cloud run
- BigDecimal
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |