J'essaie de monter mes fichiers source dans un répertoire du menu fixe situé dans/var/dynamo. J'aimerais pouvoir exécuter Docker localement et utiliser mes fichiers locaux pendant que je travaille.
avec la commande run:
docker run -v $(pwd):/var/dynamo -d -t -p 8001:8001 --name dynamo davesrepo/dynamo
avec mon Dockerfile
FROM python:3.5.1
WORKDIR /var/dynamo
RUN pip3 install tornado
EXPOSE 8001
Cependant, lorsque je bash dans le conteneur docker exec -it dynamo /bin/bash
et que je lance ls -la
, le répertoire est vide!
root@7d3d338891aa:/var/dynamo# ls -la
total 4
drwxr-xr-x 2 root root 40 Dec 29 03:37 .
drwxr-xr-x 24 root root 4096 Dec 29 03:36 ..
docker inspect dynamo
affiche le répertoire monté correctement
[
{
"Id": "7d3d338891aae32e001a3bb31d6be17802d238526830396472b011599a97212a",
"Created": "2015-12-29T03:37:01.416445958Z",
"Path": "python3",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 1314,
"ExitCode": 0,
"Error": "",
"StartedAt": "2015-12-29T03:37:01.516253705Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "19697c9b5c7561b113d817821280971f063ea0187c82343c0832348fb6863c9a",
"ResolvConfPath": "/mnt/sda1/var/lib/docker/containers/7d3d338891aae32e001a3bb31d6be17802d238526830396472b011599a97212a/resolv.conf",
"HostnamePath": "/mnt/sda1/var/lib/docker/containers/7d3d338891aae32e001a3bb31d6be17802d238526830396472b011599a97212a/hostname",
"HostsPath": "/mnt/sda1/var/lib/docker/containers/7d3d338891aae32e001a3bb31d6be17802d238526830396472b011599a97212a/hosts",
"LogPath": "/mnt/sda1/var/lib/docker/containers/7d3d338891aae32e001a3bb31d6be17802d238526830396472b011599a97212a/7d3d338891aae32e001a3bb31d6be17802d238526830396472b011599a97212a-json.log",
"Name": "/dynamo",
"RestartCount": 0,
"Driver": "aufs",
"ExecDriver": "native-0.2",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": [
"/Users/dave/Sites/davesrepo/dynamo:/var/dynamo"
],
"ContainerIDFile": "",
"LxcConf": [],
"Memory": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"KernelMemory": 0,
"CpuShares": 0,
"CpuPeriod": 0,
"CpusetCpus": "",
"CpusetMems": "",
"CpuQuota": 0,
"BlkioWeight": 0,
"OomKillDisable": false,
"MemorySwappiness": -1,
"Privileged": false,
"PortBindings": {
"8001/tcp": [
{
"HostIp": "",
"HostPort": "8001"
}
]
},
"Links": null,
"PublishAllPorts": false,
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"VolumesFrom": null,
"Devices": [],
"NetworkMode": "default",
"IpcMode": "",
"PidMode": "",
"UTSMode": "",
"CapAdd": null,
"CapDrop": null,
"GroupAdd": null,
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"SecurityOpt": null,
"ReadonlyRootfs": false,
"Ulimits": null,
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"CgroupParent": "",
"ConsoleSize": [
0,
0
],
"VolumeDriver": ""
},
"GraphDriver": {
"Name": "aufs",
"Data": null
},
"Mounts": [
{
"Source": "/Users/dave/Sites/davesrepo/dynamo",
"Destination": "/var/dynamo",
"Mode": "",
"RW": true
}
],
"Config": {
"Hostname": "7d3d338891aa",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8001/tcp": {}
},
"Tty": true,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"APP_ENV=development",
"PYTHONPATH=$PYTHONPATH:/var/dynamo",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=C.UTF-8",
"PYTHON_VERSION=3.5.1",
"PYTHON_PIP_VERSION=7.1.2"
],
"Cmd": [
"python3"
],
"Image": "davesrepo/dynamo",
"Volumes": null,
"WorkingDir": "/var/dynamo",
"Entrypoint": null,
"OnBuild": null,
"Labels": {},
"StopSignal": "SIGTERM"
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "71d99a7d11908a9d1c0156fd33eb3f0ff5ef9f6697bb77103fe2caa1cf488530",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"8001/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "8001"
}
]
},
"SandboxKey": "/var/run/docker/netns/71d99a7d1190",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "1cc99b0de89700368f31b43248c90ea45cec756712a2bd2ba2dc57293a5d0a72",
"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": {
"EndpointID": "1cc99b0de89700368f31b43248c90ea45cec756712a2bd2ba2dc57293a5d0a72",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:02"
}
}
}
}
]
La version de Docker est 1.9.1
C'est très étrange. J'ai essayé de vérifier ce problème avec mon docker 1.6.0
et j'ai donc créé une image similaire à la vôtre:
FROM ubuntu:utopic
WORKDIR /var/dynamo
EXPOSE 8001
Ensuite, j'ai monté la $(pwd)
sur le conteneur et j'ai pu échanger des fichiers entre le système de fichiers Host et le conteneur:
➜ ololo echo $(pwd)
/tmp/ololo
➜ ololo ls
Dockerfile kikiboi
➜ ololo docker run --rm -it -v $(pwd):/var/dynamo volume_issue bash
root@9b15875997ba:/var/dynamo# ls
Dockerfile kikiboi
root@9b15875997ba:/var/dynamo# touch container_file
root@9b15875997ba:/var/dynamo# exit
➜ ololo ls
container_file Dockerfile kikiboi
Vous devez également vous assurer que /Users/dave/Sites/davesrepo/dynamo
sur votre hôte et /var/dynamo
à l'intérieur de votre conteneur ont le même numéro inode
. Utilisez l'utilitaire stat
pour ceci:
➜ ~ stat -c %i /tmp/ololo
1835031
➜ ~ docker run --rm -it -v /tmp/ololo:/var/dynamo ubuntu:utopic stat -c %i /var/dynamo
1835031
avait le même problème et ne trouvait aucune solution en ligne, finalement, j’ai découvert que j’avais changé mon mot de passe Windows et que le menu fixe avait besoin des informations d’identité Windows pour monter des volumes, vous pouvez le mettre à jour paramètres> lecteurs partagés anthère solution possible à ceux qui ont perdu dans le vide comme moi pendant quelques jours