BlitzinBuffalo
10/4/2017 - 9:02 AM

docker

docker bible

Docker Bible

Install

curl -sSL https://get.docker.com/ | sh

Add current user to docker group

sudo usermod -aG docker <username>

Fixes


Ubuntu

vi /etc/default/grub

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1" # add or edit `GRUB_CMDLINE_LINUX` line
sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1/g' /etc/default/grub
update-grub
systemctl reboot

DNS woes

cat <<EOD > /etc/docker/daemon.json
{
    "dns": ["<ip1>", "<ip2>],
    "dns-search": ["<domain>"]
}
EOD
systemctl restart docker

Ubuntu 18**

sudo rm /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Docker Toolbox

To fix vm.max_map_count usually associated with Elasticsearch

docker-machine ssh

sudo sysctl -w vm.max_map_count=262144

OR for permanence

docker-machine ssh

sudo vi //var/lib/boot2docker/profile

# add the following line to it
sysctl -w vm.max_map_count=262144

Commands


Docker

Login to secured repo

docker login -u <username> -p <password> registry.gitlab.com

Stop all containers

docker stop $(docker ps -a -q)

Delete all containers

docker rm -f $(docker ps -a -q)

Restart all containers

docker restart $(docker ps -a -q)

Make already running container auto restart

docker update --restart=always awx_task

Delete all untagged images

docker rmi $(docker images | grep '^<none>' | awk '{print $3}')

See how much space Docker is using

docker system df

Copy file to container

docker cp crm-data.dump postgres:/crm-data.dump

Migrate already running container to new

docker rename rancher rancher-1
docker create --volumes-from rancher-1 -p 80:80 -p 443:443 -v /rancher:/var/lib/rancher --name rancher rancher/rancher
docker rm -f rancher-1
docker start rancher
docker rename casasndra cassandra-1
docker create --volumes-from cassandra-1 -p 9042:9042 --name cassandra cassandra
docker rm -f cassandra-1
docker start cassandra

Docker Compose

Start containers

docker-compose up

Pull all containers images

docker-compose pull

Drop containers and remove images

docker-compose down --rmi all

Rancher OS


sudo rm -fr /etc/kubernetes/ /var/lib/etcd/ /etc/cni/ /opt/cni/ /var/run/calico/

sudo ros install -c cloud-config.yml -d /dev/sda --append "rancheros.autologin=tty1"

sudo ros config merge -i cloud-init.yml

Containers


Docker Registry

sudo docker run -d -p 5000:5000 --restart=always --name registry registry:2

Rancher

sudo docker run -d --name rancher-server --restart=unless-stopped -p 8080:8080 rancher/server --db-host <FQDN> --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle

sudo docker run -d --name rancher-server --restart=unless-stopped -p 8080:8080 rancher/server --db-host <IP>
sudo docker run -d --restart=unless-stopped \
                -p 80:80 -p 443:443 \
                --name rancher \
                rancher/rancher:stable

sudo docker run -d --restart=unless-stopped \
                -p 80:80 -p 443:443 \
                -v /rancher:/var/lib/rancher \
                --name rancher \
                rancher/rancher:stable

ELK Stack

sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -v elk-data:/var/lib/elasticsearch --name elk-stack --restart=unless-stopped sebp/elk

Redis

sudo docker run -d --name redis -v redis -p 6379:6379 --restart=unless-stopped redis

Odoo

docker run -d --name odoo-church -v /c/docker/odoo/church:/mnt/extra-addons --link postgres:postgres -p 9069:8069 --restart=unless-stopped odoo:10.0

Postgres

sudo docker run -d --name postgres -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=1 -v postgres -p 5432:5432 --restart=unless-stopped postgres:alpine
sudo docker run -d --name pipelinedb -v pipelinedb:/mnt/pipelinedb -p 7432:5432 --restart=unless-stopped pipelinedb/pipelinedb

RabbitMQ

docker run -d --name rabbitmq --hostname localhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin123 -p 15672:15672 -p 5672:5672 --restart=unless-stopped rabbitmq:3-management

Orient DB

docker run -d --name orientdb -p 2424:2424 -p 2480:2480 -e ORIENTDB_ROOT_PASSWORD=petr@dmin orientdb
docker run -d --name orientdb -p 2424:2424 -p 2480:2480 -e ORIENTDB_ROOT_PASSWORD=admin123 orientdb

Prometheus

helm install stable/prometheus --name prometheus --set server.service.servicePort=8080 --set kubeStateMetrics.service.servicePort=8080 --set alertmanager.service.servicePort=8080

Sentry

docker run -d --name Sentry-redis-1 redis:3.2-alpine
docker run -d --name Sentry-postgres-1 --env POSTGRES_USER=sentry --env POSTGRES_PASSWORD=secret postgres:9.5
docker run -d --name Sentry-smtp-1 tianon/exim4
docker run --rm sentry:8.17 config generate-secret-key
docker run -d --name Sentry-web-1 -p 5000:9000 -v sentry-web:/var/lib/sentry/files --env SENTRY_SECRET_KEY=@5cm5^8+q_%d16l5%hmu5qglfbtg1&%h=5i!fwlcv+r-2vn9qa sentry:8.17
sentry upgrade
sentry createuser
sentry run web
docker run -d --name Sentry-worker-1 sentry:8.17 run worker
docker run -d --name Sentry-cron-1 sentry:8.17 run cron
4)02c7zoaj!v2=39llb&l_ej6&p0+gb77lfqjo*7j-fprae_^7

Minio

docker run -d --restart=unless-stopped -e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" -e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" -p 9000:9000 --name minio -v //d/vms/minio/data://data -v //d/vms/minio/config://root/.minio  minio/minio server /data

Zipkin

docker run -d \
  -p 9411:9411 \
  -e "STORAGE_TYPE=cassandra" \
  -e "STORAGE_PORT_9042_TCP_ADDR=cassandra-dev-0.techno.local,cassandra-dev-1.techno.local,cassandra-dev-2.techno.local" \
  openzipkin/zipkin

Cassandra

docker run -d --restart=unless-stopped -p 9042:9042 --name cassandra cassandra
docker run -d --restart=unless-stopped -p 9042:9042 -e MAX_HEAP_SIZE=512M -e HEAP_NEWSIZE=100M --name cassandra cassandra

Jenkins

sudo docker run \
    -u root \
    --rm \
    -d \
    -p 8080:8080 \
    -p 50000:50000 \
    -v jenkins-data:/var/jenkins_home \
    -v /var/run/docker.sock:/var/run/docker.sock \
    --name jenkins \
    jenkinsci/blueocean

Kong API Gateway

docker run -d --name kong-database \
            -e "POSTGRES_USER=kong" \
            -e "POSTGRES_PASSWORD=kong" \
            postgres
docker run --rm \
     --link postgres:kong-database \
     -e "KONG_PG_HOST=kong-database" \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong" \
     -e "KONG_PG_PASSWORD=kong" \
     kong:latest kong migrations bootstrap
docker run -d --restart=unless-stopped --name kong \
    --link postgres:kong-database \
    -e "KONG_DATABASE=postgres" \
    -e "KONG_PG_HOST=kong-database" \
    -e "KONG_PG_USER=kong" \
    -e "KONG_PG_PASSWORD=kong" \
    -e "KONG_PG_DATABASE=kong" \
    -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
    -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
    -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
    -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
    -e "KONG_ADMIN_LISTEN=0.0.0.0:8001" \
    -e "KONG_ADMIN_LISTEN_SSL=0.0.0.0:8444" \
    -p 8000:8000 \
    -p 8443:8443 \
    -p 8001:8001 \
    -p 8444:8444 \
    kong

kong dashboard 1

docker run -d --restart=unless-stopped -p 80:8080 --name kong \
  pgbi/kong-dashboard start \
  --kong-url http://<IP>:8001 \
  --basic-auth <username>=<password>

kong dashboard 2 (konga)

docker run --rm --link postgres:postgres pantsel/konga:next -c prepare -a postgres -u postgresql://kong:kong@postgres:5432/kong-dashboard
docker run -d --restart=unless-stopped -p 1337:1337 \
    --link postgres:postgres \
    -e "TOKEN_SECRET=locality" \
    -e "DB_ADAPTER=postgres" \
    -e "DB_URI=postgresql://kong:kong@postgres:5432/kong-dashboard" \
    -e "NODE_ENV=production" \
    --name kong-dashboard \
    pantsel/konga

Ejabberd

docker run -d \
    --restart=unless-stopped
    --name ejabberd \
    -p 5222:5222 \
    -p 5269:5269 \
    -p 5280:5280 \
    -h 'docker' \
    -e "XMPP_DOMAIN=docker" \
    -e "EJABBERD_ADMINS=admin@docker" \
    -e "EJABBERD_USERS=admin@docker:admin123" \
    -e "TZ=Africa/Accra" \
    rroemhild/ejabberd

MongoDB

docker run -d \
        --restart=unless-stopped \
        --name mongo \
        -e MONGO_INITDB_ROOT_USERNAME=admin \
        -e MONGO_INITDB_ROOT_PASSWORD=admin123 \
        -p 27017:27017 \
        mongo

SQL Server

docker run -d --name=sql-server \
              --restart=unless-stopped \
              -e 'ACCEPT_EULA=Y' \
              -e 'SA_PASSWORD=@Administrator123' \
              -e 'MSSQL_PID=Express' \
              -p 1433:1433 \
              -v sql-server \
              microsoft/mssql-server-linux

Elassandra

docker run -d --name elassandra \
              --restart=unless-stopped \
              -p 9042:9042 \
              -p 9200:9200 \
              -p 9300:9300 \
              -v elassandra:/var/lib/cassandra \
              strapdata/elassandra
docker run -d --name elassandra-kibana \
               --link elassandra:elassandra \
               -e 'ELASTICSEARCH_HOSTS=http://elassandra:9200' \
               -p 5601:5601 \
               docker.elastic.co/kibana/kibana:6.6.0

SonarQube

docker run -d \
    --restart=unless-stopped \
    --name sonarqube-database \
    -e 'POSTGRES_USER=sonar' \
    -e 'POSTGRES_PASSWORD=sonar' \
    -v sonarqube-database \
    postgres:10
docker run -d \
    --restart=unless-stopped \
    --link sonarqube-database:postgres \
    --name sonarqube \
    -e 'sonar.jdbc.username=sonar' \
    -e 'sonar.jdbc.password=sonar' \
    -e 'sonar.jdbc.url=jdbc:postgresql://postgres/sonar' \
    -p 9000:9000 \
    -v sonarqube \
    sonarqube