Docker — разное#

Полезные ссылки#

Установка docker#

Для CentOS 8:

dnf config-manager \
    --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
dnf install docker-ce

Для других версий:

vim /etc/yum.repos.d/docker.repo

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/8/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

yum install docker-ce docker-ce-cli containerd.io

В конце обязательно включить автозапуск сервиса:

systemctl enable --now docker

Установка docker-compose#

Из репозитория докера (плагин для докера):

dnf install docker-compose-plugin
vim ~/.bashrc

# Добавим в .bashrc alias для вызова docker-compose
# ниже приведённого комментария
#
# User specific aliases and functions
alias docker-compose='/usr/libexec/docker/cli-plugins/docker-compose'

Классический docker-compose:

curl -L \
    "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" \
    -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Установка ctop#

curl -L -o /usr/local/bin/ctop \ 
    https://github.com/bcicen/ctop/releases/download/v0.7.5/ctop-0.7.5-linux-amd64
chmod +x /usr/local/bin/ctop
ln -s /usr/local/bin/ctop /bin/ctop

Создание пользователя для Docker#

useradd --create-home --base-dir /opt --shell /sbin/nologin \
    --groups docker docker_user --comment docker_user

Docker networking#

Создание сети overlay#

docker network create \
    --driver=overlay --subnet=10.11.0.0/16 \
    --gateway=10.11.0.2 --attachable \
    app-net

Смена адресов ingress#

docker login в Harbor#

Команда для логина в registry (Harbor) с использованием файла с токеном:

cat .harbor_token | docker login \
    --username robot\$prod --password-stdin \
    registry.appworks.ru

Docker registry (не Harbor)#

Команда для запуска:

docker run -d \
    -p 5000:5000 \
    --restart=always \
    --name registry \
    -v /srv/registry/cert/:/certs \
    -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 \
    -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \
    -e REGISTRY_HTTP_TLS_KEY=/certs/registry.key \
    registry:2

Дамп логов#

Удобная команда для дампа логов службы сворма в текстовый файл:

MY_NAME=postcards2020_worker; \
MY_TIME=20m; \
sudo docker service logs --since ${MY_TIME} \
${MY_NAME} > ${MY_NAME}_`date +%F_%H-%M-%S`_${MY_TIME}.log 2>&1 \
### dump_logs
MY_NAME

имя службы

MY_TIME

с какого момента нужны логи:

  • можно относительное: 5m == с 5 минут назад и до текущего момента;

  • можно абсолютное: 2021-08-21T13:00:00

Сначала задаём файл для вывода, затем 2>&1 – перенаправляем stderr в текущее значение stdout, то есть в заданный ранее файл. Порядок важен, наоборот не сработает!

### dump_logs

комментарий в конце позволит легко найти команду в bash history для повторного использования.

Исправление проблемы ядра 240 - отключение tx-checksum#

Note

Вероятнее всего, данная проблема была специфична для виртуальных машин VMWare.

nmcli con modify ens192 \
    ethtool.feature-tx-checksum-ip-generic off && \
nmcli con up ens192

Такой вариант (через nmcli) — сохраняется после перезагрузок. Обычный ethtool — не сохраняется, нужно добавлять в init скрипты.


Проверить текущее состояние:

ethtool -k ens192 | grep tx-checksum