7 лайфхаков по использованию docker для QA
Очень часто в процессе работы QA инженерам приходится иметь дело с docker. Зачастую компании используют его как в продакшене, так и в тестовой инфраструктуре. Документации по docker полно в интернете, но найти что-то именно удобное и полезное довольно сложно. Леша Анисимов, Head of QA в FUNCORP, собрал для вас небольшую подборку лайфаков по работе с docker.
1. Перезапустить контейнер с другими параметрами
Есть такая утилита runlike - https://github.com/lavie/runlike/
Запустив runlike -p <имя_контейнера>, вы получите готовую команду для запуска с теми же параметрами, которые были использованы изначально.
Например, для какого-то тестового сервиса команда и вывод может выглядеть следующим образом:
runlike -p testservice вернет
docker run \
--name=testservice \
--user=test \
-p 8015:8080 \
--restart=always \
--detach=true \
myrepo/testservice:master-1374
2. Выполнить bash-скрипт внутри контейнера
cat local_script.sh | docker exec <container_name> /bin/bash
3. Перезапустить/удалить все docker контейнеры
docker stop $(docker ps -a -q) или docker restart $(docker ps -a -q)
4. Очистить старые images, контейнеры и volumes
docker system prune --all --volumes
5. Вывести в docker ps только нужную в данный момент информацию — например, имя контейнера, его статус и образ
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Image}}"
6. Сохранить и восстановить контейнер
docker commit -p <CONTAINER_ID> <YOUR_BACKUP_NAME>
docker save -o <CONTAINER_FILE>.tar <YOUR_BACKUP_NAME>
docker load -i <CONTAINER_FILE>.tar
7. Сократить разные команды до алиасов и потом использовать короткие версии, например:
dexec() { docker exec -i -t $@ /bin/bash ;}
dlogs() { docker logs --tail=all -f $@ ;}
dip() { docker inspect --format '{{ .NetworkSettings.IPAddress }}' $@ ;}
Надеемся, эти команды помогут вам ускорить работу с docker :)
Если развиваетесь в автоматизации тестирования или имеете опыт управления QA командой, то обратите внимание на две вакансии в команду Леши:
Lead QA Backend
Software Development Engineer in Test
Post #3034
13.5K