{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Demo notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hello world" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Unable to find image 'alpine:latest' locally\r\n", "latest: Pulling from library/alpine\r\n", "\u001b[0B\r\n", "\u001b[0A\u001b[2K\r", "d0ca440e8637: Pulling fs layer \r", "\u001b[0B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 32.77 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 64.75 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 97.52 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 130.3 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 163.1 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 195.8 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 228.6 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 261.4 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 294.1 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 326.9 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 359.7 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 392.4 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 425.2 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 458 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 490.7 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 523.5 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 556.3 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 589 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 621.8 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 654.6 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 687.3 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 720.1 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 752.9 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 785.6 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 818.4 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 851.2 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 883.9 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 916.7 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 949.5 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 982.3 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.015 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.048 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.081 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.113 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.146 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.179 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.212 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.244 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.277 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.31 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.343 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.375 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.408 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.441 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.474 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.507 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.539 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.572 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.605 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.638 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.67 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.703 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.736 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.769 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.801 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.834 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.867 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.9 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.933 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.965 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 1.998 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 2.031 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 2.064 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 2.096 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 2.129 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 2.162 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 2.195 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 2.227 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 2.26 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Downloading 2.293 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Download complete \r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 32.77 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 65.54 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 98.3 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 131.1 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 163.8 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 196.6 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 229.4 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 262.1 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 294.9 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 327.7 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 360.4 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 393.2 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 426 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 458.8 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 491.5 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 524.3 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 557.1 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 589.8 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 622.6 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 655.4 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 688.1 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 720.9 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 753.7 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 786.4 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 819.2 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 852 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 884.7 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 917.5 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 950.3 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 983 kB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.016 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.049 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.081 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.114 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.147 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.18 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.212 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.245 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.278 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.311 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.343 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.376 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.409 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.442 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.475 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.507 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.54 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.573 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.606 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.638 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.671 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.704 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.737 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.769 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.802 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.835 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.868 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.901 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.933 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.966 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 1.999 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 2.032 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 2.064 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 2.097 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 2.13 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 2.163 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 2.195 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 2.228 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 2.261 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 2.294 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 2.32 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Extracting 2.32 MB/2.32 MB\r", "\u001b[1B\u001b[1A\u001b[2K\r", "d0ca440e8637: Pull complete \r", "\u001b[1BDigest: sha256:f655166f57d91bdfc8b3bc75a20391b7516de9f48ca761249c185fcb022124d2\r\n", "Status: Downloaded newer image for alpine:latest\r\n", "Hello, World\r\n" ] } ], "source": [ "docker run alpine /bin/echo \"Hello, World\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Interactive session (run in a terminal)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [] } ], "source": [ "# docker run -i -t alpine /bin/sh" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basic container managment" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "17c54c71114dbe461d83bdb4b98d862aea878de4a82d9571db2f304aac9f7059\r\n" ] } ], "source": [ "docker run --name \"hello_world\" -d alpine /bin/sh -c \"while true; do echo hello world; sleep 1; done\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### List all containers (formatted)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ID:d39c54881653 Name:high_swanson Image:alpine cmd:\"/bin/sh -c 'while tr\" Status:Exited (137) 9 minutes ago\r\n", "ID:03b37fa08977 Name:hello_world Image:alpine cmd:\"/bin/sh -c 'while tr\" Status:Exited (137) 9 minutes ago\r\n" ] } ], "source": [ "docker ps -a --format \"ID:{{.ID}} Name:{{.Names}} Image:{{.Image}} cmd:{{.Command}} Status:{{.Status}}\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Delete all exited containers" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "d39c54881653\r\n" ] } ], "source": [ "docker rm \"$(docker ps --filter status=exited --format \"{{.ID}}\")\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### View `hello_world` logs" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "hello world\r\n", "hello world\r\n", "hello world\r\n", "hello world\r\n", "hello world\r\n" ] } ], "source": [ "docker logs hello_world | tail -5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Building containers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Build Up1-Docker" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# docker build -t fcremo/up1 ." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Run it" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "docker run -e \"API_KEY=random1\" -e \"DELETE_KEY=random2\" \\\n", "--name up1 -p 8080:9000 -v /path/to/local/storage/:/srv/Up1/i/ fcremo/up1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Connecting containers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a new network" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "docker network create mattermost-net" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Start postgres" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "docker run --name mattermost-postgres --net mattermost-net -d \\\n", " --env 'POSTGRES_USER=mattermost' --env 'POSTGRES_PASSWORD=password' \\\n", " --volume /tmp/postgres:/var/lib/postgresql postgres" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Inspect the container to verify it's connected" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1;39m{\r\n", " \u001b[0m\u001b[34;1m\"mattermost-net\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;39m{\r\n", " \u001b[0m\u001b[34;1m\"IPAMConfig\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;30mnull\u001b[0m\u001b[1;39m,\r\n", " \u001b[0m\u001b[34;1m\"Links\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;30mnull\u001b[0m\u001b[1;39m,\r\n", " \u001b[0m\u001b[34;1m\"Aliases\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;30mnull\u001b[0m\u001b[1;39m,\r\n", " \u001b[0m\u001b[34;1m\"NetworkID\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"bce5d2ea5817333cdd4f6889e42891457daf72e42fb6aeacf0450ada5d52bf69\"\u001b[0m\u001b[1;39m,\r\n", " \u001b[0m\u001b[34;1m\"EndpointID\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"64d66a6e972f9ecf650fb6254e87924672a49dfa49477b59d7d901707618a87a\"\u001b[0m\u001b[1;39m,\r\n", " \u001b[0m\u001b[34;1m\"Gateway\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"172.18.0.1\"\u001b[0m\u001b[1;39m,\r\n", " \u001b[0m\u001b[34;1m\"IPAddress\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"172.18.0.2\"\u001b[0m\u001b[1;39m,\r\n", " \u001b[0m\u001b[34;1m\"IPPrefixLen\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;39m16\u001b[0m\u001b[1;39m,\r\n", " \u001b[0m\u001b[34;1m\"IPv6Gateway\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"\"\u001b[0m\u001b[1;39m,\r\n", " \u001b[0m\u001b[34;1m\"GlobalIPv6Address\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"\"\u001b[0m\u001b[1;39m,\r\n", " \u001b[0m\u001b[34;1m\"GlobalIPv6PrefixLen\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;39m0\u001b[0m\u001b[1;39m,\r\n", " \u001b[0m\u001b[34;1m\"MacAddress\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"02:42:ac:12:00:02\"\u001b[0m\u001b[1;39m\r\n", " \u001b[1;39m}\u001b[0m\u001b[1;39m\r\n", "\u001b[1;39m}\u001b[0m\r\n" ] } ], "source": [ "docker inspect mattermost-postgres | jq \".[].NetworkSettings.Networks\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "See if the container is reachable" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PING mattermost-postgres (172.18.0.2): 56 data bytes\r\n", "64 bytes from 172.18.0.2: seq=0 ttl=64 time=0.083 ms\r\n", "64 bytes from 172.18.0.2: seq=1 ttl=64 time=0.073 ms\r\n", "64 bytes from 172.18.0.2: seq=2 ttl=64 time=0.074 ms\r\n", "\r\n", "--- mattermost-postgres ping statistics ---\r\n", "3 packets transmitted, 3 packets received, 0% packet loss\r\n", "round-trip min/avg/max = 0.073/0.076/0.083 ms\r\n" ] } ], "source": [ "docker run --rm --net mattermost-net alpine /bin/ping -c 3 mattermost-postgres" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Start mattermost" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "docker run --name mattermost -d --net mattermost-net \\\n", " --volume /tmp/mattermost:/opt/mattermost/data --publish 8080:80 \\\n", " --env 'DB_ADAPTER=postgres' --env 'DB_HOST=mattermost-postgres' \\\n", " --env 'DB_USER=mattermost' --env 'DB_PASS=password' \\\n", " jasl8r/mattermost" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Mattermost with docker-compose" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get docker-compose.yml" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "wget \"https://raw.githubusercontent.com/jasl8r/docker-mattermost/master/docker-compose.yml\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "docker-compose up" ] } ], "metadata": { "kernelspec": { "display_name": "Bash", "language": "bash", "name": "bash" }, "language_info": { "codemirror_mode": "shell", "file_extension": ".sh", "mimetype": "text/x-sh", "name": "bash" } }, "nbformat": 4, "nbformat_minor": 0 }