Docker
Зеркало docker hub если есть ограничения или проблемы с доступом
mirror.gcr.io/traefik:3.5.0
Commands
Частые команды
Fast install docker
apt update &&apt upgrade -y&&aptinstallcurl
curl-fsSL https://get.docker.com -o get-docker.sh
sudosh get-docker.sh
Docker run exec or have entry point use: --entry-point=/bin/bash
docker run --rm-it image-name sh
Build args
docker build .-t myimage --build-arg USER=$USER --build-arg PASSWORD=$PASSWORD
Docker run rm exec
docker run --rm-it tg_webhook_exporter bash
Docker overlay who use (need install jq)
docker inspect $(dockerps-qa)| jq -r'map([.Name, .GraphDriver.Data.MergedDir]) | .[] | "\(.[0])\t\(.[1])"'
Docker image size
dockerps--format'{{.Names}}\n{{.Image}}:{{.Size}}\n'-s
Docker cp
dockercp<containerId>:/file/path/within/container /host/path/target
Retag for own registory
Скачать необходимый image docker pull
docker pull nginx:1.23.1
Изменить tag
docker tag nginx:1.23.1 registry.gitlab.example.com/test/nginx:1.23.1
Push в свой registry
docker push registry.gitlab.example.com/test/nginx:1.23.1
Docker compose dump run
Запуск тупой команды чтоб контейнер не падал, иногда бывает нужно для дебага
services:
chatops:
image: registry.gitlab.example.com/test/myubuntu-image:v.0.1
command: tail -F /dev/null
Docker context remote
Создание контекста для удаленного сервера
docker context create vps --docker"host=ssh://me@example.com"
docker context use vps
Logging
Пример конфигурации
version:'3.8'
x-logging:
&default-logging
driver:"json-file"
options:
max-size:"1m"
max-file:"1"
tag:"{{.Name}}"
services:
nginx-app:
container_name: nginx-app
image: nginx
labels:
logging:"promtail"
logging_jobname:"containerlogs"
ports:
- 8080:80
networks:
- app
logging:*default-logging
Docker плагин логирования
Установка драйвера логирования loki
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all
Пример конфигурации docker-compose с логированием в loki
services:
myservice:
image: myimage
logging:
driver: loki
options:
loki-url:"http://loki:3100/loki/api/v1/push"
loki-external-labels: job=dockerlogs