Docker volume -v 标志有效,但 docker-compose 卷不起作用

问题描述

我正在尝试将容器 git 文件夹放入我的本地文件夹中。 (将容器文件夹与我的计算机本地文件夹绑定)就像我这样做时的图像描述

docker run -p 8080:8080 -p 8001:8001 -v $(pwd):/opt/jboss/wildfly/bin/.niogit:Z -d --name jbpm-workbench jboss/business-central-workbench-showcase:latest

一切都按预期进行。但是如果我在 docker-compose 文件中尝试这个:

version: "3.9"

services:   business-central:
    image: jboss/business-central-workbench-showcase:latest
    network_mode: default
    ports:
      - 8080:8080
      - 8001:8001
    volumes:
      - ./git:/opt/jboss/wildfly/bin/.niogit:Z

它不起作用。

当我检查容器时 docker run 一个

[
{
    "Id": "050a4dceb241d04f5e92d1d963a73646e1a8559ff3094c1705229bd2ad22859a","Created": "2021-06-08T09:11:04.082653292Z","Path": "./start_business-central-wb.sh","Args": [],"State": {
        "Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 62316,"ExitCode": 0,"Error": "","StartedAt": "2021-06-08T09:11:04.423834376Z","FinishedAt": "0001-01-01T00:00:00Z"
    },"Image": "sha256:a84b58b28277164c45aaef1a44a5070e883e5ae7d1732164af6694fca9313479","ResolvConfPath": "/var/lib/docker/containers/050a4dceb241d04f5e92d1d963a73646e1a8559ff3094c1705229bd2ad22859a/resolv.conf","HostnamePath": "/var/lib/docker/containers/050a4dceb241d04f5e92d1d963a73646e1a8559ff3094c1705229bd2ad22859a/hostname","HostsPath": "/var/lib/docker/containers/050a4dceb241d04f5e92d1d963a73646e1a8559ff3094c1705229bd2ad22859a/hosts","LogPath": "/var/lib/docker/containers/050a4dceb241d04f5e92d1d963a73646e1a8559ff3094c1705229bd2ad22859a/050a4dceb241d04f5e92d1d963a73646e1a8559ff3094c1705229bd2ad22859a-json.log","Name": "/jbpm-workbench","RestartCount": 0,"Driver": "overlay2","Platform": "linux","MountLabel": "","ProcessLabel": "","AppArmorProfile": "docker-default","ExecIDs": null,"HostConfig": {
        "Binds": [
            "/home/bahadir/Documents/Projects/kosgeb-engine:/opt/jboss/wildfly/bin/.niogit:Z"
        ],"ContainerIDFile": "","LogConfig": {
            "Type": "json-file","Config": {}
        },"NetworkMode": "default","PortBindings": {
            "8001/tcp": [
                {
                    "HostIp": "","HostPort": "8001"
                }
            ],"8080/tcp": [
                {
                    "HostIp": "","HostPort": "8080"
                }
            ]
        },"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/acb0b2ead431d53fa4bb06a663b3dda5274d1b9bf770e47da952173c5f574a58-init/diff:/var/lib/docker/overlay2/d6e0af68bcecebe63a2084109e8ea402323b5639ad4930e3810404e1a004b1b0/diff:/var/lib/docker/overlay2/11503e1a3cbe3ccaf2a08bd53163fad56568e125c4315f8f11ed26b348c6a296/diff:/var/lib/docker/overlay2/452b79bce41d21a121fe1d517b8f41e29b63943cc880697bf78372e3e3f4dede/diff:/var/lib/docker/overlay2/6da58405868eee65c7e8fc5a96133dc3960fa02ef1e6e38fb341ca58d05d943d/diff:/var/lib/docker/overlay2/918f9536c42ee86146011fdc95cb1fa496b6c787849719c621764e178e78127e/diff:/var/lib/docker/overlay2/9bf60d043c0e84a69a321017b19a4d89ac3e242207ba00c7dc685e30d7e962bf/diff:/var/lib/docker/overlay2/ebd7aceb50c16e9d98d947efbda24518187019fc77f86d867a2f173a3a5260f0/diff:/var/lib/docker/overlay2/aa89eb5308ae3a52abe04fd56bc8485d77d31ee87098e19808dcfbf4c4bdc786/diff:/var/lib/docker/overlay2/7e65422f205cffb53ff2e8726f49c2e72392b72b4765081bae3a0a8eb3021fc6/diff:/var/lib/docker/overlay2/de58fc4c63bfefd3262d122af87c5f2ef855aa13c6b9e96ee2dfd91e54292ede/diff:/var/lib/docker/overlay2/d5cbc322dcecb6404123d32c28b00b0b8e57eb69d575f27a223a3e87975a55c0/diff:/var/lib/docker/overlay2/c83b9acd413abf540a9d00708a8d3ad7533e7a374788a0950b0f151ddb7c41d6/diff:/var/lib/docker/overlay2/5860d1bf949d13bf2fa6d8d6d0b920952096f49ea53813b6cc62c6873832d514/diff:/var/lib/docker/overlay2/4c588e89452e1b0303a5cc60e7c40faffe4c8d2149d6c202fd98e796b20832bb/diff","MergedDir": "/var/lib/docker/overlay2/acb0b2ead431d53fa4bb06a663b3dda5274d1b9bf770e47da952173c5f574a58/merged","UpperDir": "/var/lib/docker/overlay2/acb0b2ead431d53fa4bb06a663b3dda5274d1b9bf770e47da952173c5f574a58/diff","workdir": "/var/lib/docker/overlay2/acb0b2ead431d53fa4bb06a663b3dda5274d1b9bf770e47da952173c5f574a58/work"
        },"Name": "overlay2"
    },"Mounts": [
        {
            "Type": "bind","Source": "/home/bahadir/Documents/Projects/kosgeb-engine","Destination": "/opt/jboss/wildfly/bin/.niogit","Mode": "Z","RW": true,"Propagation": "rprivate"
        }
    ],"Config": {
        "Hostname": "050a4dceb241","Domainname": "","User": "jboss","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"ExposedPorts": {
            "8001/tcp": {},"8080/tcp": {}
        },"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","JAVA_HOME=/usr/lib/jvm/java","WILDFLY_VERSION=19.1.0.Final","WILDFLY_SHA1=6883125745a62b598659ea351f5b1706aff53955","JBOSS_HOME=/opt/jboss/wildfly","LAUNCH_JBOSS_IN_BACKGROUND=true","JBOSS_BIND_ADDRESS=0.0.0.0","KIE_REPOSITORY=https://repository.jboss.org/nexus/content/groups/public-jboss","KIE_VERSION=7.54.0.Final","KIE_CLASSIFIER=wildfly19","KIE_CONTEXT_PATH=business-central","JAVA_OPTS=-xms256m -Xmx2048m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=512m -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8","KIE_SERVER_PROFILE=standalone"
        ],"Cmd": [
            "./start_business-central-wb.sh"
        ],"Image": "jboss/business-central-workbench-showcase:latest","Volumes": null,"WorkingDir": "/opt/jboss/wildfly/bin","Entrypoint": null,"OnBuild": null,"Labels": {
            "org.label-schema.build-date": "20181205","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": "231baa83449352957b8f7b6469defbb410ae1455dd06c990f9fe75483ade72ed","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {
            "8001/tcp": [
                {
                    "HostIp": "0.0.0.0","HostPort": "8001"
                },{
                    "HostIp": "::","8080/tcp": [
                {
                    "HostIp": "0.0.0.0","HostPort": "8080"
                },"SandBoxKey": "/var/run/docker/netns/231baa834493","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "7e18648624c81b5f89cb7d959c7db4879cca7d5a56c16fba081112e88fceb377","Gateway": "172.17.0.1","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"IPAddress": "172.17.0.2","IPPrefixLen": 16,"IPv6Gateway": "","MacAddress": "02:42:ac:11:00:02","Networks": {
            "bridge": {
                "IPAMConfig": null,"Aliases": null,"NetworkID": "88ea0e8bc4569ba79ff1a31ec42828996a32784c7069fc7c31ef1e3cc589fc31","DriverOpts": null
            }
        }
    }
}

]

docker compose 一说

[
    {
        "Id": "a332ff863902ef097abd84fc48e2a842a89e2ffbb9f9bdc6dcee3374d0a8bf49","Created": "2021-06-08T09:06:37.889000317Z","State": {
            "Status": "running","Pid": 63252,"StartedAt": "2021-06-08T09:13:17.064498858Z","FinishedAt": "2021-06-08T09:08:55.784957587Z"
        },"ResolvConfPath": "/var/lib/docker/containers/a332ff863902ef097abd84fc48e2a842a89e2ffbb9f9bdc6dcee3374d0a8bf49/resolv.conf","HostnamePath": "/var/lib/docker/containers/a332ff863902ef097abd84fc48e2a842a89e2ffbb9f9bdc6dcee3374d0a8bf49/hostname","HostsPath": "/var/lib/docker/containers/a332ff863902ef097abd84fc48e2a842a89e2ffbb9f9bdc6dcee3374d0a8bf49/hosts","LogPath": "/var/lib/docker/containers/a332ff863902ef097abd84fc48e2a842a89e2ffbb9f9bdc6dcee3374d0a8bf49/a332ff863902ef097abd84fc48e2a842a89e2ffbb9f9bdc6dcee3374d0a8bf49-json.log","Name": "/kosgeb-engine_business-central_1","HostConfig": {
            "Binds": [
                "/home/bahadir/Documents/Projects/kosgeb-engine/git:/opt/jboss/wildfly/bin/.niogit:Z"
            ],"LogConfig": {
                "Type": "json-file","Config": {}
            },"PortBindings": {
                "8001/tcp": [
                    {
                        "HostIp": "","HostPort": "8001"
                    }
                ],"8080/tcp": [
                    {
                        "HostIp": "","HostPort": "8080"
                    }
                ]
            },"RestartPolicy": {
                "Name": "","MaximumRetryCount": 0
            },"VolumesFrom": [],"Dns": null,"DnsOptions": null,"DnsSearch": null,"ConsoleSize": [
                0,0
            ],"BlkioWeightDevice": null,"Devices": null,"Maskedpaths": [
                "/proc/asound","/sys/firmware"
            ],"ReadonlyPaths": [
                "/proc/bus","/proc/sysrq-trigger"
            ]
        },"GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/a38b6370ce4a56fa04b2eba071d0229a324484a76cd84cbd9cb2f199040aba92-init/diff:/var/lib/docker/overlay2/d6e0af68bcecebe63a2084109e8ea402323b5639ad4930e3810404e1a004b1b0/diff:/var/lib/docker/overlay2/11503e1a3cbe3ccaf2a08bd53163fad56568e125c4315f8f11ed26b348c6a296/diff:/var/lib/docker/overlay2/452b79bce41d21a121fe1d517b8f41e29b63943cc880697bf78372e3e3f4dede/diff:/var/lib/docker/overlay2/6da58405868eee65c7e8fc5a96133dc3960fa02ef1e6e38fb341ca58d05d943d/diff:/var/lib/docker/overlay2/918f9536c42ee86146011fdc95cb1fa496b6c787849719c621764e178e78127e/diff:/var/lib/docker/overlay2/9bf60d043c0e84a69a321017b19a4d89ac3e242207ba00c7dc685e30d7e962bf/diff:/var/lib/docker/overlay2/ebd7aceb50c16e9d98d947efbda24518187019fc77f86d867a2f173a3a5260f0/diff:/var/lib/docker/overlay2/aa89eb5308ae3a52abe04fd56bc8485d77d31ee87098e19808dcfbf4c4bdc786/diff:/var/lib/docker/overlay2/7e65422f205cffb53ff2e8726f49c2e72392b72b4765081bae3a0a8eb3021fc6/diff:/var/lib/docker/overlay2/de58fc4c63bfefd3262d122af87c5f2ef855aa13c6b9e96ee2dfd91e54292ede/diff:/var/lib/docker/overlay2/d5cbc322dcecb6404123d32c28b00b0b8e57eb69d575f27a223a3e87975a55c0/diff:/var/lib/docker/overlay2/c83b9acd413abf540a9d00708a8d3ad7533e7a374788a0950b0f151ddb7c41d6/diff:/var/lib/docker/overlay2/5860d1bf949d13bf2fa6d8d6d0b920952096f49ea53813b6cc62c6873832d514/diff:/var/lib/docker/overlay2/4c588e89452e1b0303a5cc60e7c40faffe4c8d2149d6c202fd98e796b20832bb/diff","MergedDir": "/var/lib/docker/overlay2/a38b6370ce4a56fa04b2eba071d0229a324484a76cd84cbd9cb2f199040aba92/merged","UpperDir": "/var/lib/docker/overlay2/a38b6370ce4a56fa04b2eba071d0229a324484a76cd84cbd9cb2f199040aba92/diff","workdir": "/var/lib/docker/overlay2/a38b6370ce4a56fa04b2eba071d0229a324484a76cd84cbd9cb2f199040aba92/work"
            },"Name": "overlay2"
        },"Mounts": [
            {
                "Type": "bind","Source": "/home/bahadir/Documents/Projects/kosgeb-engine/git","Destination": "/opt/jboss/wilfly/bin/.niogit","Propagation": "rprivate"
            }
        ],"Config": {
            "Hostname": "a332ff863902","ExposedPorts": {
                "8001/tcp": {},"8080/tcp": {}
            },"Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","KIE_SERVER_PROFILE=standalone"
            ],"Cmd": [
                "./start_business-central-wb.sh"
            ],"Volumes": {
                "/opt/jboss/wilfly/bin/.niogit": {}
            },"Labels": {
                "com.docker.compose.config-hash": "f59ac4f02be4567f3eb5c811caa332ad6515fc9d319fa5469ef6adfe4f99a5ab","com.docker.compose.container-number": "1","com.docker.compose.oneoff": "False","com.docker.compose.project": "kosgeb-engine","com.docker.compose.project.config_files": "docker-compose.yml","com.docker.compose.project.working_dir": "/home/bahadir/Documents/Projects/kosgeb-engine","com.docker.compose.service": "business-central","com.docker.compose.version": "1.29.2","org.label-schema.build-date": "20181205","org.label-schema.vendor": "CentOS"
            }
        },"NetworkSettings": {
            "Bridge": "","SandBoxID": "de92ff5ea51180722b17313c9225e57de2b6b61e2786a3758cdccbc911556c75","Ports": {
                "8001/tcp": [
                    {
                        "HostIp": "0.0.0.0","HostPort": "8001"
                    },{
                        "HostIp": "::","8080/tcp": [
                    {
                        "HostIp": "0.0.0.0","HostPort": "8080"
                    },"SandBoxKey": "/var/run/docker/netns/de92ff5ea511","EndpointID": "f8e4ed72e4390995e34790b6a26a2c93557a71f0a9189e0b90f642dd77e2d772","Networks": {
                "bridge": {
                    "IPAMConfig": null,"DriverOpts": null
                }
            }
        }
    }
]

我做错了什么?

解决方法

您可以使用 here 中所示的长语法绑定卷。

所以你的卷应该是这样的:

volumes:
  - type: bind
    source: ./git
    target: /opt/jboss/wildfly/bin/.niogit
    volume:
      nocopy: true

你也可以看看这个thread

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...