AstraSerg
а, ну конечно, каждый раз нужно указывать весь список портов
AstraSerg
если у вас он очень динамичный, то можно указать - - network="host" https://docs.docker.com/engine/reference/run/#network-settings
AstraSerg
docker commit test01 test02 docker stop test01; docker run -p 8080:8080 -td test02
commit - это только коммит изменений в файловой системе. Все опции нужно указывать при каждом run
Snegoweek
хмм
Snegoweek
а ip откуда берется? если я укажу не из докер сети а из локальной (eth0), то он подхватит?
Snegoweek
ща попробуем
AstraSerg
ща попробуем
Вот это верно! :)
AstraSerg
практика - наше всё!
Snegoweek
docker network create --subnet 10.0.1.0/24 --aux-address "DefaultGatewayIPv4=10.0.1.1" --gateway=10.0.1.70 homenet apt install bridge-utils brctl addif br-c6f37d022cb9 ens18 ip a d 10.0.1.70/24 dev br-c6f37d022cb9 docker run -d --ip 10.0.1.71 --network=homenet nginx-2
Snegoweek
вот так бриджуем в локалку
AstraSerg
пуркуа бы и не спа :)
Дмитрий
Ребята, не по теме вопрос, но всё же. В чем отличие git pull --rebase от git rebase?
AstraSerg
Ребята, не по теме вопрос, но всё же. В чем отличие git pull --rebase от git rebase?
Извините, но https://www.google.com/search?q=%D0%92+%D1%87%D0%B5%D0%BC+%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B8%D0%B5+git+pull+--rebase+%D0%BE%D1%82+git+rebase&ie=utf-8&oe=utf-8&client=ubuntu&channel=fs
Дмитрий
Да гуглил, не выкупаю
Дмитрий
думал на пальцах кто объяснит
Anonymous
Результат тестирования powershell Докера на Линуксе разочаровал. Я использовал команду sudo docker run -it -v /home/slavko/leo:/leo microsoft/powershell директория с проектом leo удачно примонтировалась, но запуск batch файла проекта ничего не даёт, а в powershell windows всё хорошо. Стало быть они не совместимы :(
Roman
Всем привет! есть docker-compose.yml файл запускаю docker-compose up WARNING: Some services (elasticsearch) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use docker stack deploy to deploy to a swarm. Recreating elasticsearch-node ... done —------------- описание elasticsearch в файле docker-compose.yml elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:5.6.1 container_name: elasticsearch-node ports: - "9200:9200" - "9300:9300" volumes: - ./volumes/es:/usr/share/elasticsearch/data environment: - "discovery.type=single-node" - "xpack.security.enabled=false" - "ES_JAVA_OPTS=-Xms1g -Xmx1g" ulimits: nproc: 3000 nofile: 65536 memlock: -1 deploy: resources: limits: memory: 2g —------------- из текста предупреждения понял что не поддерживается конфигурация deploy не поддерживыается, а что использовать вместо вот поенять не могу
Roman
version: "3"
AstraSerg
version: "3"
Судя по https://docs.docker.com/compose/compose-file/ секция deploy валидна для этой версии композа
Roman
хм.. попробовал вообще удалить её мне посоветовали тоже ошибки вывались, но по эластику Recreating elasticsearch-node ... done elasticsearch-node | [2018-07-06T11:12:46,497][INFO ][o.e.n.Node ] [] initializing ... elasticsearch-node | [2018-07-06T11:12:46,520][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main] elasticsearch-node | org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: Failed to create node environment elasticsearch-node | at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | Caused by: java.lang.IllegalStateException: Failed to create node environment elasticsearch-node | at org.elasticsearch.node.Node.<init😠Node.java:268) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.node.Node.<init😠Node.java:245) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Bootstrap$5.<init😠Bootstrap.java:233) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:233) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | ... 6 more elasticsearch-node | Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes elasticsearch-node | at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84) ~[?:?] elasticsearch-node | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) ~[?:?] elasticsearch-node | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) ~[?:?] elasticsearch-node | at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384) ~[?:?] elasticsearch-node | at java.nio.file.Files.createDirectory(Files.java:674) ~[?:1.8.0_141] elasticsearch-node | at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781) ~[?:1.8.0_141] elasticsearch-node | at java.nio.file.Files.createDirectories(Files.java:767) ~[?:1.8.0_141] elasticsearch-node | at org.elasticsearch.env.NodeEnvironment.<init😠NodeEnvironment.java:221) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.node.Node.<init😠Node.java:265) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.node.Node.<init😠Node.java:245) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Bootstrap$5.<init😠Bootstrap.java:233) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:233) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | ... 6 more elasticsearch-node exited with code 1
AstraSerg
хм.. попробовал вообще удалить её мне посоветовали тоже ошибки вывались, но по эластику Recreating elasticsearch-node ... done elasticsearch-node | [2018-07-06T11:12:46,497][INFO ][o.e.n.Node ] [] initializing ... elasticsearch-node | [2018-07-06T11:12:46,520][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main] elasticsearch-node | org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: Failed to create node environment elasticsearch-node | at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | Caused by: java.lang.IllegalStateException: Failed to create node environment elasticsearch-node | at org.elasticsearch.node.Node.<init😠Node.java:268) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.node.Node.<init😠Node.java:245) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Bootstrap$5.<init😠Bootstrap.java:233) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:233) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | ... 6 more elasticsearch-node | Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes elasticsearch-node | at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84) ~[?:?] elasticsearch-node | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) ~[?:?] elasticsearch-node | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) ~[?:?] elasticsearch-node | at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384) ~[?:?] elasticsearch-node | at java.nio.file.Files.createDirectory(Files.java:674) ~[?:1.8.0_141] elasticsearch-node | at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781) ~[?:1.8.0_141] elasticsearch-node | at java.nio.file.Files.createDirectories(Files.java:767) ~[?:1.8.0_141] elasticsearch-node | at org.elasticsearch.env.NodeEnvironment.<init😠NodeEnvironment.java:221) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.node.Node.<init😠Node.java:265) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.node.Node.<init😠Node.java:245) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Bootstrap$5.<init😠Bootstrap.java:233) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:233) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) ~[elasticsearch-5.6.1.jar:5.6.1] elasticsearch-node | ... 6 more elasticsearch-node exited with code 1
Ну так это джавайский стак трейс, он не имеет отношения к докеру
Roman
да думаю так и есть
Nikolay
Привет. Пробую сделать docker-compose + consul + registrator для веб-риложения. Consul на хостовой системе, Registrator с internal=false. Столкнулся с проблемой, что когда контейнер рестартует с другим портом (docker-compose down docker-compose up -d или неожиданное завершение compose), в consul-e остаётся старый сервис со старым портом, которого уже нет. Что может быть не так или это нормально? Всё крайних версий.
AstraSerg
Добрый вечер. А что в логах регистратора? docker logs registrator
Anonymous
как можно почистить логи контейнера?
Vasiliy
Если ты про json файл в rootfs, то просто cat /dev/null
Vasiliy
про выдачу docker logs ...
Да, найди контейнер по id, найди его rootfs и сбрось лог
Anonymous
Да, найди контейнер по id, найди его rootfs и сбрось лог
на стеке нашел echo "" | sudo tee $(docker inspect --format='{{.LogPath}}' dyndns)
Nikolay
Добрый вечер. А что в логах регистратора? docker logs registrator
Ничего интересного. Суть в том, что я делаю docker-compose down, контейнеры http и registrator останавливаются и удаляются, а сервисы в консуле удалить некому. При следующем запуске registrator ничего не знает о предыущих сервисах и плодит новые.
Boris
Всем привет! Подскажите, что делать? Ситуация такая: Освобождал место в /var/lib/docker перед этим выключив сервис через systemctl. После запуска сервиса ликера, увидев, что результатов нет, попытался удалить /var/lib/docker/aufs увидев, что он занимает плотное количество места(и не зная, что так делать не нужно при запущенном сервисе). После - удалилась папка aufs/layers. Проблема: Теперь при повторном билде имэджа из докерфайла выводит ошибку: open /var/lib/docker/aufs/layers/<id>: no such file or directory. Судя по-всему он ищет старый лэйер и не может найти, так как я удалил его. Можно ли исправить эту ошибку не переустанавливая сам докер? Что лучше сделать? Спасибо
Nikolay
Так регистратор не нужно останавливать.
Ну допустим сервер ребутнётся или docker-compose down сделаем
AstraSerg
Ну допустим сервер ребутнётся или docker-compose down сделаем
На случай падения подсказать не могу. А вот по поводу docker-compose down я б не держал сервис и регистратор в одном композе
AstraSerg
Registrator в отдельно контейнере запускать?
Ну на столько я понял, он у вас и так в отдельном контейнере. Если нет, то конечно в отдельном.
Nikolay
Ну на столько я понял, он у вас и так в отдельном контейнере. Если нет, то конечно в отдельном.
Имеется ввиду у меня сейчас registrator запускался в рамках compose, стоит ли его запускать отдельно по одному на хост. Планируется на одном хосте запускать несколько приложений в compose
AstraSerg
Имеется ввиду у меня сейчас registrator запускался в рамках compose, стоит ли его запускать отдельно по одному на хост. Планируется на одном хосте запускать несколько приложений в compose
Я не в курсе хорошоая ли это практика (пусть более опытные коллеги поправят, если не прав), но у меня сделано именно так: на каждом хосте свой регистратор и консул. И они не зависят от состояния приложений. То есть живут даже если приложения останавливаются или мигрируют. Проблем, подобных вашей, пока не испытывал.
AstraSerg
Они в контейнерах или просто на хосте? Сколько всего примерно контейнеров на хосте?
Регистраторы и крнсулы в контейнерах. Всего контейнеров у меня не много, 5-10 на хост.
Nikolay
Ок, спасибо!
AstraSerg
Юр велкам :)
AstraSerg
@borgkun Погодите, ведь есть health checks. Check Definition - Consul by HashiCorp https://www.consul.io/docs/agent/checks.html
AstraSerg
@borgkun похоже на решение вашей проблемы.
AstraSerg
Да, он чекает, и в итоге остаются дохлые сервисы
Ну дохлые — не проблема же, врядли консул отдает информацию о них, как о живых.
Anonymous
Может кто подскажет не по теме. Чекаю место на диске пинговалкой *вырезска с схшника* per=$(ssh -oStrictHostKeyChecking=no ubuntu@${hosts[$h]} df -H | grep '^/dev/xvda1' | awk '{ print $5//\%/ }') Есть какая та альтернатива df -H ибо бывали случаи что дф говорил свободно 60%, а по факту место занято под 100%
Aleksei
можно совместить проверку в 1 комманду?
Это же две цифры разные, разные per. Даже если в одну команду получишь, то их разделить надо (запятой, пробелом. \n и т.п.)
Aleksei
Не хочется два раза подключаться?
AstraSerg
Это же две цифры разные, разные per. Даже если в одну команду получишь, то их разделить надо (запятой, пробелом. \n и т.п.)
Ну, в принципе можно объединить и при помощи && или || Но сложноватый ванлайнер получится.
Navern
можно совместить проверку в 1 комманду?
Можно) Пихаешь в крон таску которая пишет в файлик, потом заходишь ssh и катаешь значение)
Navern
Не рекомендую так делать
Navern
двойная работа
Ну ты уже начал делать хрент) можно продолжить))
Anonymous
почему хрень? скрипт работае 2 года
Aleksei
почему хрень? скрипт работае 2 года
Я тут начал осваивать collectd, graphite и иже с ними, думаю так лучше будет.
Navern
почему хрень? скрипт работае 2 года
То есть если его оставить как есть, то тебя все устраивает?)
Anonymous
нужно Du заменитьч ем то
AstraSerg
Я тут начал осваивать collectd, graphite и иже с ними, думаю так лучше будет.
О сам их трогаю. Расскажите как они могут помочь тут, для примера.
AstraSerg
нужно Du заменитьч ем то
Нужно сначала понять чем du не устраивает :)
Anonymous
мне нужно место на диске
Anonymous
а не сколько файл занимает
Navern
Du точго нет, думаю он про df))
Anonymous
точнее заменить df
Navern
Рекомендую начать настраивать мониторинг)
Aleksei
О сам их трогаю. Расскажите как они могут помочь тут, для примера.
Зависит от задачи. У collectd есть плагин DF, вроде бы может и inode репортить
AstraSerg
а не сколько файл занимает
df — это как раз не про файл, а про файловую систему
Anonymous
да
Anonymous
только вот он иногда показывает не правдивый размер
Anonymous
*не правдивое свободное место
Navern
только вот он иногда показывает не правдивый размер
Такого не может быть если у тебя не btrfs
Navern
df делает statfs)