docker 학습 노트: 시작 할 수 없 는 용기 의 내용 을 수정 합 니 다.

4415 단어
용기 실행 과정 에서 용기 의 내용 (예 를 들 어 프로필 정보) 을 수 정 했 지만 수정 에 문제 가 생 겼 기 때문에 이러한 문제 에 부 딪 힐 수 있 습 니 다.용기 가 꺼 지면 시작 할 수 없습니다.
이 일 은 프로필 을 다시 수정 해 야 합 니 다.정상 적 인 상황 에서 docker exec 명령 을 통 해 용기 의 셸 터미널 을 열 어 수정 할 수 있 습 니 다.
하지만 이 때 는 용기 가 작 동 하지 않 는 다.이 때 는 어떻게 처리 해 야 합 니까?이것 은 두 가지 방안 이 있다.
프로젝트 1: 새 미 러 만 들 기
이 문제 용 기 를 docker commt 로 새 미 러 에 제출 한 다음 docker run - it 로 새 미 러 를 기반 으로 새 용 기 를 실행 하여 설정 파일 을 변경 합 니 다.
새로운 용 기 를 통 해 새로운 미 러 를 제출 한 다음 새로운 미 러 를 기반 으로 용 기 를 다시 시작 합 니 다 (최초의 용기 와 같 습 니 다).
이 방법 은 실행 가능 하지만 문 제 는 절차 가 많 고 새로운 미 러 를 제출 하여 후속 유지 에 복잡성 을 증가 시 켰 다 는 것 이다.
 
프로젝트 2: 용기 의 파일 을 직접 수정 합 니 다.
모든 용기 데 이 터 는/var/lib/docker/aufs/diff/경로 에 존재 합 니 다.예 를 들 면:
root@ubuntu:~# ls /var/lib/docker/aufs/diff/ -l
total 176
drwxr-xr-x  2 root root 4096 Mar  6 05:13 040bf8e0842564e26e62f3e3a30785bd9651c82c52ed99115cd5360ce979e680
drwxr-xr-x  6 root root 4096 Mar  6 05:13 04f7e78a2c8ac9664503f4ea5a1d94bf27b94620987f241cfb9fd6631f761113
drwxr-xr-x  2 root root 4096 Mar 11 01:07 0c666375883f81ba0fc3962368766e93710f59c072a4b80cdf5640323018ccdb
drwxr-xr-x  4 root root 4096 Mar 11 07:53 0d7fc1722e459b242140ec45faec754d4967d72ea2ddf321f8606c837f8e8d4f
drwxr-xr-x  6 root root 4096 Mar 11 07:53 0d7fc1722e459b242140ec45faec754d4967d72ea2ddf321f8606c837f8e8d4f-init
drwxr-xr-x  3 root root 4096 Mar  6 05:13 0dc5e226a795507723362cc16046cf16650f8f70dc7bb721b799a5f2a40512ce
drwxr-xr-x  2 root root 4096 Mar  6 05:13 0fd3b6e125673affc1f348cdb0c071782bde7d7ab4748bea3e30bc2d1d7ea7ab
......................

하나의 용기 의 데 이 터 는 그 중의 하나 이상 의 디 렉 터 리 에 대응 합 니 다.그 중에서 디 렉 터 리 이름 의 앞 자리 가 용기 의 ID 인 데 이 를 통 해 용기 와 디 렉 터 리 의 대응 관 계 를 알 수 있 습 니 다.이 디 렉 터 리 는 루트 사용자 로 실행 해 야 합 니 다.
구체 적 인 조작 절 차 는 다음 과 같다.
1. 현재 디 렉 터 리 설정  cd/var/lib/docker/aufs/diff/
2. 수정 할 프로필 이 용기 에 있 는 위 치 를 찾 습 니 다.
find ./-name 'nginx.conf'
만약 에 우리 가 수정 하고 자 하 는 것 이 ngix. conf 파일 이 라 고 가정 하면 가능 한 결 과 는 다음 과 같 습 니 다.
./eb531927ba243b59f0db78848809423f7debe148a9ef972088ea41be73c2aa81/etc/nginx/nginx.conf./4975acfb30f3f729ac08a9c1bd642f735298a47057fc7c414c7479696b80f36a/etc/nginx/nginx.conf./6fce3cb01e3c9b8cc4e1fc270c012b1d0b666fe49ad8b6bededb99e295c5da4c/etc/nginx/nginx.conf
이 때 우 리 는 용기 의 ID 와 위 에 있 는 디 렉 터 리 의 접 두 사 를 비교 해 보면 어떤 프로필 을 수정 해 야 하 는 지 알 수 있 습 니 다.
만약 에 우리 가 4975 acfb30f3f729ac08a9c1bd642f735298a 47057 fc7c414c 7479696 b80f36a 디 렉 터 리 에 들 어가 면 이 디 렉 터 리 의 내용 은 Liux 와 디 렉 터 리 의 디 렉 터 리 구조 가 매우 유사 하 다 는 것 을 알 수 있 습 니 다.우 리 는 관련 프로필 을 찾 아서 직접 수정 할 수 있다.
설명: 한 용기 의 파일 시스템 은 수정 할 수 없 는 미 러 층 과 수정 가능 한 읽 기 쓰기 층 을 포함 하기 때문에 이 디 렉 터 리 아래 는 읽 기 쓰기 층 의 내용 입 니 다.
3. 수정 완료 후 docker start 용기 이름/ID 사용  용 기 를 다시 시작 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기