2015-12-27 3 views
1

У меня есть докер, работающий на хосте. На этом хосте есть два контейнера-докера: контейнер_1 и container_2. Теперь я хочу выполнить некоторые команды на container_1 с моей машины с удаленным dev.Выполнение команды на контейнере докера с удаленной машины

команды труб отделена т.е.,

sudo docker exec -it container_1 sudo find <dir> - type f -iname *_abc_* -print0 | du --files0-from - -b | awk 'BEGIN{sum=0} {sum+=$1} END{print sum}' 

Форма команды выше только первая команда до первой трубы выполнить на DOCKER контейнер и следующий набор команды выполнить на хосте.

Я использую api python для выполнения этого с удаленной машины.

Есть ли способ выполнить эту полную команду на контейнере с удаленной машины?

+1

это потому, что команда трубы на самом деле исполняются на хосте, попробуйте это, он может работать для вас: 'sudo docker exec -it container_1 bash -c" sudo find - type f -iname _abc_ -print0 | du -files0-from -bb_ awk 'BEGIN {sum = 0} {sum + = $ 1} END {print sum} '' ' – Boynux

+0

@Boynux, он работает для меня. Спасибо. –

+0

Я создам для этого ответ, было бы здорово, если бы вы пометили правильный ответ. – Boynux

ответ

3

Это потому, что команда трубы на самом деле исполняются на хосте, попробуйте это, он может работать для вас:

sudo docker exec -it container_1 bash -c "sudo find - type f -iname_abc_ -print0 | du --files0-from - -b | awk 'BEGIN{sum=0} {sum+=$1} END{print sum}'"