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 에 대응 하 는 파일 은 수정 되 지 않 았 습 니 다.용기 안의 파일 이 변 하지 않 았 다 는 것 이다.용 기 를 다시 시작 할 때 새 것 을 마 운 트 합 니 다 inodeinode 예시, 수정 전:
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
    :-

해결 하 다.
  • 파일 을 직접 마 운 트 하 는 것 을 피하 고 디 렉 터 리 를 마 운 트 합 니 다. 디 렉 터 리 를 마 운 트 하 는 것 은 상기 상황 이 없 을 것 입 니 다
  • 디 렉 터 리 를 마 운 트 하려 면 파일 권한 을 777, 즉 -rwxrwxrwx 으로 수정 해 야 합 니 다. 예 를 들 어 chmod 777 test.conf
  • 참조 링크
  • inode 지식:http://www.ruanyifeng.com/blog/2011/12/inode.html
  • docker 마 운 트 토론:https://github.com/moby/moby/issues/15793
  • 좋은 웹페이지 즐겨찾기