Как указать имя хоста для рабочего контейнера?

Одна опция состоит в том, чтобы использовать webdav. IIS поддерживает webdav. Так как Вам нужна система, чтобы быть безопасными, Вы, очевидно, захотите установить SSL.

Webdav обычно будет открытым через большинство брандмауэров и будет работать через стандартного прокси HTTP. Большинство других предложенных опций имеет тенденцию быть более трудным пройти через брандмауэры, которыми Вы не управляете.

OSX и Windows имеют собственные webdav клиенты. Linux может использовать webdav через fusedav.

Webdav, вероятно, будет несколько легче для Вас пользователи, но он совершает поступок, несколько изворотливый при случае.

52
задан 15 February 2019 в 01:21
7 ответов

Правка / etc / hostname - это то, для чего вам нужен доступ по ssh внутри контейнера. В противном случае вы можете развернуть контейнер с помощью параметра -h .

Чтобы установить имя хоста и домена:

$ docker run -h foo.bar.baz -i -t ubuntu bash
root@foo:/# hostname
foo
root@foo:/# hostname -d
bar.baz
root@foo:/# hostname -f
foo.bar.baz
49
ответ дан 28 November 2019 в 19:36

Как немногие другие указали, это может быть изменено для контейнеров путем изменения config.v2.json файл.

Просто быть уверенными услуги Докера останавливаются, прежде чем файл редактируется, еще это будет ПЕРЕЗАПИСАНО. Шаги ДОЛЖНЫ быть сделаны в этом порядке

  • Остановка Контейнер
  • Остановка, которую услуги Докера
  • Изменяют - /var/lib/docker/containers/CONTAINER_ID/config.v2.json - Запуск файла

  • , услуги Докера

  • Запускают контейнер

, Это было подтверждено, работая на меня на Докере v17.05.0-ce на контейнере с помощью --net=host. При изменении /etc/hostname не работает файл, и файл просто перезаписывается.

0
ответ дан 28 November 2019 в 19:36

Самый простой вариант - перезапустить контейнер, но вы также можете отредактировать / etc / hostname и перейти оттуда.

4
ответ дан 28 November 2019 в 19:36

Остановить контейнер и службу

sudo docker stop CONTAINER_NAME
sudo service docker stop

Изменить файл конфигурации (JSON)[Сначала необходимо сделать резервную копию]

/var/lib/docker/containers/CONTAINER_ID/config.json

Замените

«Имя хоста»: «WHATEVER»

на

«Имя хоста»: » NEW_HOSTNAME "

Запустить контейнер и службу

sudo service docker start
sudo docker start CONTAINER_NAME

(Вы также можете подключить докер)

sudo docker attach CONTAINER_NAME

Подробную информацию о докерах (например, CONTAINER_NAME, CONTAINER_ID) можно получить, запустив

sudo docker ps -a
6
ответ дан 28 November 2019 в 19:36

В

 /var/lib/docker/containers/CONTAINER/config.json

найдите и установите

"Config":{"Hostname":"utils","Domainname":"mysite.com", ...}
-3
ответ дан 28 November 2019 в 19:36

Если вы используете - net = host , тогда вы не сможете изменить имя хоста с -h или из докера.

См. https://github.com/docker/docker/issues/5708

4
ответ дан 28 November 2019 в 19:36

https://evolvingweb.ca/blog/changing-docker-hostnames-namespaces описывает, как это сделать. Основная идея заключается в том, чтобы использовать docker inspect для получения пида контейнера, затем ввести uts пространство имён контейнера через nsenter. Запуск имени хоста внутри этого пространства имен изменит имя хоста для экземпляра докера, который разделяет это пространство имен.

.
1
ответ дан 28 November 2019 в 19:36

Теги

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