о работе Docker

Европа - быстрые серверы на дисках NVMe от $5 / Русский датацентр от 199руб

Тема в разделе "Offtopic", создана пользователем ivanov77, 31 янв 2019.

  1. ivanov77

    ivanov77 Новичок

    Сообщения:
    132
    Ваш город:
    Чернигов, Черниговская область, Украина
    Address:
    Chernihiv, Ukraine
    Country:
    Location on Map:
    Приветствую.

    Скажите, если host система - ubuntu 16.04 то все образы и контейнеры, которые я буду использовать, должны наследоваться(FROM) от нее?
    Как то не сильно с этими версиями понятно где смотреть.
    Вот сразу дают команду:
    docker run ubuntu echo "Hello World"
    Это же latest, т.е. не 16.04 будет.
    И с редисами всякими , если просто как redis указывать, в описании к latest указано - FROM debian:stretch-slim. Тут тоже надо выискивать нужные теги или нет?
     
  2. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    4.708
    Ваш город:
    Moscow, Russia
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    Нет, не обязательно.
    Нет, не обязательно.
    Да, надо тестировать.
     
  3. ivanov77

    ivanov77 Новичок

    Сообщения:
    132
    Ваш город:
    Чернигов, Черниговская область, Украина
    Address:
    Chernihiv, Ukraine
    Country:
    Location on Map:
    На схемках второй ОС как то не видится
     
  4. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    4.708
    Ваш город:
    Moscow, Russia
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    Докер - это application контейнеры.
    Если тебе нужны full system - это к LXC/LXD.
     
  5. ivanov77

    ivanov77 Новичок

    Сообщения:
    132
    Ваш город:
    Чернигов, Черниговская область, Украина
    Address:
    Chernihiv, Ukraine
    Country:
    Location on Map:
    Я об этом спрашивал, о том что в контейнере может быть другая ОС, а делят kernel,
     
  6. WMix

    WMix герр M:)ller Партнер клуба

    Сообщения:
    6.368
    Ваш город:
    Berlin
    Address:
    Berlin, Germany
    Country:
    Location on Map:
    @ivanov77, представь, что docker (или лучше контейнер) это виртуальная машина, только она создается по правилам описанными в dockerfile. такое узкое представление отвечает на твой вопрос?
     
  7. ivanov77

    ivanov77 Новичок

    Сообщения:
    132
    Ваш город:
    Чернигов, Черниговская область, Украина
    Address:
    Chernihiv, Ukraine
    Country:
    Location on Map:
    @WMix, я уже сам выше нашел ответ на свой вопрос.
     
  8. grigori

    grigori ( ͡° ͜ʖ ͡°) Команда форума

    Сообщения:
    7.125
    Ваш город:
    Stormwind
    Address:
    Scottsdale, United States
    Country:
    Location on Map:
    в контейнере не может быть OS по определению, это не виртуализация, в контейнере может быть только userland код - библиотеки и приложения
     
    Последнее редактирование: 7 фев 2019
  9. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    4.708
    Ваш город:
    Moscow, Russia
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    А вот это спорное утверждение :)
    Да, неймспейсы - не виртуализация, но это изоляция настолько низкого уровня, что разница практически незаметна.
     
  10. ivanov77

    ivanov77 Новичок

    Сообщения:
    132
    Ваш город:
    Чернигов, Черниговская область, Украина
    Address:
    Chernihiv, Ukraine
    Country:
    Location on Map:
    Host OS у меня ubuntu 16, командой docker pull ubuntu скачал latest, и соответственно запустив, в консоли контейнера проверил - cat /etc/lsb-release - пишет что ubuntu 18
     
  11. grigori

    grigori ( ͡° ͜ʖ ͡°) Команда форума

    Сообщения:
    7.125
    Ваш город:
    Stormwind
    Address:
    Scottsdale, United States
    Country:
    Location on Map:
    Виртуализация как-бы частично выполняется на уровне железа. Прямо в кристаллах CPU и северного моста вшита поддержка маппинга участков памяти, i/o, сетевых карт под каждую виртуалку, и это поддерживается гипервизорами вроде xen, kvm.
    А контейнеры - это, условно, маппинг PID, сокрытие внешних процессов, chroot и NAT - и все, даже UID/GID файлов во всех контейнерах одинаковый.
     
    Последнее редактирование: 12 фев 2019
  12. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    4.708
    Ваш город:
    Moscow, Russia
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    В LXD по умолчанию используется uidshift, так что нет.
     
  13. grigori

    grigori ( ͡° ͜ʖ ͡°) Команда форума

    Сообщения:
    7.125
    Ваш город:
    Stormwind
    Address:
    Scottsdale, United States
    Country:
    Location on Map:
    конечно, не все так просто, но условно можно считать, что в контейнерах процессы работают рядом, при желании могут пользоваться общей /dev/shm, в общей fs, видеть друг друга, и работать в сети без NAT
     
  14. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    4.708
    Ваш город:
    Moscow, Russia
    Address:
    Moscow, Russia
    Country:
    Location on Map:
    Единственное, что из этого списка не могут делать виртуальные машины, иметь общий /dev/shm.
    И, как ты верно заметил, даже контейнерам на это нужно отдельное желание. Которого у нормального сисадмина почему-то не возникает.
    Так что я не понимаю эти попытки объявить виртуализацию чем-то кардинально другим. Да, в случае СОВРЕМЕННОЙ виртуализации изоляция происходит на уровне железа (VT-x etc.). Но ещё каких-то 5-7 лет назад этой разницы НЕ БЫ ЛО.
    Виртуализация была программная, та же изоляция на уровне драйверов и сервисов.
     
  15. grigori

    grigori ( ͡° ͜ʖ ͡°) Команда форума

    Сообщения:
    7.125
    Ваш город:
    Stormwind
    Address:
    Scottsdale, United States
    Country:
    Location on Map:
    в огороде бузина, а в городе дядька

    * какая разница что было в Pentium? Во всех используемых процессорах сейчас есть поддержка виртуализации на уровне железа.
    * общей файловой системы у виртуалок нет, файловые дескрипторы, кеш, драйвер - у каждой виртуалки свои,
    * между контейнерами можно открыть сокет, сделать хардлинк, а в виртуалку можно только подмонтировать внешнюю файловую систему
    * у контейнеров не только общая память, доступен весь IPC - контейнеры могут работать совместно