Public Repository

Last pushed: 2 years ago
Short Description
A CoreOS toolbox, based on Debian Jessie
Full Description

A CoreOS toolbox container based on Debian Jessie, with some niceties such as zsh and a fully fledged vim. To use, instruct the toolbox utility to use ragnarb/toolbox instead of the default fedora container. The source can be found on Github.

Tools included

The toolbox is geared towards performance metric gathering and debugging. Some of the tools include generic ones like htop, dstat, atop and sar; more specific tools like iostat, iotop, blktrace, iozone, vmstat, slabtop, pidstat, lsof and mpstat; network oriented tools like mtr, tcpdump, nicstat, iftop, iperf, ethtool and the iproute2 tools; and strace/ltrace and sysdig for tracing. A docker binary matching the latest release on CoreOS stable is also included.

Note that in order to use sysdig you must bind /dev from the host into the toolbox and run sysdig-probe-loader to load the relevant kernel module. To use the host's docker daemon from within the toolbox bind /var/run/docker.sock to /docker/docker.sock. See the usage section below for how to do this automatically.

For a full list of tools installed, see the Dockerfile.

Usage

Configure the toolbox utility to use this container instead of the default one by specifying TOOLBOX_DOCKER_IMAGE=ragnarb/toolbox in $HOME/.toolboxrc. See the CoreOS documentation for details.

Setting up the toolbox with /dev and /var/run/docker.sock bound and zsh instead of bash can done with a .toolboxrc along the lines of:

TOOLBOX_DOCKER_IMAGE=ragnarb/toolbox
TOOLBOX_CMD="$@"

if [ -z "$TOOLBOX_PROVISIONED" ]; then
    export TOOLBOX_PROVISIONED=1
    test -z "$TOOLBOX_CMD" && TOOLBOX_CMD=zsh
    exec /usr/bin/toolbox --bind=/dev:/dev --bind=/var/run/docker.sock:/docker/docker.sock $TOOLBOX_CMD
fi

Writing the .toolboxrc when provisioning can be accomplished with a section like this in your cloud-config:

#cloud-config
write_files:
  - path: /home/core/.toolboxrc
    owner: core
    content: |
      TOOLBOX_DOCKER_IMAGE=ragnarb/toolbox
      TOOLBOX_CMD="$@"

      if [ -z "$TOOLBOX_PROVISIONED" ]; then
          export TOOLBOX_PROVISIONED=1
          test -z "$TOOLBOX_CMD" && TOOLBOX_CMD=zsh
          exec /usr/bin/toolbox --bind=/dev:/dev --bind=/var/run/docker.sock:/docker/docker.sock $TOOLBOX_CMD
      fi

License

BSD 2-Clause. See the LICENSE file for details.

Docker Pull Command
Owner
ragnarb