Docker에서 볼륨을 만들고 컨테이너에 마운트하는 방법(볼륨 마운트)

3880 단어 도커마운트
이번에는 Docker에서 볼륨을 만들고 만든 컨테이너에 마운트하는 방법을 설명합니다.

Docker 두 종류의 마운트



우선 Docker에는 2종류의 마운트 방법이 있다.
① 볼륨 마운트
②바인드 마운트

①은 이번 설명하는 것으로, Docker Engine상에 새롭게 볼륨을 잘라, 그것을 컨테이너에 마운트하는 방법
<이미지>


②는 Docker를 인스톨 하고 있는 머신의 특정의 디렉토리를, 컨테이너에 마운트하는 방법(NAS같은 이미지)

볼륨 만들기



먼저 볼륨을 만들어 가자.
docker volume create testvolume01
> docker volume ls
(省略)
***
***
local     testvolume01

그 밖에도 컨테이너를 작성하고 있는 만큼, 볼륨이 작성되고 있다.

볼륨 상세보기


> docker inspect volume01

[
    {
        "CreatedAt": "2021-08-07T09:01:56Z",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/testvolume01/_data",
        "Name": "testvolume01",
        "Options": {},
        "Scope": "local"
    }
]

마운트 포인트는, docker내가 되어 있다.

Apache 컨테이너를 만들면서 볼륨 마운트


docker run -d --name=httpd_volume01 -p 8080:80 --mount type=volume,src=testvolume01,dst=/usr/local/apache2/htdocs/ httpd

/usr/local/apache2/htdocs/이 폴더에는 index.html이 들어 있다.
> docker ps -a
CONTAINER ID   IMAGE        COMMAND                  CREATED              STATUS                    PORTS                                   NAMES
0bdd01904904   httpd        "httpd-foreground"       About a minute ago   Up About a minute         0.0.0.0:8080->80/tcp, :::8080->80/tcp   httpd_volume01

httpd_volume01이라는 컨테이너가 작성되었습니다.

브라우저에 "http://localhost:8080/'를 입력하면 'IT works!"가 표시됩니다.

미리 만든 볼륨이 마운트되었는지 확인



'httpd_volume01' 컨테이너의 세부 사항을 살펴보자.
 > docker container inspect httpd_volume01

(省略)
            "Mounts": [
                {
                    "Type": "volume",
                    "Source": "testvolume01",
                    "Target": "/usr/local/apache2/htdocs/"
                }
            ],

(省略)


Source가 작성한 「testvolume01」인 것을 알 수 있다.

컨테이너 안으로 들어가서 index.html 업데이트


docker exec -it httpd_volume01 /bin/bash
# cd /usr/local/apache2/htdocs/
# ls
index.html

<viを使えるように>
# apt-get update   ←パッケージの更新
# apt-get install vim
# vi index.html

<「IT works!」を適当な文字に変更>
:wq 保存

방금 브라우저에서 "http://localhost:8080/'를 입력하면 변경된 문자열이 표시됩니다.

다른 컨테이너를 만들고 변경된 문자열이 표시되는지 확인



이것만으로는 정말로 마운트되고 있는지 모른다고 하는 분은 다른 컨테이너를 작성해 확인해 보세요.
docker run -d --rm --name=httpd_after_volume01 -p 8081:80 --mount type=volume,src=testvolume01,dst=/usr/local/apache2/htdocs/ httpd

새로운 브라우저에서 "http://localhost:8081/'라고 입력.
변경 후의 문자열이 표시되면, 무사히 볼륨내를 공유할 수 있는 것을 알 수 있다.

마지막으로



이번에는 Docker로 볼륨을 만들고 마운트를 해왔습니다.
다음 번에는 Docker의 호스트 OS 디렉토리와 마운트하는 "바인드 마운트"를 소개하고 싶습니다.

좋은 웹페이지 즐겨찾기