Comments 16
The default Docker setup on Windows and OS X uses a VirtualBox VM to host the Docker daemon.Это было актуально во времена Docker Toolbox и уже давно не соответствует действительности: docs.docker.com/docker-for-mac/docker-toolbox.
С выходом нативного Docker for Mac на HyperKit никаких проблем не возникает.
Здравствуйте) Можно глупый вопрос, который меня давно гложит?
Вот подняли мы всё это чудо из нескольких связанных образов на продакшене. А потом у нас возникла необходимость обновить какой-то из образов. Как сделать всё это без остановки всего продакшена?
Сразу пришло в голову haproxy и скрипт, который будет аккуратно перезапускать контейнеры.
В случае с compose можно делать так (решение не сильно отличается): github.com/docker/compose/issues/734#issuecomment-167392770
Для себя закинул еще одно очко в копилку «docker — для удобной/быстрой разработки/тестирования, но не для продакшена»
В случае с compose можно делать так (решение не сильно отличается): github.com/docker/compose/issues/734#issuecomment-167392770
Для себя закинул еще одно очко в копилку «docker — для удобной/быстрой разработки/тестирования, но не для продакшена»
обычно на продакшне это все обмазано docker-swarm либо чем-то подобным (kubernetes и т.д.). В этом случае после обновления образа и пуша его в registry, на swarm-ноде делается update — и оно заменяет контейнеры один за другим с zero downtime
Потому, если вы попали сюда в поиске рецептов, как работать с Docker под Windows, то у меня плохие новости, здесь вы их не найдете.
А у меня плохие новости для вас, — нельзя так долго мариновать статью. Никакие рецепты давно не нужны. Docker на Windows в Hyper-V работает отлично.
Хотелось бы услышать мнение чем Docker лучше чем Vagrant?
Pitfails
Может Pitfalls?
Забыли в Pitfails добавить, что на маке скорость записи из контейнера на диск хоста (добавленный как VOLUME) очень медленная, для понимания масштабов — примерно в 50-100 раз.
Вот пример записи данных на 102MB (на диск контейнера — 0.3сек, на диск хоста — 44сек.):
На официальном форуме развернулась огромная дискуссия на эту тему и судя по ней прогнозы так себе.
Поэтому разработка может стать неприятной когда работа идет с процессом связанным с записью данных из контейнера на диск хоста.
У меня, например, на одном проекте обновление страницы сайта запущенного в docker занимает около 1.5 секунды (из-за записи данных в mysql базу, которая лежит на хосте и монтируется через VOLUME), если тот же сайт запускать на локальном сервере, обновление страницы происходит моментально. Все это очень мешает при отладке когда часто приходится обновлять страницу в браузере.
Вот пример записи данных на 102MB (на диск контейнера — 0.3сек, на диск хоста — 44сек.):
root@cdb2179ff:/var/www/temp# time dd if=/dev/zero of=test.dat bs=1024 count=100000
102400000 bytes (102 MB, 98 MiB) copied, 44.3007 s, 2.3 MB/s
real 0m44.310s
user 0m0.080s
sys 0m3.060s
root@cdb2179ff:/tmp# time dd if=/dev/zero of=test.dat bs=1024 count=100000
102400000 bytes (102 MB, 98 MiB) copied, 0.375994 s, 272 MB/s
real 0m0.381s
user 0m0.030s
sys 0m0.340s
На официальном форуме развернулась огромная дискуссия на эту тему и судя по ней прогнозы так себе.
Поэтому разработка может стать неприятной когда работа идет с процессом связанным с записью данных из контейнера на диск хоста.
У меня, например, на одном проекте обновление страницы сайта запущенного в docker занимает около 1.5 секунды (из-за записи данных в mysql базу, которая лежит на хосте и монтируется через VOLUME), если тот же сайт запускать на локальном сервере, обновление страницы происходит моментально. Все это очень мешает при отладке когда часто приходится обновлять страницу в браузере.
Кстати использование && еще и неплохо уменьшает размер докерфайла.
Согласен с автором во всем, сам въезжал в docker примерно 3 дня с параллельными попытками написания Dockerfile для сборки нужного мне image. Однако советую сразу пристальное внимание обратить на инструкцию CMD, без правильного написания которой запущенный контейнер будет сразу останавливаться, а вместо deprecated MAINTAINER использовать все разнообразие инструкции LABEL.
Вторую часть дождёмся?
Sign up to leave a comment.
Основы Docker за Х часов и Y дней