Docker: мне нужен «личный» IP-адрес для контейнеров

Вы можете увидеть foo , отображаемый до бара , после стержень или даже после подсказки, в зависимости от времени. Добавьте немного задержки, чтобы получить последовательное время:

$ echo foo > >(sleep 1; cat); echo bar; sleep 2 
bar
foo
$

PAR появляется немедленно, затем FOO через секунду, затем следующая подсказка через еще одна секунда.

Что происходит, так это то, что Bash выполняет замены процесса на заднем плане.

  1. Основной процесс Bash начинает подпульдую для выполнения Сон 1; Cat и устанавливает трубку к ней.
  2. Основной процесс Bash выполняет Echo Foo . Поскольку это не заполняет буфер трубы, команда ECHO завершается без блокировки.
  3. Основной процесс Bash выполняет эхо-бар .
  4. Основной процесс Bash запускает команду Сон 2 .
  5. Между тем, подполюс запускает команду Сон 1 .
  6. Через около 1 секунды сон 1 возвращается в подпроцесс. Подпрокат продолжает выполнять CAT .
  7. CAT копирует свой вход на свой выход (который отображается на экране) и возвращает.
  8. Подборщик закончил свою работу, он выходит.
  9. Через еще одна секунда Сон 2 Возвращает. Основной процесс оболочки завершается выполнением, и вы можете увидеть следующую подсказку.
0
25.10.2015, 18:27
1 ответ

Решение найдено здесь

, предполагающее использовать 10.1.1.133/24 и 10.1.1.1 в качестве шлюза

на хосте, который я использовал

ip addr del 10.1.1.133/24 dev eth0
ip link add link eth0 dev eth0m type macvlan mode bridge
ip link set eth0m up
ip addr add 10.1.1.133/24 dev eth0m
route add default gw 10.1.1.1

В контейнере, который я использовал

CID=$(docker run -d ...)
pipework eth0 $CID 10.1.1.133/24@10.1.1.1
0
28.01.2020, 04:56

Теги

Похожие вопросы