ডকার পাত্রে আপনি কীভাবে ভলিউম তালিকাভুক্ত করবেন?


212

নিবন্ধগুলি থেকে ডকার চিত্রগুলি ব্যবহার করার সময়, আমাকে প্রায়শই চিত্রটির পাত্রে তৈরি ভলিউমগুলি দেখতে হবে।

দ্রষ্টব্য: আমি রেড হ্যাট 7 এ ডকার সংস্করণ 1.3.2 ব্যবহার করছি।

উদাহরণ

postgresDocker রেজিস্ট্রি থেকে অফিসিয়াল ছবিটি একটি ভলিউমে পাত্রে জন্য কনফিগার করেছে /var/lib/postgresql/data

এ ভলিউম দেখানোর জন্য সবচেয়ে সংক্ষিপ্ত কমান্ড কি /var/lib/postgresql/dataএকটি postgresধারক?


5
দ্রষ্টব্য: এটি
ডকারের

উত্তর:


322

docker psধারক আইডি পেতে ব্যবহার করুন ।

তারপর docker inspect -f '{{ .Mounts }}' containerid

উদাহরণ:

বন্দর 1

$ docker run -it -v /tmp:/tmp ubuntu:14.04 /bin/bash

টার্মিনাল ২

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
ddb7b55902cc        ubuntu:14.04        "/bin/bash"         About a minute ago   Up About a minute                       distracted_banach   

$ docker inspect -f "{{ .Mounts }}" ddb7
map[/tmp:/tmp]

আউটপুট

map[/tmp:/tmp] 

স্পষ্টতই, ডকার কমান্ড সরঞ্জামগুলি প্রয়োগ করতে গো ভাষা ব্যবহারের কারণে ।

docker inspectছাড়া কমান্ড -f formatবেশ বাগাড়ম্বরপূর্ণ হয়। যেহেতু এটি JSON তাই আপনি এটি পাইথন বা নোডেজগুলিতে পাইপ করতে এবং আপনার যা যা প্রয়োজন তা নিষ্কাশন করতে পারেন।

paul@home:~$ docker inspect ddb7
[{
    "AppArmorProfile": "",
    "Args": [],
    "Config": {
        "AttachStderr": true,
        "AttachStdin": true,
        "AttachStdout": true,
        "Cmd": [
            "/bin/bash"
        ],
        "CpuShares": 0,
        "Cpuset": "",
        "Domainname": "",
        "Entrypoint": null,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        ],
        "ExposedPorts": null,
        "Hostname": "ddb7b55902cc",
        "Image": "ubuntu:14.04",
        "MacAddress": "",
        "Memory": 0,
        "MemorySwap": 0,
        "NetworkDisabled": false,
        "OnBuild": null,
        "OpenStdin": true,
        "PortSpecs": null,
        "StdinOnce": true,
        "Tty": true,
        "User": "",
        "Volumes": null,
        "WorkingDir": ""
    },
    "Created": "2015-05-08T22:41:44.74862921Z",
    "Driver": "devicemapper",
    "ExecDriver": "native-0.2",
    "ExecIDs": null,
    "HostConfig": {
        "Binds": [
            "/tmp:/tmp"
        ],
        "CapAdd": null,
        "CapDrop": null,
        "ContainerIDFile": "",
        "Devices": [],
        "Dns": null,
        "DnsSearch": null,
        "ExtraHosts": null,
        "IpcMode": "",
        "Links": null,
        "LxcConf": [],
        "NetworkMode": "bridge",
        "PidMode": "",
        "PortBindings": {},
        "Privileged": false,
        "PublishAllPorts": false,
        "ReadonlyRootfs": false,
        "RestartPolicy": {
            "MaximumRetryCount": 0,
            "Name": ""
        },
        "SecurityOpt": null,
        "VolumesFrom": null
    },
    "HostnamePath": "/var/lib/docker/containers/ddb7b55902cc328612d794570fe9a936d96a9644411e89c4ea116a5fef4c311a/hostname",
    "HostsPath": "/var/lib/docker/containers/ddb7b55902cc328612d794570fe9a936d96a9644411e89c4ea116a5fef4c311a/hosts",
    "Id": "ddb7b55902cc328612d794570fe9a936d96a9644411e89c4ea116a5fef4c311a",
    "Image": "ed5a78b7b42bde1e3e4c2996e02da778882dca78f8919cbd0deb6694803edec3",
    "MountLabel": "",
    "Name": "/distracted_banach",
    "NetworkSettings": {
        "Bridge": "docker0",
        "Gateway": "172.17.42.1",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "IPAddress": "172.17.0.4",
        "IPPrefixLen": 16,
        "IPv6Gateway": "",
        "LinkLocalIPv6Address": "fe80::42:acff:fe11:4",
        "LinkLocalIPv6PrefixLen": 64,
        "MacAddress": "02:42:ac:11:00:04",
        "PortMapping": null,
        "Ports": {}
    },
    "Path": "/bin/bash",
    "ProcessLabel": "",
    "ResolvConfPath": "/var/lib/docker/containers/ddb7b55902cc328612d794570fe9a936d96a9644411e89c4ea116a5fef4c311a/resolv.conf",
    "RestartCount": 0,
    "State": {
        "Error": "",
        "ExitCode": 0,
        "FinishedAt": "0001-01-01T00:00:00Z",
        "OOMKilled": false,
        "Paused": false,
        "Pid": 6115,
        "Restarting": false,
        "Running": true,
        "StartedAt": "2015-05-08T22:41:45.367432585Z"
    },
    "Volumes": {
        "/tmp": "/tmp"
    },
    "VolumesRW": {
        "/tmp": true
    }
}
]

docker history <image name>স্তরগুলিকে একটি চিত্রের মধ্যে বেকড দেখানো হবে। দুর্ভাগ্যক্রমে, docker historyএটির বিন্যাস এবং কী প্রদর্শিত হয় তা চয়ন করার বিকল্পগুলির অভাব দ্বারা আবদ্ধ বলে মনে হয়।

--No-trunc পতাকার মাধ্যমে আপনি সংক্ষিপ্ত এবং ভার্বোজ ফর্ম্যাট চয়ন করতে পারেন।

$ docker history drpaulbrewer/spark-worker
IMAGE               CREATED             CREATED BY                                      SIZE
438ff4e1753a        2 weeks ago         /bin/sh -c #(nop) CMD [/bin/sh -c /spark/my-s   0 B
6b664e299724        2 weeks ago         /bin/sh -c #(nop) ADD file:09da603c5f0dca7cc6   296 B
f6ae126ae124        2 weeks ago         /bin/sh -c #(nop) MAINTAINER drpaulbrewer@eaf   0 B
70bcb3ffaec9        2 weeks ago         /bin/sh -c #(nop) EXPOSE 2222/tcp 4040/tcp 60   0 B
1332ac203849        2 weeks ago         /bin/sh -c apt-get update && apt-get --yes up   1.481 GB
8e6f1e0bb1b0        2 weeks ago         /bin/sh -c sed -e 's/archive.ubuntu.com/www.g   1.975 kB
b3d242776b1f        2 weeks ago         /bin/sh -c #(nop) WORKDIR /spark/spark-1.3.1    0 B
ac0d6cc5aa3f        2 weeks ago         /bin/sh -c #(nop) ADD file:b6549e3d28e2d149c0   25.89 MB
6ee404a44b3f        5 weeks ago         /bin/sh -c #(nop) WORKDIR /spark                0 B
c167faff18cf        5 weeks ago         /bin/sh -c adduser --disabled-password --home   335.1 kB
f55d468318a4        5 weeks ago         /bin/sh -c #(nop) MAINTAINER drpaulbrewer@eaf   0 B
19c8c047d0fe        8 weeks ago         /bin/sh -c #(nop) CMD [/bin/bash]               0 B
c44d976a473f        8 weeks ago         /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/   1.879 kB
14dbf1d35e28        8 weeks ago         /bin/sh -c echo '#!/bin/sh' > /usr/sbin/polic   701 B
afa7a164a0d2        8 weeks ago         /bin/sh -c #(nop) ADD file:57f97478006b988c0c   131.5 MB
511136ea3c5a        23 months ago                                                       0 B

এখানে একটি ভার্বোস উদাহরণ।

docker history --no-trunc=true drpaulbrewer/spark-worker
IMAGE                                                              CREATED             CREATED BY                                                                                                                                                                                                                                                                                                                                                                                                                        SIZE
438ff4e1753a60779f389a3de593d41f7d24a61da6e1df76dded74a688febd64   2 weeks ago         /bin/sh -c #(nop) CMD [/bin/sh -c /spark/my-spark-worker.sh]                                                                                                                                                                                                                                                                                                                                                                      0 B
6b664e29972481b8d6d47f98167f110609d9599f48001c3ca11c22364196c98a   2 weeks ago         /bin/sh -c #(nop) ADD file:09da603c5f0dca7cc60f1911caf30c3c70df5e4783f7eb10468e70df66e2109f in /spark/                                                                                                                                                                                                                                                                                                                            296 B
f6ae126ae124ca211c04a1257510930b37ea78425e31a273ea0b1495fa176c57   2 weeks ago         /bin/sh -c #(nop) MAINTAINER drpaulbrewer@eaftc.com                                                                                                                                                                                                                                                                                                                                                                               0 B
70bcb3ffaec97a0d14e93b170ed70cc7d68c3c9dfb0222c1d360a300d6e05255   2 weeks ago         /bin/sh -c #(nop) EXPOSE 2222/tcp 4040/tcp 6066/tcp 7077/tcp 7777/tcp 8080/tcp 8081/tcp                                                                                                                                                                                                                                                                                                                                           0 B
1332ac20384947fe1f15107213b675e5be36a68d72f0e81153d6d5a21acf35af   2 weeks ago         /bin/sh -c apt-get update && apt-get --yes upgrade     && apt-get --yes install sed nano curl wget openjdk-8-jdk scala     && echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >>/etc/environment     && export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"     && ./build/mvn -Phive -Phive-thriftserver -DskipTests clean package     && chown -R spark:spark /spark     && mkdir /var/run/sshd   1.481 GB
8e6f1e0bb1b0b9286947d3a4b443cc8099b00f9670aab1d58654051e06f62e51   2 weeks ago         /bin/sh -c sed -e 's/archive.ubuntu.com/www.gtlib.gatech.edu\/pub/' /etc/apt/sources.list > /tmp/sources.list && mv /tmp/sources.list /etc/apt/sources.list                                                                                                                                                                                                                                                                       1.975 kB
b3d242776b1f1f1ae5685471d06a91a68f92845ef6fc6445d831835cd55e5d0b   2 weeks ago         /bin/sh -c #(nop) WORKDIR /spark/spark-1.3.1                                                                                                                                                                                                                                                                                                                                                                                      0 B
ac0d6cc5aa3fdc3b65fc0173f6775af283c3c395c8dae945cf23940435f2785d   2 weeks ago         /bin/sh -c #(nop) ADD file:b6549e3d28e2d149c0bc84f69eb0beab16f62780fc4889bcc64cfc9ce9f762d6 in /spark/                                                                                                                                                                                                                                                                                                                            25.89 MB
6ee404a44b3fdd3ef3318dc10f3d002f1995eea238c78f4eeb9733d00bb29404   5 weeks ago         /bin/sh -c #(nop) WORKDIR /spark                                                                                                                                                                                                                                                                                                                                                                                                  0 B
c167faff18cfecedef30343ef1cb54aca45f4ef0478a3f6296746683f69d601b   5 weeks ago         /bin/sh -c adduser --disabled-password --home /spark spark                                                                                                                                                                                                                                                                                                                                                                        335.1 kB
f55d468318a4778733160d377c5d350dc8f593683009699c2af85244471b15a3   5 weeks ago         /bin/sh -c #(nop) MAINTAINER drpaulbrewer@eaftc.com                                                                                                                                                                                                                                                                                                                                                                               0 B
19c8c047d0fe2de7239120f2b5c1a20bbbcb4d3eb9cbf0efa59ab27ab047377a   8 weeks ago         /bin/sh -c #(nop) CMD [/bin/bash]                                                                                                                                                                                                                                                                                                                                                                                                 0 B
c44d976a473f143937ef91449c73f2cabd109b540f6edf54facb9bc2b4fff136   8 weeks ago         /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/\1/g' /etc/apt/sources.list                                                                                                                                                                                                                                                                                                                                                          1.879 kB
14dbf1d35e2849a00c6c2628055030fa84b4fb55eaadbe0ecad8b82df65cc0db   8 weeks ago         /bin/sh -c echo '#!/bin/sh' > /usr/sbin/policy-rc.d                                                                                                                                                                                                                                                                                                                                                                               && echo 'exit 101' >> /usr/sbin/policy-rc.d    && chmod +x /usr/sbin/policy-rc.d                        && dpkg-divert --local --rename --add /sbin/initctl    && cp -a /usr/sbin/policy-rc.d /sbin/initctl    && sed -i 's/^exit.*/exit 0/' /sbin/initctl                        && echo 'force-unsafe-io' > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup                        && echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' > /etc/apt/apt.conf.d/docker-clean    && echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' >> /etc/apt/apt.conf.d/docker-clean    && echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' >> /etc/apt/apt.conf.d/docker-clean                        && echo 'Acquire::Languages "none";' > /etc/apt/apt.conf.d/docker-no-languages                        && echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' > /etc/apt/apt.conf.d/docker-gzip-indexes   701 B
afa7a164a0d215dbf45cd1aadad2a4d12b8e33fc890064568cc2ea6d42ef9b3c   8 weeks ago         /bin/sh -c #(nop) ADD file:57f97478006b988c0c68e5bf82684372e427fd45f21cd7baf5d974d2cfb29e65 in /                                                                                                                                                                                                                                                                                                                                  131.5 MB
511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158   23 months ago                                                                                                                                                                                                                                                                                                                                                                                                                                         0 B

@ সিআইভিফ্যান আপনি আউটপুটটিকে স্ট্রিং ফর্ম্যাটটিতে আনার জন্য গো ফর্ম্যাট স্ট্রিং সম্পর্কে আরও একটি প্রশ্ন জিজ্ঞাসা করতে পারেন .... এটি একটি গো প্রশ্ন যা ডকার প্রশ্ন নয়।
পল

নমনীয়তার জন্য সাধারণত কোনও অন্তর্ভুক্ত ভলিউম হয় না তবে পরিবর্তে ডক্কার রান করার জন্য -v বিকল্পটি রানটাইমে সংযুক্ত করতে ব্যবহৃত হয়। আমি মনে করি একটি ডকফরফাইল বিকল্পটি মনে আছে তবে এটি কখনও ব্যবহৃত হয়নি। বর্তমানের সুযোগের বাইরেও এগুলির সম্পর্কে নতুন প্রশ্ন জিজ্ঞাসা করার পরামর্শ দিন। হতে পারে যে অন্য কেউ সাহায্য করতে পারে, একটি নতুন প্রশ্নে নতুন উত্তর আকর্ষণ করার জন্য সবচেয়ে কার্যকর হবে।
পল

1
আমি এই প্রশ্নটি কেবল পাত্রে নামিয়েছি এবং চিত্রগুলির জন্য একটি নতুন প্রশ্ন জিজ্ঞাসা করেছি
সিভিফ্যান

8
এটি আর ভলিউম নয় তবে মাউন্টস।
সিগিস 21

এই ওয়েবসাইটটিরও বেশ ভাল ব্যাখ্যা রয়েছে: forums.docker.com/t/host-path-of-volume/12277/10
curveorzos

105

ডকার 1.10 দিয়ে আপনার কাছে এখন ডেটা-ভলিউম ধারকগুলির জন্য নতুন কমান্ড রয়েছে।
(নিয়মিত ধারকগুলির জন্য, ডকার 1.8+ এর জন্য পরবর্তী বিভাগটি দেখুন):


Docker 1.8.1 (আগস্ট 2015) করলে, কোনো docker inspect -f '{{ .Volumes }}' containeridহবে খালি!

আপনাকে এখন যাচাই করা দরকার Mounts, যা মাউন্ট করা পাথের একটি তালিকা:

   "Mounts": [
       {
           "Name": "7ced22ebb63b78823f71cf33f9a7e1915abe4595fcd4f067084f7c4e8cc1afa2",
           "Source": "/mnt/sda1/var/lib/docker/volumes/7ced22ebb63b78823f71cf33f9a7e1915abe4595fcd4f067084f7c4e8cc1afa2/_data",
           "Destination": "/home/git/repositories",
           "Driver": "local",
           "Mode": "",
           "RW": true
       }
   ],

আপনি যদি প্রথম মাউন্টের পথ চান (উদাহরণস্বরূপ), এটি হবে (সূচক 0 ব্যবহার করে):

docker inspect -f '{{ (index .Mounts 0).Source }}' containerid

মাইক মিটারার নীচে মন্তব্য হিসাবে :

পুরো জিনিসটি মুদ্রণ করুন:

 docker inspect -f '{{ json .Mounts }}' containerid | python -m json.tool 

অথবা, মন্তব্য দ্বারা Mitja ব্যবহার jqকমান্ড

docker inspect -f '{{ json .Mounts }}' containerid | jq 

4
সুন্দর পুরো জিনিসটি মুদ্রণ করুন: ডকার পরিদর্শন করুন -f '{{জেসন .ম্যন্টস}}' ধারক | পাইথন-মি json.tool
মাইক

1
@ মাইকমিটারের ধন্যবাদ আরও দৃশ্যমানতার জন্য আমি আপনার মন্তব্যে উত্তরে অন্তর্ভুক্ত করেছি।
ভনসি

2
আপনি যদি সুন্দর রঙের সাথে প্রিন্ট-প্রিন্ট চান, আপনি jqউবুন্টুর নীচে প্যাকেজটি ইনস্টল করতে পারেন এবং তারপরে কেবল এটির পাইপ করুন:docker inspect -f '{{ json .Mounts }}' containerid | jq
মিতজা

1
@ মিতজা আপনাকে ধন্যবাদ আরও দৃশ্যমানতার জন্য আমি আপনার মন্তব্যে উত্তরে অন্তর্ভুক্ত করেছি।
ভোনসি

সহায়তার জন্য @ অ্যালবার্টভালাদেজ খুশী।
ভোনসি

21

একটি ধারক দ্বারা ব্যবহৃত ভলিউমের নাম এবং মাউন্ট পয়েন্ট গন্তব্যগুলি দেখান:

docker container inspect \
 -f '{{ range .Mounts }}{{ .Name }}:{{ .Destination }} {{ end }}' \
 CONTAINER_ID_OR_NAME

এটি ডকার 1.13 এর সাথে সামঞ্জস্যপূর্ণ।


9

আমি আসলে এটি গুগল করেছিলাম এবং আমার নিজের উত্তরটি খুঁজে পেয়েছি :) আমার স্মৃতি আজকাল ... এবং যারা তাদের সম্পর্কে জানেন না তাদের পক্ষে কমান্ডলাইনফু এই কিন্ডা স্নিপেটগুলি সন্ধান এবং প্রকাশ করার জন্য একটি দুর্দান্ত জায়গা।

ধারক দ্বারা ডকার ভলিউম তালিকা।

docker ps -a --format '{{ .ID }}' | xargs -I {} docker inspect -f '{{ .Name }}{{ printf "\n" }}{{ range .Mounts }}{{ printf "\n\t" }}{{ .Type }} {{ if eq .Type "bind" }}{{ .Source }}{{ end }}{{ .Name }} => {{ .Destination }}{{ end }}{{ printf "\n" }}' {}

উদাহরণ আউটপুট।

root@jac007-truserv-jhb1-001 ~/gitlab $ docker ps -a --format '{{ .ID }}' | xargs -I {} docker inspect -f '{{ .Name }}{{ printf "\n" }}{{ range .Mounts }}{{ printf "\n\t" }}{{ .Type }} {{ if eq .Type "bind" }}{{ .Source }}{{ end }}{{ .Name }} => {{ .Destination }}{{ end }}{{ printf "\n" }}' {}
/gitlab_server_1

    volume gitlab-data => /var/opt/gitlab
    volume gitlab-config => /etc/gitlab
    volume gitlab-logs => /var/log/gitlab

/gitlab_runner_1

    bind /var/run/docker.sock => /var/run/docker.sock
    volume gitlab-runner-config => /etc/gitlab-runner
    volume 35b5ea874432f55a26c769e1cdb1ee3f06f78759e6f302e3c4b4aa40f3a495aa => /home/gitlab-runner

1
এইটি আমার যা প্রয়োজন তা করে।
আন্দ্রেস লিওন রেঞ্জেল

8

ধারকটি পরীক্ষা করে এবং জেএসএন আউটপুট দেখে এবং বেশ কয়েকটি ক্ষেত্রের সাথে তুলনা করে কোন ভলিউমগুলি বিশেষত ধারকটিতে বেকড হয়েছিল সে সম্পর্কে আপনি তথ্য পেতে পারেন। যখন আপনি চালাতে docker inspect myContainer, Volumesএবং VolumesRWক্ষেত্র আপনি তথ্য সম্পর্কে দিতে সব ভলিউম একটি ধারক ভিতরে মাউন্ট করা, ভলিউম সঙ্গে উভয় Dockerfile মধ্যে মাউন্ট সহ VOLUMEনির্দেশ, এবং কমান্ড লাইন docker run -vকমান্ড। তবে, আপনি JSON আউটপুটে ক্ষেত্রটি docker run -vপরীক্ষা করে কমান্ডটি ব্যবহার করে ধারকটিতে কোন ভলিউমগুলি মাউন্ট করা হয়েছিল তা আলাদা করতে পারেন । স্পষ্ট করার জন্য, এই ক্ষেত্রটি আপনাকে জানিয়েছে যে আপনার কমান্ডের সাথে বিশেষত কোন ভলিউম মাউন্ট হয়েছিলHostConfig.Bindsdocker inspectHostConfig.Bindsdocker run-vবিকল্প। সুতরাং আপনি যদি ক্ষেত্রের সাথে এই ক্ষেত্রটি ক্রস-রেফারেন্স করেন তবে আপনি Volumesতা নির্ধারণ করতে সক্ষম VOLUMEহবেন যে ডকফাইফিলের নির্দেশাবলী ব্যবহার করে ধারকটিতে কোন ভলিউম বেক করা হয়েছিল ।

একটি গ্রেপ এইভাবে সম্পাদন করতে পারে:

$ docker inspect myContainer | grep -C2 Binds
...
"HostConfig": {
    "Binds": [
        "/var/docker/docker-registry/config:/registry"
    ],

এবং...

$ docker inspect myContainer | grep -C3 -e "Volumes\":"
...
"Volumes": {
    "/data": "/var/lib/docker...",
    "/config": "/var/lib/docker...",
    "/registry": "/var/docker/docker-registry/config"

আমার উদাহরণে, আপনি দেখতে পারেন আমি মাউন্ট থাকেন /var/docker/docker-registry/configযেমন ধারক মধ্যে /registryব্যবহার -vআমার বিকল্প docker runকমান্ড, এবং আমি মাউন্ট থাকেন /dataএবং /configব্যবহার ভলিউম VOLUMEআমার Dockerfile মধ্যে ডিরেক্টিভের। ধারক নেই এই তথ্য পেতে চলমান করা প্রয়োজন, কিন্তু এটি অর্ডার নিয়ে আসতে 'অন্তত এক সময় চালানো হয়েছে বলে দরকার HostConfigআপনার এর তাদেরকে JSON আউটপুট docker inspectকমান্ড।


1
@ পল এর উত্তরে HostConfig.Bindsএটি কী এবং কীভাবে আলাদা .Volumes?
সিভিফ্যান

1
আমি সবেমাত্র দূরবর্তী এপিআই ডক্স এবং উত্সটি আবিষ্কার করার জন্য উত্সটি অনুসন্ধান করার জন্য শেষ ঘন্টাটি ব্যয় করেছি এবং আমি যা বলতে পারি তার থেকে .Volumes"পাত্রে ফাঁকা বস্তুগুলিতে ম্যাপিং মাউন্টপয়েন্ট পাথগুলি (স্ট্রিংগুলি) তালিকাভুক্ত করা হয়" এবং HostConfig.Bindsপ্রকৃত দণ্ডের বর্ণনা দেয় ধারক মধ্যে মাউন্ট ভলিউম। আমার কাছে তখন মনে হয় HostConfig.Bindsআপনি যা পড়তে চান বনাম .Volumes, যদিও আমি আরও ভাল যুক্তি শুনতে পছন্দ করব।
L0j1k

1
আমি #dockerফ্রিনোডে (ডকারের মূল চ্যানেল) জিজ্ঞাসা করেছি , এবং যদি আমি কিছু ফিরে শুনতে পাই তবে আমি আরও তথ্যের সাথে অবশ্যই এখানে আপডেট করব। এটি একটি খুব ভাল প্রশ্ন আপনি এখানে পার্থক্য সম্পর্কে জিজ্ঞাসা করেছেন। ধন্যবাদ!
L0j1k

1
@ সিআইভিফ্যান আমি এক ধরণের ভুল ছিল। ছবিতে কোন ভলিউম বেক করা হয়েছে তা দেখার জন্য, আপনাকে ডকার ইন্সপেক্টের জেএসএন আউটপুটে ভলিউম এবং হোস্টকনফিগ.বাইন্ডস ফিল্ডগুলি ব্যবহার করতে হবে। আমি এই উত্তরে নিজেকে সংশোধন করেছি, যা আমার আগে যা ছিল তার বিপরীতে আপনার প্রশ্নের উত্তর এখন কম-বেশি সঠিকভাবে দিয়েছে। শুভকামনা! :)
L0j1k

2
আপনি কি লক্ষ্য করেছেন HostConfig.Bindsযে কেবলমাত্র ভলিউমের হোস্ট পাথ নির্দিষ্ট করা হলে জনবহুল হয়? উদাহরণস্বরূপ, docker run -d -v /docker-test:/docker-test postgresবনাম docker run -d -v /docker-test postgres। মনে হচ্ছে ডকার কোনও কারণে এই দুটি ভলিউম কেসকে একেবারেই আলাদাভাবে পরিচালনা করে।
সিভিফ্যান


8

আপনি যদি প্রতিটি ধারকটির সাথে সংযুক্ত প্রাসঙ্গিক ভলিউমের সাথে সমস্ত পাত্রে নাম তালিকাবদ্ধ করতে চান তবে আপনি এটি চেষ্টা করতে পারেন:

docker ps -q | xargs docker container inspect -f '{{ .Name }} {{ .HostConfig.Binds }}'

উদাহরণ আউটপুট:

/ opt_rundeck_1 [/ opt / var / lib / mysql: / var / lib / mysql: rw / var / lib / rundeck / var / store: / var / lib / rundeck / var / store: rw / opt / var / rundeck / .ssh: /var/lib/rundeck/.ssh: rw / opt / etc / rundeck: / etc / rundeck: rw / var / log / rundeck: / var / log / rundeck: rw / opt / rundeck-plugins: / opt / rundeck-plugins: rw / opt / var / rundeck: / var / rundeck: rw]

/ opt_rundeck_1 - ধারকের নাম

[..] - কনটিনিয়ারের সাথে সংযুক্ত খণ্ডগুলি


1
যদিও এই প্রযুক্তিগতভাবে প্রশ্নের উত্তর, এটির ব্যাখ্যা নেই। দয়া করে আপনার মন্তব্য সম্পাদনা করুন যাতে আপনি ব্যাখ্যা করেন যে প্যারামিটারগুলি কী করছে এবং কেন প্রশ্নকর্তা তার প্রশ্নের মধ্যে উপস্থিত সমস্যা সমাধানের জন্য সেগুলি ব্যবহার করতে চান।
shawty

6

পাত্রে চলমানগুলির জন্য ভলিউম তথ্য পেতে এখানে একটি লাইন কমান্ড দেওয়া হয়েছে:

for contId in `docker ps -q`; do echo "Container Name: "   `docker ps -f "id=$contId" | awk '{print $NF}' | grep -v NAMES`; echo "Container Volume: " `docker inspect -f '{{.Config.Volumes}}' $contId`; docker inspect -f '{{ json .Mounts }}' $contId  | jq '.[]';   printf "\n"; done

আউটপুট হল:

root@ubuntu:/var/lib# for contId in `docker ps -q`; do echo "Container Name: "   `docker ps -f "id=$contId" | awk '{print $NF}' | grep -v NAMES`; echo "Container Volume: " `docker inspect -f '{{.Config.Volumes}}' $contId`; docker inspect -f '{{ json .Mounts }}' $contId  | jq '.[]';   printf "\n"; done

Container Name:  freeradius
Container Volume:  map[]

Container Name:  postgresql
Container Volume:  map[/run/postgresql:{} /var/lib/postgresql:{}]
{
  "Propagation": "",
  "RW": true,
  "Mode": "",
  "Driver": "local",
  "Destination": "/run/postgresql",
  "Source":     "/var/lib/docker/volumes/83653a53315c693f0f31629f4680c56dfbf861c7ca7c5119e695f6f80ec29567/_data",
  "Name": "83653a53315c693f0f31629f4680c56dfbf861c7ca7c5119e695f6f80ec29567"
}
{
  "Propagation": "rprivate",
  "RW": true,
  "Mode": "",
  "Destination": "/var/lib/postgresql",
  "Source": "/srv/docker/postgresql"
}

Container Name:  rabbitmq
Container Volume:  map[]

ডকার সংস্করণ:

root@ubuntu:~# docker version
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 21:44:32 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 21:44:32 2016
 OS/Arch:      linux/amd64

3

ডকার-রচনা ব্যবহারকারীদের জন্য দরকারী প্রকরণ:

docker-compose ps -q | xargs docker container inspect  \
   -f '{{ range .Mounts }}{{ .Name }}:{{ .Destination }} {{ end }}' 

এটি খুব ঝরঝরেভাবে পার্সেবল ভলিউম তথ্য আউটপুট দেবে। আমার ওয়ার্ডপ্রেস ডকার-রচনা থেকে উদাহরণ:

ubuntu@core $ docker-compose ps -q | xargs docker container inspect  -f '{{ range .Mounts }}{{ .Name }}:{{ .Destination }} {{ end }}' 
core_wpdb:/var/lib/mysql 
core_wpcode:/code core_wphtml:/var/www/html 

আউটপুটে প্রতিটি ধারকটির জন্য একটি লাইন থাকে, ব্যবহৃত ভলিউমগুলি (এবং মাউন্ট পয়েন্ট) তালিকা করে। আপনার পছন্দসই তথ্য আউটপুট করতে {{। নাম}}: {{। নির্ধারণ}} অংশটি পরিবর্তন করুন।

আপনি যদি কেবলমাত্র ভলিউমের একটি সাধারণ তালিকা চান তবে প্রতি লাইনে একটি

$ docker-compose ps -q | xargs docker container inspect  \
   -f '{{ range .Mounts }}{{ .Name }} {{ end }}' \
   | xargs -n 1 echo
core_wpdb
core_wpcode
core_wphtml

ব্যাকআপ নেওয়ার জন্য ভলিউমের একটি তালিকা তৈরি করতে দুর্দান্ত। আমি এই কৌশলটি ব্ল্যাকবেলপস ভলিউমরাইজের সাথে ডকর -রচনার মধ্যে সমস্ত ধারক দ্বারা ব্যবহৃত সমস্ত ভলিউমের ব্যাকআপ নিতে ব্যবহার করি। ভলিউমরিজের জন্য দস্তাবেজগুলি এটি কল করে না, তবে আপনাকে এটি অবিচ্ছিন্ন পাত্রে ব্যবহার করার প্রয়োজন নেই বা পরিষেবাগুলি শুরু এবং বন্ধ করার জন্য অন্তর্নির্মিত সুবিধাগুলি ব্যবহার করার প্রয়োজন নেই। আমি প্রকৃত ব্যবহারকারীর কাছে ব্যাকআপ এবং পরিষেবা নিয়ন্ত্রণের মতো সমালোচনামূলক ক্রিয়াকলাপগুলি পছন্দ করি (ডকের বাইরে)। আমার ব্যাকআপগুলি প্রকৃত (নন-ডকার) ব্যবহারকারী অ্যাকাউন্ট দ্বারা ট্রিগার করা হয়েছে, এবং পরিষেবাগুলি বন্ধ করার জন্য ডকার-কমপোজ স্টপ ব্যবহার করুন, সমস্ত ভলিউমের ব্যবহার ব্যাকআপ করুন এবং শেষ পর্যন্ত ডকার-রচনা পুনরায় আরম্ভ করা শুরু করুন।



1

ডকার রচনার মাউন্ট পয়েন্টগুলি সন্ধান করার জন্য আমার সংস্করণটি এখানে। ভলিউম ব্যাকআপ করতে এটি ব্যবহার করুন।

 # for Id in $(docker-compose -f ~/ida/ida.yml ps -q); do docker inspect -f '{{ (index .Mounts 0).Source }}' $Id; done
/data/volumes/ida_odoo-db-data/_data
/data/volumes/ida_odoo-web-data/_data

এটি পূর্ববর্তী সমাধানগুলির সংমিশ্রণ।


0

আপনি যদি pwsh (পাওয়ারশেল কোর) ব্যবহার করছেন তবে আপনি চেষ্টা করতে পারেন

(docker ps --format='{{json .}}' |  ConvertFrom-Json).Mounts

এছাড়াও আপনি নীচের মত ধারক নাম এবং মাউন্ট উভয় দেখতে পাবেন

docker ps --format='{{json .}}' |  ConvertFrom-Json | select Names,Mounts

আউটপুটটি জসন হিসাবে রূপান্তরিত হওয়ায় আপনি এর যে কোনও বৈশিষ্ট্য পেতে পারেন।


0

আমরা গো-টেমপ্লেট সিনট্যাক্স ছাড়াই এটি করতে পারি:

docker inspect <CONTAINER_ID> | jq .[] | jq .Mounts[]

প্রথম জকিউ অপারেশনটি jq .[]অবজেক্টের মোড়কে স্ট্রিপ করে {}

দ্বিতীয় জকিউ অপারেশন সমস্ত মাউন্ট আইটেম ফিরিয়ে দেবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.