5
votes

This is question about Google Container VM Image(beta) https://cloud.google.com/compute/docs/containers/vm-image/

I logged in a instance made by Container VM image. And run

sudo /usr/share/google/dockercfg_update.sh

That script above does 'docker login' to private container registry.

It causes error.

/usr/share/google/dockercfg_update.sh: 27: cannot create /root/.dockercfg: Read-only file system

/root directory seems to be read-only in the container-vm. How can I 'docker login' by root user?

1

1 Answers

5
votes

Since /root is read-only, your credentials cannot be stored there. You can add a non-root user to 'docker' group and run /usr/share/google/dockercfg_update.sh and docker login as that user.

From https://cloud.google.com/compute/docs/containers/vm-image/#accessing_private_google_container_registry

$ sudo usermod -a -G docker ${USER}
$ exec sudo su ${USER}
$ /usr/share/google/dockercfg_update.sh
$ docker pull gcr.io/YOUR_PROJECT/YOUR_IMAGE

How can I 'docker login' by root user

If you must invoke docker login or /usr/share/google/dockercfg_update.sh as root user (not recommended), a hacky way is to prefix HOME=/home/chronos/ to your commands. Ex:

# as 'root' user
$ HOME=/home/chronos/ /usr/share/google/dockercfg_update.sh
$ HOME=/home/chronos/ docker pull gcr.io/YOUR_PROJECT/YOUR_IMAGE