수색…


데이터 전용 컨테이너

데이터 전용 컨테이너는 폐기되었으며 이제는 안티 ​​패턴으로 간주됩니다!

예전에는 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 의 데이터 볼륨을 첨부한다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow