Значимость

Он обеспечивает максимально быструю установку и развёртывание ОС Linux. Установка быстра и проста, и вы можете почти сразу начать работу с Docker. Он работает очень быстро и использует RAM-диск.

Моя ситуация

Ноутбук с Win8 иногда используется для игр, но на установку двойной загрузки Linux у меня может уйти день. Вся моя работа должна просто выполняться в Docker. И у моего ноутбука достаточно памяти: 16G (спасибо преподавателю Цзяну из HUST).

CoreOS 在 PC 上快速安装上手

Подготовка

  1. Образ CoreOS Ссылка для скачивания
  2. EasyBCD Ссылка для скачивания

Начало работы

  1. Установите EasyBCD, добавьте запись загрузки ISO и напрямую используйте образ LiveCD CoreOS.
    Подробные шаги со скриншотами:http://jingyan.baidu.com/article/466506586ed309f549e5f81c.html
  2. Загрузите CoreOS и завершите установку CoreOS.

Update

Просто обновите ISO-файл, используемый для загрузки.

Недостатки

  1. Нет персистентности (отсюда преимущество: если сломается, просто перезагрузитесь).
  2. Вся ОС создаёт файлы на диске, напрямую занимая дисковое пространство (приносимое этим преимущество: скорость диска значительно повышается).
  3. При каждой загрузке необходимо вручную смонтировать пространство жёсткого диска и вручную запустить скрипт инициализации всей системы.

Учитывая преимущества и недостатки, эта конфигурация рекомендуется для работы с конкретными, фиксированными задачами. Если у вас больше задач, возможно, придётся оптимизировать больше вещей.

Конфигурация

  1. Создайте на жёстком диске пространство размером 100G, отформатируйте его. Справочная команда: mkfs.ext4 /dev/sda2, затем смонтируйте его. Если вы не понимаете, как разбивать на разделы, форматировать и монтировать, смотритездесь. Эта статья, пожалуй, лучшая из тех, что я видел по основам управления дисками.
  2. После монтирования скопируйте папку /var/lib/docker/ в смонтированное расположение, затем создайте обратную символическую ссылку. (Тогда docker images можно будет сохранить на жёсткий диск, и они не потеряются после перезагрузки.) Справочные операции приведены ниже:
    cp -rf /var/lib/docker /mnt/
    rm -rf /var/lib/docker
    ln -s /mnt/docker /var/lib/docker
    

Ссылка на мой файл инициализации

mkdir /root/.ssh
echo "ssh-rsa xxx..(省略)....xx Li-jianying@lijianyings-MacBook-Pro.local" > /root/.ssh/authorized_keys

rm -rf /var/lib/docker
ln -s /mnt/docker /var/lib/docker
#echo 'DOCKER_OPTS="--registry-mirror=http://XXXXX.m.daocloud.io"' >> /run/flannel_docker_opts.env
#systemctl daemon-reload
systemctl restart docker
# using disk

Сначала импортируйте ключ RSA, затем создайте символическую ссылку на него в расположении Docker.

Добавьте ускорение daocloud (хотя официальная документация не упоминает, как ускорить CoreOS, один гуру предложил метод). Поскольку я обнаружил, что без ускорения быстрее, чем с ним, я закомментировал его здесь как запасной вариант.

Подводные камни systemd

Если Docker возвращает ошибку -1, контейнер упадёт. Однако scope всё ещё существует в systemd.

При запуске проблемного контейнера выводится запрос:

Error response from daemon: Cannot start container test: [8] System error: Unit docker-e10eb86807cd9971fc03a8eee732771193d506ed2ba678fdf4292916a9fb072c.scope already exists.

Затем

systemctl stop docker-e10eb86807cd9971fc03a8eee732771193d506ed2ba678fdf4292916a9fb072c.scope

вы можете это исправить.

Подводный камень CoreOS.iso #2

Продолжает проверять KnowHosts.

Справочное решениеhttps://github.com/lijianying10/FixLinux/blob/master/note/CancelsshPublicKeyKnowHostauthentication.md

Итог

Использовать этот метод для развёртывания Linux на ПК действительно удобно. Если вы знакомы с подходом Docker, вы можете справиться примерно за 20 минут в зависимости от вашей ситуации.
После того как у меня появилась эта идея, я взвесил различные компромиссы.

  1. Чтобы быстро решить проблему загрузки, используйте EasyBCD для прямой загрузки ISO из памяти вместо того, чтобы разбираться с проблемами UEFI Grub.
  2. Чтобы сократить временные затраты на настройку окружения, перейдите с обычного дистрибутива, установленного на жёсткий диск, на CoreOS.
  3. Чтобы избежать нестабильности системы, вызванной ошибочными действиями или обновлениями версий, перейдите на Docker.
  4. В будущем, возможно, стоит перейти на RKT, RunC (надеюсь, эксперты скоро восполнят пробелы; RunC говорил, что выпустит его в этом месяце, не уверен, не отложат ли выпуск).
  5. Учтите, что этот подход использует максимально простую настройку окружения любой ценой в обмен на время разработки. Перфекционистам, которые любят возиться, вероятно, стоит поискать другое решение.

Источник: http://www.philo.top/2015/07/16/pc-docker/