docker

  • Dockerized Maven

    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.

    Slides

    Recorded by me at Docker Meetup group 5 Oct. 2016

  • Running an Ethereum Node with Docker

    #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 "127.0.0.1"

    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

    or 

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

    see 
    https://ethereum.gitbooks.io/frontier-guide/content/rpc.html 

    You may want to register your node at The Ethereum (centralised) network status monitor , in that case just follow https://github.com/ethereum/wiki/wiki/Network-Status 

    My Ethereum node is now running at http://ethereum.galaxiis.com

    A better status page is in development using PHP with RPC

  • The deployment master How to perform 0 down-time deployments using containers

    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