Skip to content

Instantly share code, notes, and snippets.

@etoews
Last active December 16, 2015 01:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save etoews/9b4cfdbe6f42bf860882 to your computer and use it in GitHub Desktop.
Save etoews/9b4cfdbe6f42bf860882 to your computer and use it in GitHub Desktop.
Docker Swarm on Carina demo at the The 12 Clouds of Christmas 2015 edition of the Cloud Austin meetup

Sign Up

https://getcarina.com/

Getting started with the Carina CLI

https://getcarina.com/docs/getting-started/getting-started-carina-cli/

Create cluster

time carina create --wait testcluster carina ls

Use cluster

eval $(carina env mycluster) env | grep DOCKER_

dvm use dvm ls

docker info docker ps -a

Create data volume container

docker create
--name mysql-data
--volume /var/lib/mysql
mysql:5.6

docker ps

Run MySQL

export MYSQL_ROOT_PASSWORD=root-password export MYSQL_DATABASE=guestbook export MYSQL_USER=guestbook-user export MYSQL_PASSWORD=guestbook-user-password

docker run --detach
--name mysql
--volumes-from mysql-data
--publish-all
--env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD
--env MYSQL_DATABASE=$MYSQL_DATABASE
--env MYSQL_USER=$MYSQL_USER
--env MYSQL_PASSWORD=$MYSQL_PASSWORD
mysql:5.6

docker ps

Create Little Bobby Tables

export MYSQL_HOST=$(docker port $(docker ps --quiet --latest) 3306 | cut -f 1 -d ':') export MYSQL_PORT=$(docker port $(docker ps --quiet --latest) 3306 | cut -f 2 -d ':')

docker run --rm
--env MYSQL_HOST=$MYSQL_HOST
--env MYSQL_PORT=$MYSQL_PORT
--env MYSQL_DATABASE=$MYSQL_DATABASE
--env MYSQL_USER=$MYSQL_USER
--env MYSQL_PASSWORD=$MYSQL_PASSWORD
carinamarina/guestbook-mysql
python app.py create_tables

Run Guestbook app

docker run --detach
--name guestbook
--publish 5000:5000
--env MYSQL_HOST=$MYSQL_HOST
--env MYSQL_PORT=$MYSQL_PORT
--env MYSQL_DATABASE=$MYSQL_DATABASE
--env MYSQL_USER=$MYSQL_USER
--env MYSQL_PASSWORD=$MYSQL_PASSWORD
carinamarina/guestbook-mysql

docker ps

echo http://$(docker port $(docker ps --quiet --latest) 5000)

// paste into browser

Run Dockercraft

docker run --detach -it
--name dockercraft
--publish 25565:25565
--volume /var/run/docker.sock:/var/run/docker.sock
gaetan/dockercraft

docker ps

docker port $(docker ps --quiet --latest) 25565 | cut -f 1 -d ':'

// paste into Minecraft

Clean up

docker rm -vf mysql-data mysql guestbook dockercraft carina rm testcluster

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment