У меня есть список контейнеров, имена которых выглядят следующим образом:
контейнер 1: myApp_ихм.dfgdfgdfgdfvdfdfbvdfvdfv
контейнер 2: myApp_back.uirthjhiliszfhjuioomlui ...
контейнер 3: myApp_database.piyrjfhjyukyujfkgft
Мне нужно выполнить некоторую строку в контейнере, где имя содержит ихм (первая в моем примере)
Чтобы выполнять свои команды, я привык делать:
docker exec -it ihm bash
поэтому ihm
следует заменить некоторым тестом, чтобы получить первое имя:
myApp_ihm.dfgdfgdfgdfvdfdfbvdfvdfv
Предложения?
docker exec -it $(docker ps | grep myApp_ihm | awk '{print $1}') /bin/bash
docker exec -it $(docker ps --format "{{.Names}}" | grep "ihm") bash
Это сработало для меня, добавило это в сценарий bash и сэкономило 30-60 секунд ввода / копирования и вставки каждый раз, когда я хочу войти в свой контейнер.
docker exec -it $(docker ps --format "{{.ID}} {{.Command}}" | grep /home/app/ | awk '{print $1}') /bin/bash
Вы также можете использовать это: docker exec -it $ (docker ps --format '{{.Names}}' | grep prestashop_boutique | awk '{print $ 1}') / bin / bash Тот же результат, но он использует имя контейнера, а не ID контейнера