• An example driven presentation on how we leverage custom Docker containers (maven, npm, oc client) to handle build dependencies on local workstations, provide clean Jenkins slaves, run tests inside orchestrated deployments or run tests inside OpenShift projects. By Matthias Bertschy from sicpa.


    Recorded by me at Docker Meetup group 5 Oct. 2016

  • Docker is a powerful tool for managing containers and run-time environments and, besides its many advantages, Docker can also be handy to keep your server tidy and secure.

    Docker allows to run operating systems, applications and tools in so called Containers. A #Container is an isolated environments that represents a autonomous host on its own – a bit in the same way a Virtual Machine does. Yet, Docker Containers are much lighter. They do not start an entire full-blown operating system for each Container instance. Instead, Docker uses Linux kernel isolation mechanisms to run applications on the top of the host’s operating systems, yet keeping them isolated.

    The Ethereum Go (language) team builds a Docker image of a “geth” node as part of their continuous build chain. Their Howto is more then enough to run your full node, mine below is just an enhanced example with volume, name, .. nothing fancy.

    # i want to persist the blockchain in a volume

    docker volume create --name=ethereum-data

    # and limit cpu usage to 20% of all 8 cores --cpus=".2", give a name to container, more command line options

    docker run --cpus=".2" -d -p 8545:8545 -p 30303:30303 \
    --name=ethereum-node \
    -v ethereum-data:/root/.ethereum ethereum/client-go \
    --rpc --rpcaddr ""

    to stop and recreate the container

    docker stop ethereum-node && docker rm ethereum-node

    to go inside the container

    docker exec -it ethereum-node bash

    to test the RPC api

    curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' localhost:8545


    curl -H "Content-Type: application/json" -X POST \
     --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest", true],"id":1}'


    You may want to register your node at The Ethereum (centralised) network status monitor , in that case just follow 

    My Ethereum node is now running at

    A better status page is in development using PHP with RPC

  • How to perform 0 down-time deployments using containers using the following strategies (rolling updates, Blue/Green and Canary) by Rafael Benevides, Director of Developer Experience at RedHat.

    Get the slides

    Recorded by me at Docker Meetup group 5 Oct. 2016