Artikel ini memberi anda pengetahuan tentang volum data dalam docker Volume data boleh dikongsi atau digunakan semula antara bekas Perubahan dalam volum data tidak akan disertakan dalam kemas kini imej semua orang.
Pembelajaran yang disyorkan: "tutorial video buruh pelabuhan"
Menggunakan docker Apabila bekas dibuat, satu siri fail data akan dijanakan fail data ini akan hilang apabila bekas docker dipadamkan, tetapi beberapa kandungan yang dijana dijangka disimpan untuk tujuan lain Apabila dibungkus ke dalam bekas dan dikeluarkan, pengaturcara berharap beberapa data yang dijana semasa proses berjalan dapat dikekalkan dan kami berharap dapat berkongsi data antara bekas.
Secara umumnya, volum data bekas docker boleh dianggap sebagai cakera USB yang biasa digunakan Ia wujud dalam satu atau lebih bekas dan dipasang pada bekas oleh docker, tetapi ia bukan milik sistem fail bersama. . Docker tidak Jumlah data yang dipasang pada bekas akan dipadamkan apabila ia dipadamkan.
Jumlah data boleh berkongsi atau menggunakan semula data antara bekas
Perubahan dalam volum data boleh berkuat kuasa serta-merta
Jumlah data Perubahan akan tidak disertakan dalam kemas kini imej
Volume data akan sentiasa wujud secara lalai, walaupun bekas itu dipadamkan
Kitaran hayat volum data berterusan sehingga tiada bekas menggunakannya
Jumlah Data: Jilid Data Data dalam bekas dipetakan terus ke persekitaran hos setempat
Bekas Isipadu Data: Bekas Isipadu Data Gunakan bekas tertentu untuk mengekalkan data volume
Syntax
Salin fail hos ke bekas
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
Salin fail dalam bekas ke hos
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
Parameter biasa
-L: Simpan pautan dalam sasaran sumber
Penggunaan asas
Salin fail hos ke bekas
docker cp /data/index.html nginx:/usr/share/nginx/html/index.html
Dalam bekas Salin fail ke hos
docker cp nginx:/etc/nginx/nginx.conf /data
Volume data (Volume Data) ialah direktori khas yang boleh digunakan oleh satu atau lebih banyak bekas. Ia mengarahkan direktori sistem pengendalian hos ke dalam bekas.
Nota tentang volum data
Untuk melekapkan volum data, sebaiknya buat bekas permulaan melalui run dan bukannya cipta/mulakan Selepas arahan buat/mula mencipta bekas permulaan, Agak menyusahkan untuk memasang semula volum data dan memerlukan mengubah suai banyak fail konfigurasi, tetapi ia tidak mustahil.
Tapak web rasmi Docker mengesyorkan memasang direktori sebanyak mungkin dan tidak memasang fail
Jenis volum data
Volume data hos: terus pada hos Dalam sistem fail tetapi bekas boleh mengakses (bind mount)
volum data bernama: volum data yang diuruskan oleh Docker pada cakera, tetapi volum ini mempunyai nama.
Jumlah data tanpa nama: volum data yang diuruskan oleh Docker pada cakera Ia tidak mudah dicari kerana tiada nama yang mengurus fail ini.
Volume data hos
bind mounts: Data dalam bekas disimpan di mana-mana dalam sistem fail hos, walaupun dalam beberapa direktori sistem penting atau fail tengah. Proses selain daripada docker juga boleh mengubah suainya sewenang-wenangnya.
Apabila menggunakan bind mounts, direktori hos atau fail dipasang ke dalam bekas. Bekas akan menggunakan atau mengubah suai data hos mengikut laluan mutlak direktori atau fail pelekap. Direktori atau fail dalam hos tidak perlu wujud terlebih dahulu dan akan dibuat secara automatik apabila diperlukan.
Menggunakan pelekap bind adalah sangat baik dari segi prestasi, tetapi ini bergantung pada hos yang mempunyai sistem fail berstruktur dengan betul.
Bekas yang menggunakan pelekap bind boleh mengubah suai sistem fail hos melalui proses di dalam bekas, termasuk mencipta, mengubah suai dan memadam fail sistem dan direktori penting Walaupun fungsi ini sangat berkuasa, ia jelas akan menyebabkan masalah keselamatan. Kesan pada aspek, termasuk kesan pada proses selain Docker pada mesin hos
Nota
Jika anda melekapkan volum data kosong ke direktori tidak kosong dalam bekas, maka dalam ini direktori Fail akan disalin ke volum data
Jika anda melekapkan volum data bukan kosong ke direktori dalam bekas, direktori dalam bekas akan memaparkan data dalam volum data. Jika direktori dalam bekas asal mempunyai data, data asal akan disembunyikan
Penggunaan asas
Sintaks
docker run -v /宿主机绝对路径目录:/容器内目录 镜像名
Penggunaan asas
docker run -itd --name mysql --restart always --privileged=true -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin -v /data/mysql:/var/lib/mysql mysql:5.7.31 --character-set-server=utf8 --collation-server=utf8_general_ci
Kebenaran direktori kontena
Tukar kebenaran baca dan tulis melalui laluan kontena -v: ro rw ro:baca sahaja baca sahaja
rw:readwrite boleh dibaca dan ditulis
docker run - it -v /Direktori laluan mutlak hos:/Direktori kontena:ro Nama imej
docker run -it -v /Direktori laluan mutlak hos:/Direktori kontena:rw Nama imej
Contohnya:
docker run -d -P --name nginx05 -v nginx1:/etc/nginx:ro nginx docker run -d -P --name nginx05 -v nginx2:/etc/nginx:rw nginx
ro Selagi anda melihat ro, ini bermakna laluan ini hanya boleh dikendalikan melalui hos dan tidak boleh dikendalikan di dalam bekas!
Jumlah data bernama
Penggunaan asas
docker run -itd --name nginx -p 80:80 -v lagouedu-nginx:/etc/nginx nginx:1.19.3-
alpine
Lihat volum data docker volume docker ls
Lihat direktori hos lagouedu-nginx
docker volume inspect lagouedu-nginx
Masukkan direktori lalai volum data docker
cd /var/lib/docker/volumes/lagouedu-nginx
Lihat fail
ls
Semua fail docker simpan dalam direktori _data secara lalai cd _data
Padam bekas
docker rm $(docker stop $(docker ps -aq))
查看挂载数据是否还存在,通过查看数据,发现删除容器后,宿主机中的数据还存在
ls
匿名数据卷
基本使用
docker run -itd --name nginx -p 80:80 -v /etc/nginx nginx:1.19.3-alpine 查看docker数据卷 docker volume ls
查看宿主机目录
docker volume inspect dbd07daa4e40148b11....
进入docker数据卷默认目录
cd /var/lib/docker/volumes/dbd07daa4e40148b11....
查看文件
ls
所有的文件docker默认保存在_data目录中 cd _data
删除容器
docker rm $(docker stop $(docker ps -aq))
查看挂载数据是否还存在,通过查看数据,发现删除容器后,宿主机中的数据还存在
ls
run命令
常用参数
--volumes-from
如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器
也是一个容器,但是它的目的是专门用来提供数据卷供其他容器挂载。
发现创建好的数据卷容器是处于停止运行的状态,因为使用 —volumes-from 参数所挂载数据卷的容器 自己并不需要保持在运行状态。
基本使用
docker run -d --name data-volume -v /data/nginx:/usr/share/nginx/html -v /data/mysql:/var/lib/mysql centos:7.8.2003 docker run -itd --name nginx01 -p 80:80 --volumes-from data-volume nginx:1.19.3- alpine echo "nginx" > /data/nginx/index.html http://192.168.198.100 docker run -itd --name nginx02 -p 81:80 --volumes-from data-volume nginx:1.19.3- alpine http://192.168.198.100:81 docker run -itd --name mysql01 --restart always --privileged=true -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin --volumes-from data-volume mysql:5.7.31 -- character-set-server=utf8 --collation-server=utf8_general_ci docker run -itd --name mysql02 --restart always --privileged=true -p 3307:3306 -e MYSQL_ROOT_PASSWORD=admin --volumes-from data-volume mysql:5.7.31 -- character-set-server=utf8 --collation-server=utf8_general_ci
推荐学习:《docker视频教程》
Atas ialah kandungan terperinci Tutorial paling terperinci tentang mengatur volum data buruh pelabuhan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!