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ì)刪除。