Тази статия ще разясни какво означава „ –net=хост ” прави в командата Docker.
Какво прави опцията „–net=host“ в командата Docker?
„ – мрежа ” опция в „ докер изпълнение ” командата се използва за указване на мрежата за контейнера на Docker. По подразбиране контейнерите работят в мостовата мрежа. Както и да е ' –net=хост ” може да се използва за изпълнение на контейнера в хост мрежата. Това дава на Docker контейнера повече достъп до мрежата, отколкото обикновено.
Как да изпълним командата „docker run“ със и без опцията „–net=host“?
За да проверите разликата между контейнерите, работещи в мрежата по подразбиране и хост мрежата, вижте изброените примери:
- Използвай ' докер изпълнение ' Команда без ' – net-хост ” Опция.
- Използвай ' докер изпълнение ” Команда с „ – net-хост ” Опция.
Как да използвате командата „docker run“ без опцията „–net-host“?
По подразбиране платформата Docker предоставя три мрежи: „ мост ”, “ домакин ', и ' нито един ”. За да изброите всички мрежи, вижте примера по-долу:
> докер мрежа ls
Когато контейнерът се изпълни, без да се посочи мрежа, по подразбиране той ще използва мостова мрежа. За демонстрацията вижте стъпките по-долу.
Стъпка 1: Направете Docker файл
Направете Dockerfile, за да контейнеризирате „ golang ” и поставете дадените инструкции във файла:
ОТ golang: 1.8
WORKDIR / отивам / src / ап
КОПИРАНЕ main.go .
БЯГАЙТЕ, отидете да строите -О уеб сървър .
ИЗЛОЖИ 8080 : 8080
CMD [ './уеб сървър' ]
Стъпка 2: Създайте изображение на Docker
След това генерирайте изображението от Dockerfile с помощта на предоставената команда. „ -T ” в командата по-долу указва името на изображението:
> изграждане на докер -T go-img .
Стъпка 3: Изпълнете Docker контейнера
Използвайте „ докер изпълнение ”, за да стартирате контейнера в избраната по подразбиране мрежа. „ -д ” опцията изпълнява контейнера в отделен режим:
> докер изпълнение -д go-img
Сега избройте контейнера и проверете дали контейнерът се изпълнява в мрежата по подразбиране или не:
> докер пс -аАко изходът показва някакъв излагащ се порт като „ tcp/<порт> ” това означава, че контейнерът работи в някаква мрежа по подразбиране и ако няма изход в „ пристанища ' колона или изход като ' 0.0.0.0:8080→8080/tcp ” означава, че контейнерът се изпълнява на хост:
От горния резултат можете да видите, че нашият контейнер се изпълнява в избраната по подразбиране мрежа ' мост ”.
Как да използвате командата „docker run“ с опцията „–net-host“?
За да изпълните контейнера в хост мрежата, използвайте „ –net=хост ”, както е показано по-долу:
> докер изпълнение -д --net =домакин go-img
За проверка избройте всички контейнери. Тук не се показва резултат в „ пристанища ”, което означава, че нашият контейнер се обработва в хост мрежата и може да бъде достъпен от всеки порт на хост мрежата:
> докер пс -а
Това е всичко за това, което „ –net=хост ” и как да го използвате в Docker.
Заключение
„ –net=хост ” опцията се използва за изпълнение на Docker контейнера в хост мрежата. Ако тази опция не е посочена в „ докер изпълнение ”, неговият среден контейнер ще се изпълни в мостовата мрежа. За да стартирате контейнера на хоста, използвайте „ docker run –net=option