Перейти к основному содержимому

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

AltStyle によって変換されたページ (->オリジナル) /