Enable Docker Remote API – raspberry pi / raspbian

My starting point is:

  • How to use docker remote api to create container?,

so I edit /etc/init/docker.conf and update 2 occurrences of the DOCKER_OPTS variable to:

  • Moving docker-compose containersets around between hosts
  • How to config port in docker
  • How to expose ports between docker images in different sub-networks?
  • How to maintain sticky session(session persistence) with docker swarm?
  • How many docker containers can i run simultaneously on single host?
  • How to run maven test with mysql running in docker
  • DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'

    Then, a simple test to list docker images fails:

    $ service docker restart
    $ curl -X GET http://10.143.0.218:4243/images/json
    curl: (7) Failed to connect to 10.143.0.218 port 4243: Connection refused
    

    Docker version is:

    $ sudo docker version
    Client:
     Version:      1.12.3
     API version:  1.24
     Go version:   go1.6.3
     Git commit:   6b644ec
     Built:        Wed Oct 26 19:06:36 2016
    OS/Arch:      linux/arm
    
    Server:
     Version:      1.12.3
     API version:  1.24
     Go version:   go1.6.3
     Git commit:   6b644ec
     Built:        Wed Oct 26 19:06:36 2016
     OS/Arch:      linux/arm
    

  • Docker swarm on AWS - swarm services cannot access internet
  • nginx docker container: 502 bad gateway response
  • Port mapping in Docker
  • How can I find out how much space is used by my container images from the Google Container Registry
  • Cannot produce message to kafka from service running in docker
  • how to set supervisor to run a shell script
  • 2 Solutions collect form web for “Enable Docker Remote API – raspberry pi / raspbian”

    Not tested this, but if it’s Jessie, then it uses systemd by default as the init system iirc, and this has implications for how the daemon (dockerd) is configured and started.

    So you’re editing the /etc/init/docker.conf file but I don’t think that’s being read / used.

    Take a read of this article on different startup procedures on each init system in Docker, and this for specific systemd configuration.

    The solution comes from the comments of this page: http://www.virtuallyghetto.com/2014/07/quick-tip-how-to-enable-docker-remote-api.html

    [08/18/2016 at 6:00 am] Oliver Weise says:
    Thanks, that put me in the right direction. However since Ubuntu 16.04
    with its systemd docker daemon the /etc/default/docker is no longer
    effective. Instead you need to create a systemd dropin file.

    I placed such a file under: /etc/systemd/system/docker.service.d/remote-api.conf

    With the contents:

    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd -H tcp://127.0.0.1:2376 -H unix:///var/run/docker.sock
    

    (Yes, the double ExecStart is necessary)

    After that run:

    sudo systemctl daemon-reload // reloading daemon definitions
    sudo systemctl restart docker
    
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.