2017-01-30 4 views
2

私はLinuxのボリュームdev/sdhを持っています。これは/media/ebs_volumeにマウントされています。 -v /media/ebs_volume:/tmp/foo:roを使用してドッキングコンテナにマウントしようとすると、/tmp/fooにマウントされたディレクトリは空です!コンテナ内のls -al /tmp/fooは空ですが、ホスト上のls -al /media/ebs_volumeには何かがあります。Dockerのボリュームマウントには、ディレクトリにLinuxがマウントされた空のディレクトリがあります

[email protected] ~]$ ls -al /media/ebs_volume/ 
total 28 
drwxr-xrwx 4 root  root  4096 Jan 20 21:34 . 
drwxr-xr-x 3 root  root  4096 Jan 29 23:18 .. 
drwx------ 2 root  root  16384 Jan 20 21:29 lost+found 
drwxrwxr-x 3 ec2-user ec2-user 4096 Jan 20 21:38 stuff 
[[email protected] ~]$ docker run -it --rm -v /media/ebs_volume:/tmp/foo:ro nginx ls -al /tmp/foo 
total 4 
drwxr-xr-x 2 root root 4096 Jan 29 23:18 . 
drwxrwxrwt 3 root root 16 Jan 30 17:33 .. 

ボリュームをホスト上に別の場所にマウントし、ディレクトリ全体ではなくホストから特定のファイルを1つだけマウントしようとしました。ホームディレクトリから問題なく動作するように見えるものをマウントすると

誰かが何が起こっているのか、これをデバッグする最善の方法がありますか?

おそらく便利ないくつかの編集と出力:

[[email protected] ~]$ mount 
proc on /proc type proc (rw,relatime) 
/dev/xvda1 on/type ext4 (rw,noatime,data=ordered) 
/dev/xvdh on /media/ebs_volume type ext4 (rw,relatime,data=ordered) 
...     

[[email protected] ~]$ docker version 
Client: 
Version:  1.12.6 
API version: 1.24 
Go version: go1.6.3 
Git commit: 7392c3b/1.12.6 
Built:  Fri Jan 6 22:16:21 2017 
OS/Arch:  linux/amd64 

Server: 
Version:  1.12.6 
API version: 1.24 
Go version: go1.6.3 
Git commit: 7392c3b/1.12.6 
Built:  Fri Jan 6 22:16:21 2017 
OS/Arch:  linux/amd64 

[[email protected] ~]$ cat /proc/version 
Linux version 4.4.41-36.55.amzn1.x86_64 ([email protected]) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)) #1 SMP Wed Jan 18 01:03:26 UTC 2017 

[[email protected] ~]$ docker ps 
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS    NAMES 
1436d3223b27  nginx    "/bin/bash"    47 seconds ago  Up 46 seconds  80/tcp, 443/tcp  happy_leakey 

[[email protected] ~]$ docker inspect 1436d3223b27 
[ 
    { 
     "Id": "1436d3223b270f78654d26682c469f4d7bdd24766c60f4052cb1a3fb60c86c12", 
     "Created": "2017-01-30T17:34:12.430135675Z", 
     "Path": "/bin/bash", 
     ... 
     "Image": "sha256:cc1b614067128cd2f5cdafb258b0a4dd25760f14562bcce516c13f760c3b79c4", 
     ... 
     "Driver": "devicemapper", 
     "MountLabel": "", 
     ... 
     "HostConfig": { 
      "Binds": [ 
       "/media/ebs_volume:/tmp/foo:ro" 
      ], 
      "ContainerIDFile": "", 
      ... 
      "VolumeDriver": "", 
      "VolumesFrom": null, 
      "CapAdd": null, 
      "CapDrop": null, 
      ... 
     }, 
     ... 
     "Mounts": [ 
      { 
       "Source": "/media/ebs_volume", 
       "Destination": "/tmp/foo", 
       "Mode": "ro", 
       "RW": false, 
       "Propagation": "rprivate" 
      } 
     ], 
     "Config": { 
      ... 
      "Env": [ 
       "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", 
       "NGINX_VERSION=1.11.9-1~jessie" 
      ], 
      "Cmd": [ 
       "/bin/bash" 
      ], 
      "Image": "nginx", 
      "Volumes": null, 
      ... 
     }, 
     ... 
    } 
] 
+0

あなたはこのことを理解しましたを参照してください?私は同じ問題を抱えています、それはフォルダをマウントしますが、ファイルはありません! – Joel

+0

申し訳ありません@Joel。これには本当にきれいな答えは見つかりませんでしたが、私は解決策として 回避策を提出しました。がんばろう –

答えて

0

汚れたソリューションが、私はdocker service restart経由ドッカサービスを再起動が私のためにこれを固定することを発見しました。

私はこのためにElasticBeanstalkを使用し、単に私の.configファイルなどでの展開にサービスを再起動するために、いくつかのcommandsを追加されました:

... 

commands: 
    ... 
    02-restart-docker: 
     command: service docker restart && docker restart ecs-agent 
    ... 

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.htmlhttps://github.com/docker/docker/issues/5489#issuecomment-73427804

関連する問題