腳本創(chuàng)建容器,數(shù)據(jù)卷技術(shù)講解

j具名和匿名掛載,

docker run -d -P --name nginx01 -v /etc/nginx nginx

[root@localhost ~]# docker volume ls查看容器卷

DRIVER? ? VOLUME NAME

local? ? 8a0b0f68b5cc36a1ee1f08b9257e87f4bb6afaf27ba50a9590b26f8faf13ff23

local? ? 23638c079fd799dcbe42cc18784039ac5fc5096fbe421f3af892295405531153

local? ? a65de0db28679aec5865dc8c12b4c38706b1973095e30c051a570b5881644748

#這就是匿名掛載,這種就是匿名掛載,-v 只寫了容器內(nèi)的路徑,沒有寫容器外的路徑!

[root@localhost ~]# docker run -d -P --name nginx002 -v juming-nginx:/etc/nginx nginx

ac7905937938664debef1ac41d5da5d257c69cde900b1fcca21d6a9e39ccef4b

ERRO[0010] error waiting for container: context canceled

[root@localhost ~]# docker volume ls

DRIVER? ? VOLUME NAME

local? ? 8a0b0f68b5cc36a1ee1f08b9257e87f4bb6afaf27ba50a9590b26f8faf13ff23

local? ? 23638c079fd799dcbe42cc18784039ac5fc5096fbe421f3af892295405531153

local? ? a65de0db28679aec5865dc8c12b4c38706b1973095e30c051a570b5881644748

local? ? juming-nginx

#通過 -v 卷名:容器內(nèi)路徑

# 查看一下這個(gè)卷

# 所有docker容器內(nèi)的卷,沒有指定目錄的情懷下都是在/var/lib/docker/volumes/

[root@localhost ~]# docker volume inspect juming-nginx? 查看卷的路徑。

[

? ? {

? ? ? ? "CreatedAt": "2022-01-04T16:07:45+08:00",

? ? ? ? "Driver": "local",

? ? ? ? "Labels": null,

? ? ? ? "Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data",

? ? ? ? "Name": "juming-nginx",

? ? ? ? "Options": null,

? ? ? ? "Scope": "local"

? ? }

]

通過具名掛載,可以方便的找到我們的一個(gè)卷/var/lib/docker/volumes/xxxxx/_data"




如何確定是匿名掛載,還是匿名掛載,還是指定路徑掛載

-v 容器內(nèi)路徑 #匿名掛載

-v 卷名:容器內(nèi)路徑,#具名掛載

-v /宿主機(jī)路徑::容器內(nèi)路徑# 指定路徑掛載

通過-v r容器內(nèi)路徑:ro rw 改變讀寫權(quán)限

一旦這個(gè)設(shè)置了容器權(quán)限,容器對我們掛載處理的內(nèi)容就有了限定


docker run -d -P --name nginx002 -v juming-nginx:/etc/nginx:ro nginx

docker run -d -P --name nginx002 -v juming-nginx:/etc/nginx:rw nginx

ro 只能通過宿主機(jī)來操作,容器內(nèi)無法操作。

docker Dockerfile 通過構(gòu)建docker鏡像來構(gòu)建鏡像文件

[root@localhost volumes]# cd /root/

[root@localhost ~]# ls

anaconda-ks.cfg? javase8u211-later-archive-downloads.html

docker? ? ? ? ? mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

hava.java? ? ? ? --restart=alwys

hellworld.sh? ? shcode

hi.sh

[root@localhost ~]# mkdir docker-test-volume

[root@localhost ~]# ls

anaconda-ks.cfg? ? hellworld.sh? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --restart=alwys

docker? ? ? ? ? ? ? hi.sh? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? shcode

docker-test-volume? javase8u211-later-archive-downloads.html

hava.java? ? ? ? ? mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

[root@localhost ~]# pwd

/root

[root@localhost ~]# cd docker-test-volume/

#通過這個(gè)腳本生成鏡像,

#創(chuàng)建這個(gè)dockerfile 名字可以隨機(jī)簡易dockerfile

#內(nèi)容的內(nèi)容指令 (大寫) 參數(shù)


[root@localhost docker-test-volume]#vim dockerfile1? 這是一個(gè)匿名掛載

FROM centos


VOLUME ["volume01","volume02"]


CMD echo "----end----"

CMD /bin/bash

[root@localhost docker-test-volume]# docker build -f /root/docker-test-volume/dockerfile1 -t kuangshen/centos .

Sending build context to Docker daemon? 2.048kB

Step 1/4 : FROM centos? #基礎(chǔ)鏡像

---> 5d0da3dc9764

Step 2/4 : VOLUME ["volume01","volume02"]? #掛載

---> Running in 8212d31a8792

Removing intermediate container 8212d31a8792

---> 1d880eac6083

Step 3/4 : CMD echo "----end----"? #內(nèi)部命令

---> Running in 881decd98364

Removing intermediate container 881decd98364

---> 6acfe7404567

Step 4/4 : CMD /bin/bash #生成

---> Running in e3bd5228a158

Removing intermediate container e3bd5228a158

---> 1db844ed918a

Successfully built 1db844ed918a

Successfully tagged kuangshen/centos:latest


[root@localhost docker-test-volume]# docker images

REPOSITORY? ? ? ? ? ? TAG? ? ? IMAGE ID? ? ? CREATED? ? ? ? SIZE

kuangshen/centos? ? ? latest? ? 1db844ed918a? 2 minutes ago? 231MB

tomcat0001? ? ? ? ? ? 1.0? ? ? 09ef6b2e826f? 25 hours ago? ? 684MB

tomcat0001? ? ? ? ? ? latest? ? a22c9a74a6f8? 25 hours ago? ? 684MB

tomcat? ? ? ? ? ? ? ? latest? ? 13b1026f5ad2? 25 hours ago? ? 684MB

nginx? ? ? ? ? ? ? ? latest? ? 605c77e624dd? 5 days ago? ? ? 141MB


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 路徑? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? docker run -it 1db844ed918a? 后面沒有跟/bin/bash 因?yàn)槟莻€(gè)腳本可以直接進(jìn)去

? 注意這里是進(jìn)入這個(gè)鏡像所創(chuàng)建的容器,并不知道這個(gè)容器id需要在宿主機(jī)外面輸入

docker inspect? 容器id 才可以 找到宿主機(jī)創(chuàng)建的同步文件夾,


?

docker inspect? 容器id 才可以 找到宿主機(jī)創(chuàng)建的同步文件夾,

"Mounts": [

? ? ? ? ? ? {

? ? ? ? ? ? ? ? "Type": "volume",

? ? ? ? ? ? ? ? "Name": "16da86bfbad9cdeb8acb94008b8a95e21310070253e9305069f254f8287951c2",

? ? ? ? ? ? ? ? "Source": "/var/lib/docker/volumes/16da86bfbad9cdeb8acb94008b8a95e21310070253e9305069f254f8287951c2/_data",

? ? ? ? ? ? ? ? "Destination": "volume02",

? ? ? ? ? ? ? ? "Driver": "local",

? ? ? ? ? ? ? ? "Mode": "",

? ? ? ? ? ? ? ? "RW": true,

? ? ? ? ? ? ? ? "Propagation": ""



volume01? volume02 這個(gè)目錄是生成鏡像時(shí)自動(dòng)掛載的。數(shù)據(jù)卷目錄。

這個(gè)卷外部一定有一個(gè)同步的目錄。


[root@localhost docker-test-volume]# docker run -it 1db844ed918a 運(yùn)行這個(gè)鏡像

[root@77b9992258dc /]# ls

bin? etc? lib? ? lost+found? mnt? proc? run? srv? tmp? var? ? ? volume02

dev? home? lib64? media? ? ? opt? root? sbin? sys? usr? volume01

[root@77b9992258dc /]# ll

bash: ll: command not found

[root@77b9992258dc /]# ls -l

total 0

lrwxrwxrwx? 1 root root? 7 Nov? 3? 2020 bin -> usr/bin

drwxr-xr-x? 5 root root 360 Jan? 4 09:06 dev

drwxr-xr-x? 1 root root? 66 Jan? 4 09:06 etc

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 home

lrwxrwxrwx? 1 root root? 7 Nov? 3? 2020 lib -> usr/lib

lrwxrwxrwx? 1 root root? 9 Nov? 3? 2020 lib64 -> usr/lib64

drwx------? 2 root root? 6 Sep 15 14:17 lost+found

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 media

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 mnt

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 opt

dr-xr-xr-x 136 root root? 0 Jan? 4 09:06 proc

dr-xr-x---? 2 root root 162 Sep 15 14:17 root

drwxr-xr-x? 11 root root 163 Sep 15 14:17 run

lrwxrwxrwx? 1 root root? 8 Nov? 3? 2020 sbin -> usr/sbin

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 srv

dr-xr-xr-x? 13 root root? 0 Jan? 4 09:06 sys

drwxrwxrwt? 7 root root 171 Sep 15 14:17 tmp

drwxr-xr-x? 12 root root 144 Sep 15 14:17 usr

drwxr-xr-x? 20 root root 262 Sep 15 14:17 var

drwxr-xr-x? 2 root root? 6 Jan? 4 09:06 volume01

drwxr-xr-x? 2 root root? 6 Jan? 4 09:06 volume02

[root@77b9992258dc /]# cd /volume01? ? 掛載的的文件? (與宿主機(jī)是同步文件)

[root@77b9992258dc volume01]# ls

[root@77b9992258dc volume01]# touch container.txt

[root@77b9992258dc volume01]# docker inspect 1db844ed918a? 查看信息,不對需要到宿主機(jī)操作

bash: docker: command not found

[root@77b9992258dc volume01]# exit

exit

這里應(yīng)該查看容器的配置信息。操作錯(cuò)誤。

[root@localhost docker-test-volume]# docker inspect 1db844ed918a? 這這里查看的是這個(gè)鏡像的id

[

? ? {

? ? ? ? "Id": "sha256:1db844ed918ac3b36bb2acf4d81a057ca8055bb16e2f1f1096fb3c2714785932",

? ? ? ? "RepoTags": [

? ? ? ? ? ? "kuangshen/centos:latest"

? ? ? ? ],

? ? ? ? "RepoDigests": [],

? ? ? ? "Parent": "sha256:6acfe7404567644d755094fc630707a7a9f336438484e1917a5f48725e61fdb4",

? ? ? ? "Comment": "",

? ? ? ? "Created": "2022-01-04T08:46:41.000687602Z",

? ? ? ? "Container": "e3bd5228a15817e8875b6dd23fcffcc5f810c388488696be364926caef9cd633",

? ? ? ? "ContainerConfig": {

? ? ? ? ? ? "Hostname": "e3bd5228a158",

? ? ? ? ? ? "Domainname": "",

? ? ? ? ? ? "User": "",

? ? ? ? ? ? "AttachStdin": false,

? ? ? ? ? ? "AttachStdout": false,

? ? ? ? ? ? "AttachStderr": false,

? ? ? ? ? ? "Tty": false,

? ? ? ? ? ? "OpenStdin": false,

? ? ? ? ? ? "StdinOnce": false,

? ? ? ? ? ? "Env": [

? ? ? ? ? ? ? ? "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

? ? ? ? ? ? ],

? ? ? ? ? ? "Cmd": [

? ? ? ? ? ? ? ? "/bin/sh",

? ? ? ? ? ? ? ? "-c",

? ? ? ? ? ? ? ? "#(nop) ",

? ? ? ? ? ? ? ? "CMD [\"/bin/sh\" \"-c\" \"/bin/bash\"]"

? ? ? ? ? ? ],

? ? ? ? ? ? "Image": "sha256:6acfe7404567644d755094fc630707a7a9f336438484e1917a5f48725e61fdb4",

? ? ? ? ? ? "Volumes": {

? ? ? ? ? ? ? ? "volume01": {},

? ? ? ? ? ? ? ? "volume02": {}

? ? ? ? ? ? },

? ? ? ? ? ? "WorkingDir": "",

? ? ? ? ? ? "Entrypoint": null,

? ? ? ? ? ? "OnBuild": null,

? ? ? ? ? ? "Labels": {

? ? ? ? ? ? ? ? "org.label-schema.build-date": "20210915",

? ? ? ? ? ? ? ? "org.label-schema.license": "GPLv2",

? ? ? ? ? ? ? ? "org.label-schema.name": "CentOS Base Image",

? ? ? ? ? ? ? ? "org.label-schema.schema-version": "1.0",

? ? ? ? ? ? ? ? "org.label-schema.vendor": "CentOS"

? ? ? ? ? ? }

? ? ? ? },

? ? ? ? "DockerVersion": "20.10.12",

? ? ? ? "Author": "",

? ? ? ? "Config": {

? ? ? ? ? ? "Hostname": "",

? ? ? ? ? ? "Domainname": "",

? ? ? ? ? ? "User": "",

? ? ? ? ? ? "AttachStdin": false,

? ? ? ? ? ? "AttachStdout": false,

? ? ? ? ? ? "AttachStderr": false,

? ? ? ? ? ? "Tty": false,

? ? ? ? ? ? "OpenStdin": false,

? ? ? ? ? ? "StdinOnce": false,

? ? ? ? ? ? "Env": [

? ? ? ? ? ? ? ? "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

? ? ? ? ? ? ],

? ? ? ? ? ? "Cmd": [

? ? ? ? ? ? ? ? "/bin/sh",

? ? ? ? ? ? ? ? "-c",

? ? ? ? ? ? ? ? "/bin/bash"

? ? ? ? ? ? ],

? ? ? ? ? ? "Image": "sha256:6acfe7404567644d755094fc630707a7a9f336438484e1917a5f48725e61fdb4",

? ? ? ? ? ? "Volumes": {

? ? ? ? ? ? ? ? "volume01": {},

? ? ? ? ? ? ? ? "volume02": {}

? ? ? ? ? ? },

? ? ? ? ? ? "WorkingDir": "",

? ? ? ? ? ? "Entrypoint": null,

? ? ? ? ? ? "OnBuild": null,

? ? ? ? ? ? "Labels": {

? ? ? ? ? ? ? ? "org.label-schema.build-date": "20210915",

? ? ? ? ? ? ? ? "org.label-schema.license": "GPLv2",

? ? ? ? ? ? ? ? "org.label-schema.name": "CentOS Base Image",

? ? ? ? ? ? ? ? "org.label-schema.schema-version": "1.0",

? ? ? ? ? ? ? ? "org.label-schema.vendor": "CentOS"

? ? ? ? ? ? }

? ? ? ? },

? ? ? ? "Architecture": "amd64",

? ? ? ? "Os": "linux",

? ? ? ? "Size": 231268856,

? ? ? ? "VirtualSize": 231268856,

? ? ? ? "GraphDriver": {

? ? ? ? ? ? "Data": {

? ? ? ? ? ? ? ? "MergedDir": "/var/lib/docker/overlay2/496c93719225d03e3b5a66fc3e20aeba2978bf70e2991c5e3a25ba685db9de63/merged",

? ? ? ? ? ? ? ? "UpperDir": "/var/lib/docker/overlay2/496c93719225d03e3b5a66fc3e20aeba2978bf70e2991c5e3a25ba685db9de63/diff",

? ? ? ? ? ? ? ? "WorkDir": "/var/lib/docker/overlay2/496c93719225d03e3b5a66fc3e20aeba2978bf70e2991c5e3a25ba685db9de63/work"

? ? ? ? ? ? },

? ? ? ? ? ? "Name": "overlay2"

? ? ? ? },

? ? ? ? "RootFS": {

? ? ? ? ? ? "Type": "layers",

? ? ? ? ? ? "Layers": [

? ? ? ? ? ? ? ? "sha256:74ddd0ec08fa43d09f32636ba91a0a3053b02cb4627c35051aff89f853606b59"

? ? ? ? ? ? ]

? ? ? ? },

? ? ? ? "Metadata": {

? ? ? ? ? ? "LastTagTime": "2022-01-04T16:46:41.743170896+08:00"

? ? ? ? }

? ? }

]

#開啟另一個(gè)端口輸入命令

[root@localhost ~]# docker ps

CONTAINER ID? IMAGE? ? ? ? ? ? ? ? COMMAND? ? ? ? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? PORTS? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NAMES

95eef4e92cf0? 1db844ed918a? ? ? ? ? "/bin/sh -c /bin/bash"? 44 seconds ago? ? ? Up 37 seconds? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? vigorous_bose

ac7905937938? nginx? ? ? ? ? ? ? ? "/docker-entrypoint.…"? About an hour ago? Up About an hour? 0.0.0.0:49154->80/tcp, :::49154->80/tcp? ? nginx002

7628b0d1a4ed? nginx? ? ? ? ? ? ? ? "/docker-entrypoint.…"? 2 hours ago? ? ? ? Up 2 hours? ? ? ? 0.0.0.0:49153->80/tcp, :::49153->80/tcp? ? nginx001

30662e30fb0a? portainer/portainer? "/portainer"? ? ? ? ? ? 26 hours ago? ? ? ? Up 2 hours? ? ? ? 0.0.0.0:8088->9000/tcp, :::8088->9000/tcp? suspicious_tharp



[root@localhost ~]# docker inspect 95eef4e92cf0

[

? ? {

? ? ? ? "Id": "95eef4e92cf0a9a1c1602fa6f76047dba3b6986656699a71749a55af9ddffef0",

? ? ? ? "Created": "2022-01-04T09:28:06.035631644Z",

? ? ? ? "Path": "/bin/sh",

? ? ? ? "Args": [

? ? ? ? ? ? "-c",

? ? ? ? ? ? "/bin/bash"

? ? ? ? ],

? ? ? ? "State": {

? ? ? ? ? ? "Status": "running",

? ? ? ? ? ? "Running": true,

? ? ? ? ? ? "Paused": false,

? ? ? ? ? ? "Restarting": false,

? ? ? ? ? ? "OOMKilled": false,

? ? ? ? ? ? "Dead": false,

? ? ? ? ? ? "Pid": 3172,

? ? ? ? ? ? "ExitCode": 0,

? ? ? ? ? ? "Error": "",

? ? ? ? ? ? "StartedAt": "2022-01-04T09:28:12.476042091Z",

? ? ? ? ? ? "FinishedAt": "0001-01-01T00:00:00Z"

? ? ? ? },

? ? ? ? "Image": "sha256:1db844ed918ac3b36bb2acf4d81a057ca8055bb16e2f1f1096fb3c2714785932",

? ? ? ? "ResolvConfPath": "/var/lib/docker/containers/95eef4e92cf0a9a1c1602fa6f76047dba3b6986656699a71749a55af9ddffef0/resolv.conf",

? ? ? ? "HostnamePath": "/var/lib/docker/containers/95eef4e92cf0a9a1c1602fa6f76047dba3b6986656699a71749a55af9ddffef0/hostname",

? ? ? ? "HostsPath": "/var/lib/docker/containers/95eef4e92cf0a9a1c1602fa6f76047dba3b6986656699a71749a55af9ddffef0/hosts",

? ? ? ? "LogPath": "/var/lib/docker/containers/95eef4e92cf0a9a1c1602fa6f76047dba3b6986656699a71749a55af9ddffef0/95eef4e92cf0a9a1c1602fa6f76047dba3b6986656699a71749a55af9ddffef0-json.log",

? ? ? ? "Name": "/vigorous_bose",

? ? ? ? "RestartCount": 0,

? ? ? ? "Driver": "overlay2",

? ? ? ? "Platform": "linux",

? ? ? ? "MountLabel": "",

? ? ? ? "ProcessLabel": "",

? ? ? ? "AppArmorProfile": "",

? ? ? ? "ExecIDs": null,

? ? ? ? "HostConfig": {

? ? ? ? ? ? "Binds": null,

? ? ? ? ? ? "ContainerIDFile": "",

? ? ? ? ? ? "LogConfig": {

? ? ? ? ? ? ? ? "Type": "json-file",

? ? ? ? ? ? ? ? "Config": {}

? ? ? ? ? ? },

? ? ? ? ? ? "NetworkMode": "default",

? ? ? ? ? ? "PortBindings": {},

? ? ? ? ? ? "RestartPolicy": {

? ? ? ? ? ? ? ? "Name": "no",

? ? ? ? ? ? ? ? "MaximumRetryCount": 0

? ? ? ? ? ? },

? ? ? ? ? ? "AutoRemove": false,

? ? ? ? ? ? "VolumeDriver": "",

? ? ? ? ? ? "VolumesFrom": null,

? ? ? ? ? ? "CapAdd": null,

? ? ? ? ? ? "CapDrop": null,

? ? ? ? ? ? "CgroupnsMode": "host",

? ? ? ? ? ? "Dns": [],

? ? ? ? ? ? "DnsOptions": [],

? ? ? ? ? ? "DnsSearch": [],

? ? ? ? ? ? "ExtraHosts": null,

? ? ? ? ? ? "GroupAdd": null,

? ? ? ? ? ? "IpcMode": "private",

? ? ? ? ? ? "Cgroup": "",

? ? ? ? ? ? "Links": null,

? ? ? ? ? ? "OomScoreAdj": 0,

? ? ? ? ? ? "PidMode": "",

? ? ? ? ? ? "Privileged": false,

? ? ? ? ? ? "PublishAllPorts": false,

? ? ? ? ? ? "ReadonlyRootfs": false,

? ? ? ? ? ? "SecurityOpt": null,

? ? ? ? ? ? "UTSMode": "",

? ? ? ? ? ? "UsernsMode": "",

? ? ? ? ? ? "ShmSize": 67108864,

? ? ? ? ? ? "Runtime": "runc",

? ? ? ? ? ? "ConsoleSize": [

? ? ? ? ? ? ? ? 0,

? ? ? ? ? ? ? ? 0

? ? ? ? ? ? ],

? ? ? ? ? ? "Isolation": "",

? ? ? ? ? ? "CpuShares": 0,

? ? ? ? ? ? "Memory": 0,

? ? ? ? ? ? "NanoCpus": 0,

? ? ? ? ? ? "CgroupParent": "",

? ? ? ? ? ? "BlkioWeight": 0,

? ? ? ? ? ? "BlkioWeightDevice": [],

? ? ? ? ? ? "BlkioDeviceReadBps": null,

? ? ? ? ? ? "BlkioDeviceWriteBps": null,

? ? ? ? ? ? "BlkioDeviceReadIOps": null,

? ? ? ? ? ? "BlkioDeviceWriteIOps": null,

? ? ? ? ? ? "CpuPeriod": 0,

? ? ? ? ? ? "CpuQuota": 0,

? ? ? ? ? ? "CpuRealtimePeriod": 0,

? ? ? ? ? ? "CpuRealtimeRuntime": 0,

? ? ? ? ? ? "CpusetCpus": "",

? ? ? ? ? ? "CpusetMems": "",

? ? ? ? ? ? "Devices": [],

? ? ? ? ? ? "DeviceCgroupRules": null,

? ? ? ? ? ? "DeviceRequests": null,

? ? ? ? ? ? "KernelMemory": 0,

? ? ? ? ? ? "KernelMemoryTCP": 0,

? ? ? ? ? ? "MemoryReservation": 0,

? ? ? ? ? ? "MemorySwap": 0,

? ? ? ? ? ? "MemorySwappiness": null,

? ? ? ? ? ? "OomKillDisable": false,

? ? ? ? ? ? "PidsLimit": null,

? ? ? ? ? ? "Ulimits": null,

? ? ? ? ? ? "CpuCount": 0,

? ? ? ? ? ? "CpuPercent": 0,

? ? ? ? ? ? "IOMaximumIOps": 0,

? ? ? ? ? ? "IOMaximumBandwidth": 0,

? ? ? ? ? ? "MaskedPaths": [

? ? ? ? ? ? ? ? "/proc/asound",

? ? ? ? ? ? ? ? "/proc/acpi",

? ? ? ? ? ? ? ? "/proc/kcore",

? ? ? ? ? ? ? ? "/proc/keys",

? ? ? ? ? ? ? ? "/proc/latency_stats",

? ? ? ? ? ? ? ? "/proc/timer_list",

? ? ? ? ? ? ? ? "/proc/timer_stats",

? ? ? ? ? ? ? ? "/proc/sched_debug",

? ? ? ? ? ? ? ? "/proc/scsi",

? ? ? ? ? ? ? ? "/sys/firmware"

? ? ? ? ? ? ],

? ? ? ? ? ? "ReadonlyPaths": [

? ? ? ? ? ? ? ? "/proc/bus",

? ? ? ? ? ? ? ? "/proc/fs",

? ? ? ? ? ? ? ? "/proc/irq",

? ? ? ? ? ? ? ? "/proc/sys",

? ? ? ? ? ? ? ? "/proc/sysrq-trigger"

? ? ? ? ? ? ]

? ? ? ? },

? ? ? ? "GraphDriver": {

? ? ? ? ? ? "Data": {

? ? ? ? ? ? ? ? "LowerDir": "/var/lib/docker/overlay2/85970d007b92290e5c2188f3d3eea7aff8d30ef97e2f140e2d195f12d0be0357-init/diff:/var/lib/docker/overlay2/496c93719225d03e3b5a66fc3e20aeba2978bf70e2991c5e3a25ba685db9de63/diff",

? ? ? ? ? ? ? ? "MergedDir": "/var/lib/docker/overlay2/85970d007b92290e5c2188f3d3eea7aff8d30ef97e2f140e2d195f12d0be0357/merged",

? ? ? ? ? ? ? ? "UpperDir": "/var/lib/docker/overlay2/85970d007b92290e5c2188f3d3eea7aff8d30ef97e2f140e2d195f12d0be0357/diff",

? ? ? ? ? ? ? ? "WorkDir": "/var/lib/docker/overlay2/85970d007b92290e5c2188f3d3eea7aff8d30ef97e2f140e2d195f12d0be0357/work"

? ? ? ? ? ? },

? ? ? ? ? ? "Name": "overlay2"

? ? ? ? },

? ? ? ? "Mounts": [

? ? ? ? ? ? {

? ? ? ? ? ? ? ? "Type": "volume",

? ? ? ? ? ? ? ? "Name": "16da86bfbad9cdeb8acb94008b8a95e21310070253e9305069f254f8287951c2",

? ? ? ? ? ? ? ? "Source": "/var/lib/docker/volumes/16da86bfbad9cdeb8acb94008b8a95e21310070253e9305069f254f8287951c2/_data",

? ? ? ? ? ? ? ? "Destination": "volume02",

? ? ? ? ? ? ? ? "Driver": "local",

? ? ? ? ? ? ? ? "Mode": "",

? ? ? ? ? ? ? ? "RW": true,

? ? ? ? ? ? ? ? "Propagation": ""

? ? ? ? ? ? },

? ? ? ? ? ? {

? ? ? ? ? ? ? ? "Type": "volume",

? ? ? ? ? ? ? ? "Name": "36deb8f3bf9108300c31c6970a66cc74dd8f301337d288a0f452beafa260e5bd",

? ? ? ? ? ? ? ? "Source": "/var/lib/docker/volumes/36deb8f3bf9108300c31c6970a66cc74dd8f301337d288a0f452beafa260e5bd/_data",

? ? ? ? ? ? ? ? "Destination": "volume01",

? ? ? ? ? ? ? ? "Driver": "local",

? ? ? ? ? ? ? ? "Mode": "",

? ? ? ? ? ? ? ? "RW": true,

? ? ? ? ? ? ? ? "Propagation": ""

? ? ? ? ? ? }

? ? ? ? ],

? ? ? ? "Config": {

? ? ? ? ? ? "Hostname": "95eef4e92cf0",

? ? ? ? ? ? "Domainname": "",

? ? ? ? ? ? "User": "",

? ? ? ? ? ? "AttachStdin": true,

? ? ? ? ? ? "AttachStdout": true,

? ? ? ? ? ? "AttachStderr": true,

? ? ? ? ? ? "Tty": true,

? ? ? ? ? ? "OpenStdin": true,

? ? ? ? ? ? "StdinOnce": true,

? ? ? ? ? ? "Env": [

? ? ? ? ? ? ? ? "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

? ? ? ? ? ? ],

? ? ? ? ? ? "Cmd": [

? ? ? ? ? ? ? ? "/bin/sh",

? ? ? ? ? ? ? ? "-c",

? ? ? ? ? ? ? ? "/bin/bash"

? ? ? ? ? ? ],

? ? ? ? ? ? "Image": "1db844ed918a",

? ? ? ? ? ? "Volumes": {

? ? ? ? ? ? ? ? "volume01": {},

? ? ? ? ? ? ? ? "volume02": {}

? ? ? ? ? ? },

? ? ? ? ? ? "WorkingDir": "",

? ? ? ? ? ? "Entrypoint": null,

? ? ? ? ? ? "OnBuild": null,

? ? ? ? ? ? "Labels": {

? ? ? ? ? ? ? ? "org.label-schema.build-date": "20210915",

? ? ? ? ? ? ? ? "org.label-schema.license": "GPLv2",

? ? ? ? ? ? ? ? "org.label-schema.name": "CentOS Base Image",

? ? ? ? ? ? ? ? "org.label-schema.schema-version": "1.0",

? ? ? ? ? ? ? ? "org.label-schema.vendor": "CentOS"

? ? ? ? ? ? }

? ? ? ? },

? ? ? ? "NetworkSettings": {

? ? ? ? ? ? "Bridge": "",

? ? ? ? ? ? "SandboxID": "60b60639a0ba1949d1b683e33c7cad55c7795d214f64c3cd0dc07d8792d0f020",

? ? ? ? ? ? "HairpinMode": false,

? ? ? ? ? ? "LinkLocalIPv6Address": "",

? ? ? ? ? ? "LinkLocalIPv6PrefixLen": 0,

? ? ? ? ? ? "Ports": {},

? ? ? ? ? ? "SandboxKey": "/var/run/docker/netns/60b60639a0ba",

? ? ? ? ? ? "SecondaryIPAddresses": null,

? ? ? ? ? ? "SecondaryIPv6Addresses": null,

? ? ? ? ? ? "EndpointID": "f80f42780617bc58fee12395e0002a08b8ae2aa022bfc2ec37c4078b20e69eda",

? ? ? ? ? ? "Gateway": "172.17.0.1",

? ? ? ? ? ? "GlobalIPv6Address": "",

? ? ? ? ? ? "GlobalIPv6PrefixLen": 0,

? ? ? ? ? ? "IPAddress": "172.17.0.5",

? ? ? ? ? ? "IPPrefixLen": 16,

? ? ? ? ? ? "IPv6Gateway": "",

? ? ? ? ? ? "MacAddress": "02:42:ac:11:00:05",

? ? ? ? ? ? "Networks": {

? ? ? ? ? ? ? ? "bridge": {

? ? ? ? ? ? ? ? ? ? "IPAMConfig": null,

? ? ? ? ? ? ? ? ? ? "Links": null,

? ? ? ? ? ? ? ? ? ? "Aliases": null,

? ? ? ? ? ? ? ? ? ? "NetworkID": "0e048dc30f7b6215097552c630805f9ac43885e5594b2cd101e768937ec5e32f",

? ? ? ? ? ? ? ? ? ? "EndpointID": "f80f42780617bc58fee12395e0002a08b8ae2aa022bfc2ec37c4078b20e69eda",

? ? ? ? ? ? ? ? ? ? "Gateway": "172.17.0.1",

? ? ? ? ? ? ? ? ? ? "IPAddress": "172.17.0.5",

? ? ? ? ? ? ? ? ? ? "IPPrefixLen": 16,

? ? ? ? ? ? ? ? ? ? "IPv6Gateway": "",

? ? ? ? ? ? ? ? ? ? "GlobalIPv6Address": "",

? ? ? ? ? ? ? ? ? ? "GlobalIPv6PrefixLen": 0,

? ? ? ? ? ? ? ? ? ? "MacAddress": "02:42:ac:11:00:05",

? ? ? ? ? ? ? ? ? ? "DriverOpts": null

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? }

]







數(shù)據(jù)卷容器

兩個(gè)mysql 同步數(shù)據(jù)。

子容器,父容器,centos 01掛載到centos 02shang ,就實(shí)現(xiàn)了數(shù)據(jù)同步,父容器上的數(shù)據(jù)卷容器,;兩個(gè)或者多個(gè)容器直接實(shí)現(xiàn)數(shù)據(jù)共享。

[root@localhost ~]# systemctl start docker

[root@localhost ~]# docker images? 查看鏡像。

REPOSITORY? ? ? ? ? ? TAG? ? ? IMAGE ID? ? ? CREATED? ? ? ? SIZE

kuangshen/centos? ? ? latest? ? 1db844ed918a? 46 hours ago? ? 231MB

tomcat0001? ? ? ? ? ? 1.0? ? ? 09ef6b2e826f? 2 days ago? ? ? 684MB

tomcat0001? ? ? ? ? ? latest? ? a22c9a74a6f8? 2 days ago? ? ? 684MB

tomcat? ? ? ? ? ? ? ? latest? ? 13b1026f5ad2? 2 days ago? ? ? 684MB

nginx? ? ? ? ? ? ? ? latest? ? 605c77e624dd? 7 days ago? ? ? 141MB

tomcat? ? ? ? ? ? ? ? 9.0? ? ? b8e65a4d736d? 2 weeks ago? ? 680MB

tomcat? ? ? ? ? ? ? ? <none>? ? fb5657adc892? 2 weeks ago? ? 680MB

redis? ? ? ? ? ? ? ? latest? ? 7614ae9453d1? 2 weeks ago? ? 113MB

mysql? ? ? ? ? ? ? ? 5.7? ? ? c20987f18b13? 2 weeks ago? ? 448MB

centos? ? ? ? ? ? ? ? latest? ? 5d0da3dc9764? 3 months ago? ? 231MB

portainer/portainer? latest? ? 580c0e4e98b0? 9 months ago? ? 79.1MB

elasticsearch? ? ? ? 7.6.2? ? f29a1ee41030? 21 months ago? 791MB

[root@localhost ~]# docker run -t --name docker01 kuangshen/centos:1.0



[root@localhost ~]# docker run -it --name docker01? 1db844ed918a? 啟動(dòng)。

[root@851376de1df7 /]# ls -l

total 0

lrwxrwxrwx? 1 root root? 7 Nov? 3? 2020 bin -> usr/bin

drwxr-xr-x? 5 root root 360 Jan? 6 06:51 dev

drwxr-xr-x? 1 root root? 66 Jan? 6 06:51 etc

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 home

lrwxrwxrwx? 1 root root? 7 Nov? 3? 2020 lib -> usr/lib

lrwxrwxrwx? 1 root root? 9 Nov? 3? 2020 lib64 -> usr/lib64

drwx------? 2 root root? 6 Sep 15 14:17 lost+found

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 media

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 mnt

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 opt

dr-xr-xr-x 122 root root? 0 Jan? 6 06:51 proc

dr-xr-x---? 2 root root 162 Sep 15 14:17 root

drwxr-xr-x? 11 root root 163 Sep 15 14:17 run

lrwxrwxrwx? 1 root root? 8 Nov? 3? 2020 sbin -> usr/sbin

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 srv

dr-xr-xr-x? 13 root root? 0 Jan? 6 06:51 sys

drwxrwxrwt? 7 root root 171 Sep 15 14:17 tmp

drwxr-xr-x? 12 root root 144 Sep 15 14:17 usr

drwxr-xr-x? 20 root root 262 Sep 15 14:17 var

drwxr-xr-x? 2 root root? 6 Jan? 6 06:51 volume01

drwxr-xr-x? 2 root root? 6 Jan? 6 06:51 volume02


--volumes-from 通過這個(gè)實(shí)現(xiàn)容器間的共享


[root@localhost ~]# docker ps

CONTAINER ID? IMAGE? ? ? ? ? ? ? ? COMMAND? ? ? ? ? ? ? ? ? CREATED? ? ? ? STATUS? ? ? ? PORTS? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NAMES

851376de1df7? 1db844ed918a? ? ? ? ? "/bin/sh -c /bin/bash"? 5 minutes ago? Up 5 minutes? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? docker01

30662e30fb0a? portainer/portainer? "/portainer"? ? ? ? ? ? 3 days ago? ? ? Up 8 minutes? 0.0.0.0:8088->9000/tcp, :::8088->9000/tcp? suspicious_tharp

[root@localhost ~]# docker run -it --name docker02? --volumes-from docker01? 1db844ed918a

[root@624e9220592a /]# ls -l

total 0

lrwxrwxrwx? 1 root root? 7 Nov? 3? 2020 bin -> usr/bin

drwxr-xr-x? 5 root root 360 Jan? 6 06:58 dev

drwxr-xr-x? 1 root root? 66 Jan? 6 06:58 etc

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 home

lrwxrwxrwx? 1 root root? 7 Nov? 3? 2020 lib -> usr/lib

lrwxrwxrwx? 1 root root? 9 Nov? 3? 2020 lib64 -> usr/lib64

drwx------? 2 root root? 6 Sep 15 14:17 lost+found

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 media

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 mnt

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 opt

dr-xr-xr-x 129 root root? 0 Jan? 6 06:58 proc

dr-xr-x---? 2 root root 162 Sep 15 14:17 root

drwxr-xr-x? 11 root root 163 Sep 15 14:17 run

lrwxrwxrwx? 1 root root? 8 Nov? 3? 2020 sbin -> usr/sbin

drwxr-xr-x? 2 root root? 6 Nov? 3? 2020 srv

dr-xr-xr-x? 13 root root? 0 Jan? 6 06:51 sys

drwxrwxrwt? 7 root root 171 Sep 15 14:17 tmp

drwxr-xr-x? 12 root root 144 Sep 15 14:17 usr

drwxr-xr-x? 20 root root 262 Sep 15 14:17 var

drwxr-xr-x? 2 root root? 6 Jan? 6 06:51 volume01

drwxr-xr-x? 2 root root? 6 Jan? 6 06:51 volume02




打開另個(gè)終端輸入命令。


[root@localhost ~]# docker attach 851376de1df7? 進(jìn)入docker01這個(gè)容器里

[root@851376de1df7 /]# cd volume01? 進(jìn)入數(shù)據(jù)同步的文件夾

[root@851376de1df7 volume01]# ls? ? ? ? ?

[root@851376de1df7 volume01]# touch docker01? 創(chuàng)建這個(gè)文件

[root@851376de1df7 volume01]# ls

docker01

[root@851376de1df7 volume01]# ls? 查看生成這個(gè)文件了

docker01

[root@851376de1df7 volume01]# cd /volume02?

[root@851376de1df7 volume02]# ls

[root@851376de1df7 volume02]# exit

exit

[root@localhost ~]# docker run -it --name docker02? --volumes-from docker01? 1db844ed918a

docker: Error response from daemon: Conflict. The container name "/docker02" is already in use by container "624e9220592a2918436117f9a5ba6f6ca1cb175dd84c83d84ce6d631d41395d4". You have to remove (or rename) that container to be able to reuse that name.

See 'docker run --help'.? 前面把這個(gè)容器關(guān)閉了,那就在生成一個(gè)查看

[root@localhost ~]# docker run -it --name docker03? --volumes-from docker01? 1db844ed918a (這里也可以是kuangshen/centos:版本號(hào))

[root@fb88d210ac79 /]# ls

bin? etc? lib? ? lost+found? mnt? proc? run? srv? tmp? var? ? ? volume02

dev? home? lib64? media? ? ? opt? root? sbin? sys? usr? volume01

[root@fb88d210ac79 /]# cd volume01

[root@fb88d210ac79 volume01]# ls

docker01? ? ? ? ? ? ? ? ? ? ? 同步是有這個(gè)得


[root@localhost ~]# docker ps -a

CONTAINER ID? IMAGE? ? ? ? ? COMMAND? ? ? ? ? ? ? ? ? CREATED? ? ? ? ? STATUS? ? ? ? ? ? ? ? ? ? ? PORTS? ? NAMES

fb88d210ac79? 1db844ed918a? "/bin/sh -c /bin/bash"? 13 minutes ago? Up 13 minutes? ? ? ? ? ? ? ? ? ? ? ? docker03

851376de1df7? 1db844ed918a? "/bin/sh -c /bin/bash"? 28 minutes ago? Exited (0) 13 minutes ago? ? ? ? ? ? docker01

[root@localhost ~]# docker rm -f 851376de1df7

#可以刪除docker01 查看docker03還是可以訪問到文件。

這是一個(gè)雙向拷貝的機(jī)制。


多個(gè)mysql實(shí)現(xiàn)數(shù)據(jù)共享,

#docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d

-v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456

? ? --name mysql01 mysql:5.7

可以寫成下面的。

#docker run -d -p 3310:3306 -v /etc/mysql/conf.d

-v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456

? ? --name mysql01 mysql:5.7


#docker run -d -p 3310:3306? -e MYSQL_ROOT_PASSWORD=123456

? ? --name mysql02 --volumes-form mysql01? mysql:5.7

#這個(gè)時(shí)候可以實(shí)現(xiàn)容器同步。? 使用--volumes-form實(shí)現(xiàn)的

結(jié)論,容器直接配置信息的傳遞,數(shù)據(jù)卷的生命周期,一直持續(xù)到?jīng)]有容器使用為止。

但是一旦持久到了本地,本地的數(shù)據(jù)就不會(huì)刪除。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容