Docker tips and tricks

From Lolly's Wiki
Jump to navigationJump to search

Using docker behind a proxy

# systemctl edit docker.service

Enter the next three lines and save:

[Service]
Environment="HTTP_PROXY=user:pass@proxy:port"
Environment="HTTPS_PROXY=user:pass@proxy:port"

Restart docker:

# systemctl restart docker.service

Some useful aliases

I put this in my ~/.bash_aliases to maintain a check_mk container:

alias omd-log='docker container logs monitoring'
alias omd-recreate-volume='docker volume create --driver local --opt type=nfs --opt o=addr=nfs.server.tld,rw --opt device=:/share monitoring'
alias omd-root='docker container exec -it $(docker ps --filter name=monitoring -q) /bin/bash'
alias omd-cmk='docker container exec -it -u omd monitoring bash'
alias omd-start='docker container run --rm -dit -p 8080:5000 --tmpfs /omd/sites/omd/tmp:uid=1000,gid=1000 --ulimit nofile=1024 -v monitoring:/omd/sites --name monitoring -e CMK_SITE_ID=omd -e MAIL_RELAY_HOST='\''smtp-gw.server.tld'\'' -v /etc/localtime:/etc/localtime:ro checkmk/check-mk-raw:1.6.0p12'
alias omd-stop='docker stop $(docker ps --filter name=monitoring -q)'

Setting some defaults

/etc/docker/daemon.json

{
  "insecure-registries" : ["registry.server.de:5000"],
  "data-root": "/docker-data/",
  "default-address-pools": [
    {
      "scope": "local",
      "base": "10.42.0.0/16",
      "size": 24
    }
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "2m",
    "max-file": "10"
  }
}

Or log via systemd journald:

  "log-driver": "journald",
  "log-opts": {
    "tag": "{{.Name}}"
  }