방법: 1. 실행 명령을 사용합니다. 구문은 "docker run --name test1 -it -v"입니다. 2. dockerfile의 VOLUME 명령을 사용하여 마운트 지점을 생성합니다. 구문은 "VOLUME ["/data1입니다. ","/data2 "]" 3. 컨테이너 공유 볼륨을 사용합니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.
docker의 마운트 방법은 무엇입니까
VOLUME 명령을 소개하기 전에 다음 시나리오 요구 사항을 살펴보겠습니다.
1 컨테이너는 이미지를 기반으로 생성되며 최종 컨테이너 파일 시스템에는 읽기- 이미지 레이어 + 가능 쓰기 레이어에서는 컨테이너의 프로세스 작업에 대한 데이터 지속성이 컨테이너의 쓰기 가능한 레이어에 저장됩니다. 컨테이너가 삭제되면 수동으로 백업하거나 컨테이너를 기반으로 새 이미지를 생성하지 않는 한 데이터는 사라집니다. 컨테이너 프로세스에서 유지되는 데이터를 호스트에 저장할 수 있나요? 이런 방식으로 컨테이너가 삭제되더라도 데이터는 그대로 유지됩니다.
2. 웹 애플리케이션을 개발할 때 개발 환경은 호스트에 로컬이지만 실행 중인 테스트 환경은 도커 컨테이너에 배치됩니다.
이 경우 호스트에서 파일(예: html, js 등)을 수정한 후 해당 파일을 컨테이너에 동기화해야 합니다. 이것은 분명히 더 문제가 됩니다.
3. 여러 컨테이너가 일련의 관련 서비스를 실행하고 싶다면 어떻게 해야 할까요?
물론 우리는 이러한 문제에 대한 다양한 해결책을 생각할 수 있습니다. Docker 자체는 호스트의 디렉터리를 컨테이너의 디렉터리(마운트 지점 또는 볼륨이라고 함)와 연결할 수 있는 메커니즘을 제공합니다. 컨테이너의 탑재 지점 아래에 있는 콘텐츠는 호스트와 유사합니다. Linux 시스템의 마운트 메커니즘. 이 경우 호스트의 디렉터리 내용을 수정하면 컨테이너를 동기화할 필요가 없으며 컨테이너에 즉시 적용됩니다. 탑재 지점은 여러 컨테이너에서 공유될 수 있습니다.
구체적인 구현 메커니즘을 소개하겠습니다.
먼저 docker run 명령을 전달합니다
1. 다음 명령을 실행합니다: docker run --name test -v /home/xqh/myimage:/data ubuntu /bin/bash
-v 플래그는 컨테이너 마운트 지점 /data(컨테이너의 디렉터리), 호스트의 /home/xqh/myimage 디렉터리 내용을 /data에 연결합니다.
이러한 방식으로 컨테이너의 /data 디렉터리에 대한 작업과 호스트의 /home/xqh/myimage에 대한 작업은 실시간으로 완전히 동기화됩니다. 왜냐하면 이 두 디렉터리가 실제로 호스트 디렉터리를 가리키기 때문입니다.
2. docker run --name test1 -it -v /data ubuntu /bin/bash 명령을 실행합니다.
위의 -v 플래그는 컨테이너의 마운트 지점만 설정하고 연결된 호스트 디렉터리를 지정하지 않습니다. 이때 docker는 자동으로 호스트의 디렉터리를 바인딩합니다. docker Inspection 명령을 통해 확인할 수 있습니다.
xqh@ubuntu:~/myimage$ docker inspect test1 [ { "Id": "1fd6c2c4bc545163d8c5c5b02d60052ea41900a781a82c20a8f02059cb82c30c", ............................. "Mounts": [ { "Name": "0ab0aaf0d6ef391cb68b72bd8c43216a8f8ae9205f0ae941ef16ebe32dc9fc01", "Source": "/var/lib/docker/volumes/0ab0aaf0d6ef391cb68b72bd8c43216a8f8ae9205f0ae941ef16ebe32dc9fc01/_data", "Destination": "/data", "Driver": "local", "Mode": "", "RW": true } ],
위 마운트 아래의 각 정보는 컨테이너의 마운트 지점 정보를 기록합니다. "Destination" 값은 컨테이너의 마운트 지점이고 "Source" 값은 해당 호스트 디렉터리입니다. 이 방법에 해당하는 호스트 디렉터리가 자동으로 생성되는 것을 볼 수 있는데, 그 목적은 호스트에서 수정하는 것이 아니라 여러 컨테이너와 공유하는 것이다.
2 dockerfile을 통해 마운트 지점 생성
위에서 설명한 docker run 명령의 -v 플래그를 통해 생성된 마운트 지점은 생성된 컨테이너에만 유효할 수 있습니다. dockerfile의 VOLUME 지시문을 통해 이미지에 탑재 지점을 만들 수 있으므로 이미지를 통해 생성된 모든 컨테이너에는 탑재 지점이 있습니다. 또 다른 차이점은 VOLUME 명령을 통해 생성된 마운트 포인트는 호스트의 해당 디렉터리를 지정할 수 없으며 자동으로 생성된다는 점이다.
#test FROM ubuntu MAINTAINER hello1 VOLUME ["/data1","/data2"]
위의 Dockfile은 VOLUME 명령을 통해 두 개의 마운트 지점 /data1 및 /data2를 지정합니다.
dockerspect를 사용하여 이 dockerfile에서 생성된 이미지로 생성된 컨테이너를 볼 수 있으며 다음 정보를 볼 수 있습니다
"Mounts": [ { "Name": "d411f6b8f17f4418629d4e5a1ab69679dee369b39e13bb68bed77aa4a0d12d21", "Source": "/var/lib/docker/volumes/d411f6b8f17f4418629d4e5a1ab69679dee369b39e13bb68bed77aa4a0d12d21/_data", "Destination": "/data1", "Driver": "local", "Mode": "", "RW": true }, { "Name": "6d3badcf47c4ac5955deda6f6ae56f4aaf1037a871275f46220c14ebd762fc36", "Source": "/var/lib/docker/volumes/6d3badcf47c4ac5955deda6f6ae56f4aaf1037a871275f46220c14ebd762fc36/_data", "Destination": "/data2", "Driver": "local", "Mode": "", "RW": true } ],
예 두 마운트 지점에 대한 정보를 확인하세요.
3개의 컨테이너 공유 볼륨(마운트 지점)
다음으로 /data1 및 /data2 볼륨을 test1(이미 생성된 컨테이너)과 공유할 수 있는 다른 컨테이너를 만듭니다. 이는 docker에서 --volumes-from 플래그를 사용하여 수행됩니다. run. 및 /data2 및 디렉터리 콘텐츠가 공유됩니다. 컨테이너가 콘텐츠를 수정하면 다른 컨테이너가 해당 콘텐츠를 얻을 수 있습니다.
네 가지 모범 사례: 데이터 컨테이너
여러 컨테이너가 데이터(예: 영구 데이터베이스, 구성 파일 또는 데이터 파일 등)를 공유해야 하는 경우 1개 이상의 볼륨이 있는 특정 데이터 컨테이너 생성을 고려할 수 있습니다.
다른 컨테이너는 –volumes-from을 통해 이 데이터 컨테이너의 볼륨을 공유합니다.
컨테이너의 볼륨은 기본적으로 호스트의 디렉터리에 해당하므로 이 데이터 컨테이너를 시작할 필요가 없습니다.
예: docker run --name dbdata myimage echo "data Container"
설명: 볼륨이 있고 컨테이너 간 데이터 공유가 더 편리하지만 권한 제어 등 해결해야 할 문제도 많습니다. , 데이터 백업, 볼륨 삭제 등 해당 내용은 후속 글에서 소개하겠습니다.
추천 학습: "
docker 비디오 튜토리얼"
위 내용은 docker의 장착 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

docker中rm和rmi的区别:rm命令用于删除一个或者多个容器,而rmi命令用于删除一个或者多个镜像;rm命令的语法为“docker rm [OPTIONS] CONTAINER [CONTAINER...]”,rmi命令的语法为“docker rmi [OPTIONS] IMAGE [IMAGE...]”。

docker官方镜像有:1、nginx,一个高性能的HTTP和反向代理服务;2、alpine,一个面向安全应用的轻量级Linux发行版;3、busybox,一个集成了三百多个常用Linux命令和工具的软件;4、ubuntu;5、PHP等等。

docker容器重启后数据会丢失的;但是可以利用volume或者“data container”来实现数据持久化,在容器关闭之后可以利用“-v”或者“–volumes-from”重新使用以前的数据,docker也可挂载宿主机磁盘目录,用来永久存储数据。

docker对于小型企业、个人、教育和非商业开源项目来说是免费的;2021年8月31日,docker宣布“Docker Desktop”将转变“Docker Personal”,将只免费提供给小型企业、个人、教育和非商业开源项目使用,对于其他用例则需要付费订阅。

docker能安装oracle。安装方法:1、拉取Oracle官方镜像,可以利用“docker images”查看镜像;2、启动容器后利用“docker exec -it oracle11g bash”进入容器,并且编辑环境变量;3、利用“sqlplus /nolog”进入oracle命令行即可。

解决方法:1、停止docker服务后,利用“rsync -avz /var/lib/docker 大磁盘目录/docker/lib/”将docker迁移到大容量磁盘中;2、编辑“/etc/docker/daemon.json”添加指定参数,将docker的目录迁移绑定;3、重载和重启docker服务即可。

AUFS是docker最早支持的存储引擎。AUFS是一种Union File System,是文件级的存储驱动,是Docker早期用的存储驱动,是Docker18.06版本之前,Ubuntu14.04版本前推荐的,支持xfs、ext4文件。

容器管理ui工具有:1、Portainer,是一个轻量级的基于Web的Docker管理GUI;2、Kitematic,是一个GUI工具,可以更快速、更简单的运行容器;3、LazyDocker,基于终端的一个可视化查询工具;4、DockStation,一款桌面应用程序;5、Docker Desktop,能为Docker设置资源限制,比如内存,CPU,磁盘镜像大小;6、Docui。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
