docker 가 volumes 를 통 해 파일 을 마 운 트 하지 않 습 니 다. 수정 후 용기 내 데이터 가 동기 화 되 지 않 습 니 다. 용 기 를 다시 시작 해 야 동기 화 할 수 있 는 문제 입 니 다.
3401 단어 Linux
홈 호스트 가 파일 을 수정 한 후에 용기 내부 에 동기 화 되 지 않 고 해당 하 는 수정 이 발생 하지 않 으 며 용 기 를 다시 시작 해 야 정상적으로 동기 화 할 수 있 습 니 다.
원인.
이것 은 Liux 시스템 파일 마 운 트 메커니즘 으로 인 한 것 입 니 다.docker 는
volumes
파일 을 용기 에 마 운 트 하 는 두 가지 방식 이 있 습 니 다.디 렉 터 리 마 운 트 와 구체 적 인 파일 마 운 트.version: "3"
services:
web:
image: nginx:alpine
volumes:
#
- /data:/var/data
#
- /config/test.conf:/var/test.conf
docker 가 파일 을 마 운 트 할 때 특정한 파일 의 경 로 를 마 운 트 한 것 이 아니 라 해당 하 는 파일 을 마 운 트 했 습 니 다. 즉, Liux 가 지정 한
inode
파일 을 마 운 트 했 습 니 다.vim 같은 편집 기 를 사용 하여 저장 할 때 파일 을 직접 저장 하 는 것 이 아니 라
、
정책 을 사 용 했 습 니 다. 편집 할 때 새로운 파일 을 만 드 는 것 입 니 다. 저장 할 때 백업 파일 을 원본 파일 로 바 꾸 었 습 니 다. 이때 파일 의 inode
이 바 뀌 었 습 니 다. 원래 inode
에 대응 하 는 파일 은 수정 되 지 않 았 습 니 다.용기 안의 파일 이 변 하지 않 았 다 는 것 이다.용 기 를 다시 시작 할 때 새 것 을 마 운 트 합 니 다 inode
inode
예시, 수정 전:root@ubuntu:~/Desktop/fileTest$ stat test.conf
:test.conf
:7 :8 IO :4096
:801h/2049d Inode:416481 :1
:(0664/-rw-rw-r--) Uid:( 1000/ root) Gid:( 1000/ root)
:2020-03-29 21:45:00.355138304 +0800
:2020-03-29 21:45:00.359137009 +0800
:2020-03-29 21:45:00.367134421 +0800
:-
vi
등 편집 기 를 통 해 수정 한 결과 inode
의 값 이 변 한 것 을 발견 할 수 있 습 니 다.root@ubuntu:~/Desktop/fileTest$ stat test.conf
:test.conf
:7 :8 IO :4096
:801h/2049d Inode:416483 :1
:(0664/-rw-rw-r--) Uid:( 1000/ root) Gid:( 1000/ root)
:2020-03-29 21:45:42.594603856 +0800
:2020-03-29 21:45:42.594603856 +0800
:2020-03-29 21:45:42.598604612 +0800
:-
해결 하 다.
-rwxrwxrwx
으로 수정 해 야 합 니 다. 예 를 들 어 chmod 777 test.conf
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
바이너리 파일cat 또는tail, 터미널 디코딩 시 처리 방법cat으로 바이너리 파일을 보려고 할 때 코드가 엉망이 되어 식은땀이 났다. 웹에서 스크롤된 정보의 처리 방법과alias의 설정을 요약합니다. reset 명령을 사용하여 터미널을 재설정합니다.이렇게 하면 고치지 못하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.