Diagram.png

왜 하는가?

  1. 컨테이너의 데이터를 백업(보존)한다.
  2. 호스트의 데이터를 삽입

여기서 volume은 디스크에서의 volume과 조금 다르다. Volume이라는 하나의 논리적 단위로 묶는다고 보면 된다(NFS의 mount와 비슷한 개념).

command

  1. root@ubuntu:~# ls

    root@ubuntu:~# ls
    cptest.txt  index.html  snap
    
  2. root@ubuntu:~# mkdir /vtest root@ubuntu:~# mv index.html /vtest/ root@ubuntu:~# ls /vtest

    root@ubuntu:~# mkdir /vtest
    root@ubuntu:~# mv index.html /vtest/
    root@ubuntu:~# ls /vtest
    index.html
    
  3. root@ubuntu:~# docker rm -f kakao

    root@ubuntu:~# docker rm -f kakao
    kakao
    
  4. root@ubuntu:~# docker run --name kakao -dp 888:80 -v /vtest:/usr/local/apache2/htdocs httpd

    81a7d12bdb6399572327a753c41daa55f3a2cbe97cf9c82b829b886bc4066131
    

    이 작업을 함으로써 container의 파일이 host의 파일로 overwrite된다.

    즉 **왜 하는가?**의 2. 호스트의 데이터를 삽입에 해당한다.

  5. root@ubuntu:~# curl localhost:888

    root@ubuntu:~# curl localhost:888
    <h1>Hello</h1>
    

실습

kakao2라는 httpd 컨테이너를 생성해서 외부포트 8888로 bind하고 host의 /vtest2와 컨테이너의 /user/local/apache2/htdocs를 볼륨을 형성하는 컨테이너를 생성하라.

  1. root@ubuntu:~# mkdir /vtest2
  2. root@ubuntu:~# docker run --name kakao2 -dp 8888:80 -v /vtest2:/usr/local/apache2/htdocs httpd
  3. root@ubuntu:~# ls /vtest2