Search code examples
macosdockeribm-cloud

Docker and Namespace-related errors after a successful login to Bluemix


I have installed Python (with Pip and easysetup), Cloud Foundry and ICE in my host machine, OS X 10.10.3.

I've booted boot2docker and attempted to ice login. After a successful login attempt:

mbp-idan:~ idanadar$ boot2docker up
Waiting for VM and Docker daemon to start...
.o
Started.
Writing /Users/idanadar/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/idanadar/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/idanadar/.boot2docker/certs/boot2docker-vm/key.pem
Your environment variables are already set correctly.

mbp-idan:~ idanadar$ ice login
API endpoint: https://api.ng.bluemix.net

Email> my-email-address

Password> my-password
Authenticating...
OK

Targeted org my-email-address

Targeted space dev



API endpoint:   https://api.ng.bluemix.net (API version: 2.23.0)   
User:           my-email-address  
Org:            my-email-address   
Space:          dev   
Authentication with container cloud service at https://api-ice.ng.bluemix.net/v2/containers completed successfully
You can issue commands now to the container service

I immediately encounter the following errors:

  1. Authentication issue:

    Proceeding to authenticate with the container cloud registry at registry-ice.ng.bluemix.net
    FATA[0005] Error response from daemon: Login: You must set a namespace before you login to the registry.  See 'ice help namespace' (Code: 404; Headers: map[Connection:[Keep-Alive] Date:[Wed, 27 May 2015 18:57:41 GMT] Content-Type:[text/plain] X-Client-Ip:[79.176.226.146] X-Backside-Transport:[FAIL FAIL] Server:[nginx/1.7.9] X-Global-Transaction-Id:[380677271] Set-Cookie:[DPJSESSIONID=PBC5YS:481842763; Path=/; Domain=.registry-ice.ng.bluemix.net]]) 
    
  2. Docker issue:

    docker is not available on your system or is not properly configured
    Could not authenticate with cloud registry at registry-ice.ng.bluemix.net 
    You can still use IBM Containers but will not be able to run local docker containers, push, or pull images
    

The only configuration I did previously was adding the following to ~/.bash_profile, which is what provided by Docker when using boot2docker up:

    export DOCKER_HOST=tcp://192.168.59.103:2376
    export DOCKER_CERT_PATH=/Users/idanadar/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1

Once I did this change, I get the above two errors. If I will comment out the above three lines from .bash_profile, and not run boot2docker shellinit after boot2docker up, I will get this error:

FATA[0000] Post http:///var/run/docker.sock/v1.18/auth: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS? 
docker is not available on your system or is not properly configured
Could not authenticate with cloud registry at registry-ice.ng.bluemix.net 
You can still use IBM Containers but will not be able to run local docker containers, push, or pull images

If I will replace the three lines with this single line:

export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375

I will get the following error, which is a bit different. Note the -d and lack of error regarding namespace.

Proceeding to authenticate with the container cloud registry at registry-ice.ng.bluemix.net
FATA[0000] Cannot connect to the Docker daemon. Is 'docker -d' running on this host? 
docker is not available on your system or is not properly configured
Could not authenticate with cloud registry at registry-ice.ng.bluemix.net 
You can still use IBM Containers but will not be able to run local docker containers, push, or pull images

[docker] Any idea which is the right way to get Docker recognized?
This is being tested in OS X 10.10.3.

[bluemix] Any idea about the namespace?

For some reason they seem inter-linked?


Solution

  • The error that is outputted by ICE is really unhelpful.

    To solve it:

    1. Added back to ~/.bash_profile the original 3 lines
    2. Created the namespace in Bluemix.net

    After that, everything has fallen to place and everything is working.