Docker 시리즈(11부): 컨테이너 수명 및 영구 데이터

8308 단어 docker
영구 데이터는 자주 액세스하지 않고 수정할 가능성이 없는 정보를 의미합니다.

따라서 기본적으로 변경하지 않을 일부 데이터가 있습니다. 예를 들어 mysql's repository으로 이동하면 다음과 같습니다.
볼륨 명령을 볼 수 있습니다. mysql 이미지를 삭제하더라도 여전히 이 볼륨 부분을 수동으로 삭제해야 합니다. 이것



볼륨 명령은 볼륨이 컨테이너 아래에 상주할 위치를 의미합니다.

다음을 사용하여 mysql 이미지를 가져옵니다.



docker pull mysql


이제 다음을 검사해 보겠습니다.

docker image inspect mysql



볼륨 부분을 볼 수 있습니다.

이제 이 이미지를 사용하여 컨테이너를 만들어 보겠습니다.

docker container run -d --name mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=True mysql




이제 다음을 사용하여 컨테이너를 검사할 수 있습니다.

docker container inspect mysql


볼륨이 마운트 아래에 있는 것을 볼 수 있습니다.


따라서 컨테이너의 위치가 /var/lib/mysql로 표시되지만 데이터는 실제로 이 링크/var/lib/docker/volumes/c266a73520c0c30bd758b9facba1677540dbbc1446edc7f7dc03cbda84be732c/_data에 있음을 알 수 있습니다. 도커 폴더 아래에 볼륨 폴더가 보이시죠?
사용하여 볼륨을 확인하면

docker volume ls


마지막 볼륨이 mysql 컨테이너를 생성하는 동안 생성된 볼륨임을 알 수 있습니다.


볼륨은 c266a73520c0c30bd758b9facba1677540dbbc1446edc7f7dc03cbda84be732c입니다.
볼륨도 확인할 수 있습니다



우리는 실제로 이 볼륨 안에 무엇이 있는지 알 수 없습니다. 그래도 일종의 데이터베이스입니다.

이제 컨테이너를 중지하겠습니다.


mysql 컨테이너가 중지되었습니다.

이제 볼륨을 확인해보자


여전히 모든 볼륨이 있습니다. 실행 중인 컨테이너는 없지만.



컨테이너를 제거하겠습니다.



그리고 볼륨 확인


볼륨이 아직 있습니다.
이제 볼륨 이름을 지정할 새 컨테이너를 생성하겠습니다. 그 이유는 볼륨 이름에서 실제로 어떤 컨테이너를 참조하는지 알 수 없기 때문입니다. 우리는 미래에 어떤 문제도 원하지 않습니다. 따라서 볼륨 명령(-v)을 사용하여 컨테이너를 만들 수 있습니다.

docker container run -d --name mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=True -v mysql-db:/var/lib/mysql   mysql


컨테이너에서 이미 사용 중인 /var/lib/mysql를 사용하고 있으며 이전에 본 것입니다.



하지만 mysql-db:를 추가했습니다. 이것은 볼륨을 지정하기 위한 명명 형식입니다.



이제 볼륨을 확인하겠습니다.



이제 새로 생성된 컨테이너를 참조하는 mysql-db 볼륨을 볼 수 있습니다. 볼륨을 검사하자



이제 우리가 만든 컨테이너를 검사할 수 있습니다.

docker container inspect mysql



마운트 아래에서 볼륨을 볼 수 있습니다.


이번에는 소스에 볼륨 IDmysql-db가 있습니다.



컨테이너를 생성하는 동안 볼륨 ID 및 대상을 정의했습니다. 기억하십니까?

또한 컨테이너를 생성하기 전에 볼륨을 생성할 수 있습니다. --help 명령을 사용하여 생성 명령과 함께 사용할 수 있는 명령을 확인합니다.

docker volume create --help


이제 우리가 복제한 dockerfile-sample-2this repository에 들어갈 수 있습니다.

폴더 안에 무엇이 있는지 볼 수 있습니다


dockerfile을 보면 다음과 같은 것을 볼 수 있습니다.


nginx 이미지를 사용하고 index.html을 작업 디렉토리에 복사한 것을 볼 수 있습니다.

이제 동일한 위치를 사용하여 컨테이너를 만들 수 있습니다.

docker container run -d --name nginx-container -p 80:80 -v $(pwd):/usr/share/nginx/html nginx



-v 명령(볼륨을 의미) 다음에 $(pwd)를 사용하여 작업 디렉토리를 인쇄하고 작업 디렉토리의 링크를 붙여넣었습니다.



우리는 컨테이너를 만들었습니다


컨테이너가 실행 중입니다.



이것이 우리가 만든 커스텀 nginx 컨테이너입니다.

또한 사용자 지정되지 않은 일반 컨테이너를 만들 수 있습니다.

docker container run -d --name nginx-container2 -p 8080:80  nginx




localhost:8080 서버에서 사용 가능한 것을 볼 수 있습니다.



Note:
Bind Mount: This is what is used when you are trying to map the files from a directory on the host into a directory in the container.  

좋은 웹페이지 즐겨찾기