Kubernetes pod not binding volumes to container

I’ve got the following ReplicationController JSON defined:

  "id": "PHPController",
  "kind": "ReplicationController",
  "apiVersion": "v1beta1",
  "desiredState": {
    "replicas": 2,
    "replicaSelector": {"name": "php"},
    "podTemplate": {
      "desiredState": {
         "manifest": {
           "version": "v1beta1",
           "id": "PHPController",
           "volumes": [{ "name": "wordpress", "path": "/mnt/nfs/wordpress_a", "hostDir": "/mnt/nfs/wordpress_a"}],
           "containers": [{
             "name": "php",
             "image": "internaluser/php53",
             "ports": [{"containerPort": 80, "hostPort": 9021}],
             "volumeMounts": [{"name": "wordpress", "mountPath": "/mnt/nfs/wordpress_a"}]
       "labels": {"name": "php"}
  "labels": {"name": "php"} 


The container starts correctly when run with “docker run -t -i -p -v /mnt/nfs/wordpress_a:/mnt/nfs/wordpress_a:rw internaluser/php53″.

  • How to access kurento media server running inside docker container
  • Development workflow on Minikube and docker
  • How to start docker container after succesfull wait-for-it script
  • A jenkins-slave container image per module type or a single centralized one which can build anything?
  • How to mount a directory in docker container to host
  • Detecting Virtualbox from Docker
  • /mnt/nfs/wordpress_a is an NFS share, mounted on all of the minions. Each minion has full RW access and I have verified that the share is present.

    After creating the pod containers with the Replication Controller, I can see that the volume was never actually bound, and/or incorrectly mounted:

        "Volumes": {
            "/mnt/nfs/wordpress_a": "/var/lib/docker/vfs/dir/8b5dc8477958f5c1b894e68ab9412b41e81a34ef16dac81f0f9d4884352a90b7"
        "VolumesRW": {
            "/mnt/nfs/wordpress_a": true
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LxcConf": null,
            "Privileged": false,
            "PortBindings": {
                "80/tcp": [
                        "HostIp": "",
                        "HostPort": "9021"

    I find it strange that the container believes /mnt/nfs/wordpress_a is mapped to “/var/lib/docker/vfs/dir/8b5dc8477958f5c1b894e68ab9412b41e81a34ef16dac81f0f9d4884352a90b7”.

    From the kubelet log:

    Desired []: [{Namespace:etcd Name:c823da9e-4437-11e4-a3b1-0050568421eb Manifest:{Version:v1beta1 ID:c823da9e-4437-11e4-a3b1-0050568421eb UUID:c823da9e-4437-11e4-a3b1-0050568421eb Volumes:[{Name:wordpress Source:}] Containers:[{Name:php Image:internaluser/php53 Command:[] WorkingDir: Ports:[{Name: HostPort:9021 ContainerPort:80 Protocol:TCP HostIP:}] Env:[{Name:SERVICE_HOST Value:}] Memory:0 CPU:0 VolumeMounts:[{Name:wordpress ReadOnly:false MountPath:/mnt/nfs/wordpress_a}] LivenessProbe: Lifecycle: Privileged:false}] RestartPolicy:{Always:0xa99a20 OnFailure: Never:}}}]

    Does anyone have experience with this sort of thing? I’ve been driving myself crazy troubleshooting this. Thanks!

  • How to open/run YML compose file?
  • Can I have a writable Docker volume mounted under a read-only volume?
  • Locating data volumes in Docker
  • How to use docker in network bridge mode?
  • How to use Postgresql container with existing data?
  • ActiveAdmin uninitialized constant in Ruby on Rails
  • One Solution collect form web for “Kubernetes pod not binding volumes to container”

    Solved. The volumes syntax was incorrect.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.