@tundra tundra authored on 6 Aug 2020
ansible added framework for ansible tooling 3 years ago
dockerfiles added framework for ansible tooling 3 years ago
README.md add dockerfile stanza to populate /etc/hosts, minor doc formatting 3 years ago

Docker Sandboxes The Easy Way

This repo provides a fast track to spinning up docker containers as "servers". You can log into these and do most of the things you do an a "real" server or VM.

Things You Can Learn And Use From This

  • How to build a docker image from a "dockerfile"
  • How to use ansible to create and destroy a docker network
  • How to use ansible to create, restart, and destroy docker servers
  • How host and ssh keys are managed on a docker instance
  • How to enable ssh access to a docker instance

But this is not a "toy" system. What you see here is a public subset of what we use all the time here at the TundraWare Intergalactic HQ. We use this for software development, testing new distributed computing ideas, and doing custom builds in a sanitized environment.

Prep Work: What You Need To Do First

The content of this repo assumes you have done several things:

  • You've got docker already running on your machine
  • You've made docker access available to your own login
  • You've got ansible installed on your machine

Quickstart For The Impatient

Here's the 10,000 foot view of what you'll have to do once the Prep Work above is done:

  • Configuring sandbox hostname resolution
  • Build a docker image from a dockerfile
  • Use ansible to configure and start a docker network
  • Use ansible to start your sandboxes
  • Login to your running sandboxes

Configuring Sandbox Hostname Resolution

Various parts of this repo assume that there are (up to) 10 running sandboxes whose names are docksand1 through docksand10. For this to work, you have to configure name resolution to properly associate these names with their equivant IP addresses.

Most likely, you don't have control of your DNS configuration. The easy way around this is to add the entries you find in dockerfiles/common/etc/dockersand.hosts to your own /etc/hosts file.

Building The docker Image

Start The docker Network

Create The docker Sandboxes

Logging In

These sandboxes are setup so you can login from your host machine into the running sandboxes using ssh keys. You will find the keys under dockerfiles/common/.ssh/. There is also an ssh configuration stanza you can add to your own ~/.ssh/config to get your client to use the proper key.

However, it is also possible to login using name (test) and password (test).

Once you are logged in, you can promote yourself to root using the sudo command without any further password required.