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

Подготовка
- Образ CoreOS Ссылка для скачивания
- EasyBCD Ссылка для скачивания
Начало работы
- Установите EasyBCD, добавьте запись загрузки ISO и напрямую используйте образ LiveCD CoreOS.
Подробные шаги со скриншотами:http://jingyan.baidu.com/article/466506586ed309f549e5f81c.html - Загрузите CoreOS и завершите установку CoreOS.
Update
Просто обновите ISO-файл, используемый для загрузки.
Недостатки
- Нет персистентности (отсюда преимущество: если сломается, просто перезагрузитесь).
- Вся ОС создаёт файлы на диске, напрямую занимая дисковое пространство (приносимое этим преимущество: скорость диска значительно повышается).
- При каждой загрузке необходимо вручную смонтировать пространство жёсткого диска и вручную запустить скрипт инициализации всей системы.
Учитывая преимущества и недостатки, эта конфигурация рекомендуется для работы с конкретными, фиксированными задачами. Если у вас больше задач, возможно, придётся оптимизировать больше вещей.
Конфигурация
- Создайте на жёстком диске пространство размером 100G, отформатируйте его. Справочная команда: mkfs.ext4 /dev/sda2, затем смонтируйте его. Если вы не понимаете, как разбивать на разделы, форматировать и монтировать, смотритездесь. Эта статья, пожалуй, лучшая из тех, что я видел по основам управления дисками.
- После монтирования скопируйте папку /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 минут в зависимости от вашей ситуации.
После того как у меня появилась эта идея, я взвесил различные компромиссы.
- Чтобы быстро решить проблему загрузки, используйте EasyBCD для прямой загрузки ISO из памяти вместо того, чтобы разбираться с проблемами UEFI Grub.
- Чтобы сократить временные затраты на настройку окружения, перейдите с обычного дистрибутива, установленного на жёсткий диск, на CoreOS.
- Чтобы избежать нестабильности системы, вызванной ошибочными действиями или обновлениями версий, перейдите на Docker.
- В будущем, возможно, стоит перейти на RKT, RunC (надеюсь, эксперты скоро восполнят пробелы; RunC говорил, что выпустит его в этом месяце, не уверен, не отложат ли выпуск).
- Учтите, что этот подход использует максимально простую настройку окружения любой ценой в обмен на время разработки. Перфекционистам, которые любят возиться, вероятно, стоит поискать другое решение.
Источник: http://www.philo.top/2015/07/16/pc-docker/