Docker
데이터 볼륨 및 데이터 컨테이너
수색…
데이터 전용 컨테이너
데이터 전용 컨테이너는 폐기되었으며 이제는 안티 패턴으로 간주됩니다!
예전에는 Docker의 volume
하위 명령보다 먼저, 명명 된 볼륨을 만들 수 있기 전에 Docker는 volume
컨테이너에 대한 참조가 없을 때 볼륨을 삭제했습니다. Docker는 이제 다양한 docker volume
하위 명령을 통해 훨씬 많은 유틸리티뿐만 아니라 명명 된 볼륨을 생성 할 수있는 기능을 제공하므로 데이터 전용 컨테이너가 더 이상 사용되지 않습니다. 데이터 전용 컨테이너는 이제 이러한 이유로 안티 패턴으로 간주됩니다.
지난 2 년 동안의 웹상의 많은 자료에는 "데이터 전용 컨테이너"라는 패턴이 사용되었습니다.이 패턴은 데이터 볼륨에 대한 참조를 유지하기 위해 존재하는 단순히 Docker 컨테이너입니다.
이 컨텍스트에서 "데이터 볼륨"은 호스트에서 마운트되지 않은 Docker 볼륨임을 기억하십시오. 명확히하기 위해 "데이터 볼륨"은 VOLUME
Dockerfile 지시문을 사용하거나 docker run
명령의 -v
스위치를 사용하여 특히 -v /path/on/container
형식으로 생성되는 볼륨입니다. 따라서 "데이터 전용 컨테이너"는 데이터 볼륨이 연결된 유일한 목적의 컨테이너로, docker run
명령의 --volumes-from
플래그에 의해 사용됩니다. 예 :
docker run -d --name "mysql-data" -v "/var/lib/mysql" alpine /bin/true
위의 명령을 실행하면 "데이터 전용 컨테이너"가 만들어집니다. 단순히 데이터 볼륨이 연결된 빈 컨테이너 일뿐입니다. 다음과 같이 다른 볼륨에서이 볼륨을 사용할 수있었습니다.
docker run -d --name="mysql" --volumes-from="mysql-data" mysql
이제 mysql
컨테이너는 mysql-data
에있는 것과 동일한 볼륨을 가진다.
Docker는 이제 volume
하위 명령과 명명 된 볼륨을 제공하므로이 패턴은 현재 사용되지 않으며 권장되지 않습니다.
volume
하위 명령 및 명명 된 볼륨을 시작하려면 명명 된 볼륨 만들기를 참조하십시오.
데이터 볼륨 만들기
docker run -d --name "mysql-1" -v "/var/lib/mysql" mysql
이 커멘드는, mysql
이미지로부터 새로운 컨테이너를 작성합니다. 또한 새로운 데이터 볼륨을 생성 한 다음 /var/lib/mysql
에있는 컨테이너에 마운트합니다. 이 볼륨은 내부의 모든 데이터가 컨테이너의 수명을 초과하여 지속되도록합니다. 즉, 컨테이너가 제거되면 파일 시스템 변경 사항도 제거됩니다. 데이터베이스가 컨테이너에 데이터를 저장하고 컨테이너가 제거되면 해당 데이터도 모두 제거됩니다. 볼륨은 컨테이너가 제거 된 후에도 특정 위치를 유지합니다.
--volumes-from
명령 줄 옵션을 사용하면 여러 볼륨에서 동일한 볼륨을 사용할 수 있습니다.
docker run -d --name="mysql-2" --volumes-from="mysql-1" mysql
mysql-2
컨테이너는 이제 /var/lib/mysql
경로를 사용하여 mysql-1
의 데이터 볼륨을 첨부한다.