볼륨 내용이 업데이트되었는지 확인하기 (초보자 용)

2919 단어 도커리눅스

소개



Docker에서 마운트하는 방법에 바인드 마운트와 볼륨 마운트가 있을까 생각합니다.
바인드 마운트는 마스터 환경에서 작성한 디렉토리에 데이터를 직접 퍼뜨리는 것으로 컨테이너에 직접 반영됩니다만, 볼륨 마운트는 DockerEngine상에 볼륨을 마운트 하기 때문에 볼륨의 내용을 확인하기 어려울까 생각합니다.
역기? 에서 볼륨 마운트에서 만든 볼륨의 내용을 확인하는 방법을 시도했지만 잊어 버릴 것 같아 비망록으로 남겨 둡니다.
이것을 쓰고 있는 현재, Docker를 배우기 시작해 1개월 정도 & 엔지니어조차 없기 때문에, 「그런 것 뭐라고 하는 확인 방법이다」 「그냥 2중 체크에 지나지 않는다」라고 생각될지도 모릅니다만, 따뜻하게 지적해 주시면 기쁩니다.
나 자신 인프라적 지식도 프로그래밍 스킬도 초보자이므로, 초보자도 알기 쉬운 내용이 되어 있으면 좋다고 생각합니다.

환경



・Windows10 Home(64bit)
· DockerDesktop for Windows (WSL2)

그림



볼륨을 마운트 한 apache 컨테이너를 시작하고 거기에 html 파일을 만드는 몸으로 진행합니다.
볼륨 마운트에서 마운트된 볼륨의 내용을 확인하기 위해 확인용 Linux 컨테이너 별도로 부팅하고 볼륨에 연결하여 확인해 봅니다.


① 볼륨 생성


$ docker volume create hoge_volume

② 볼륨이 마운트된 Apache 컨테이너를 시작합니다.


$ docker run --name hoge_apache -d -p 8080:80 -v hoge_volume:/usr/local/apache2/htdocs httpd

공식적으로 제공되는 Apache 이미지를 사용합니다.
이제 볼륨이 마운트된 Apache 컨테이너가 시작되었습니다.
제대로 시작할 수 있는지 확인해 봅니다.
브라우저에 http://localhost:8080/를 입력합니다. 제대로 기동되어 있는 것을 확인할 수 있었습니다.


③ 같은 볼륨이 마운트된 linux(ubuntu) 컨테이너를 기동한다


$ docker run --name hoge_ubuntu -dit -v hoge_volume:/home ubuntu

apache 컨테이너와 동일한 볼륨에 마운트된 리눅스 컨테이너가 시작되었습니다.

④ 볼륨내의 html 파일을 갱신해 본다


<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <h1>更新したよ</h1>
  </body>
</html>

볼륨의 html 파일을 위로 변경합니다.
이번에는 마스터 (windows) 문서 아래에 "hoge_directory"폴더를 만들고 업데이트 용 html 파일을 만들었습니다.
이것을 cp 명령으로 볼륨으로 옮깁니다.
$ docker cp C:\Users\[ユーザー名]\Documents\hoge_directory\index.html hoge_apache:/usr/local/apache2/htdocs/

⑤ 볼륨내가 제대로 갱신되고 있는지 확인해 본다



cp 커멘드로 갱신했으므로, Apache 컨테이너의 htdocs아래를 조사하면 물론 갱신되고 있습니다만, 제대로 볼륨내가 갱신되고 있는지 Linux 컨테이너로부터 확인해 보겠습니다.
Linux 컨테이너에서는 /home 디렉토리에 볼륨을 마운트하고 있으므로, 여기가 제대로 갱신되고 있으면 정상적으로 볼륨내가 갱신되었다고 하는 것이 되지요.
$ docker exec -it hoge_ubuntu /bin/sh

위 명령으로 Linux 컨테이너에 들어갑니다./home 디렉토리를 확인해보십시오.

제대로 업데이트되었습니다!

root 권한으로 확인하거나 볼륨 내를 확인하는 전용 이미지를 사용하는 방법 등 방법은 많이있는 것 같습니다만, 자신과 같은 초보자라면 이 방법 쪽이 이해하면서 진행될 것 같은 생각이 들었습니다.

좋은 웹페이지 즐겨찾기