#docker
#docker
Вопрос:
Я использую Mac, но я хочу изучать и использовать Ubuntu для разработки, и меня не волнует графический интерфейс. Раньше я использовал Vagrant и ssh для подключения к компьютеру, но он потребляет большую часть ресурсов моего компьютера. Могу ли я использовать docker для той же цели, сохраняя при этом изоляцию (когда я что-то путаю) виртуальной машины?
Комментарии:
1. Сервер Ubuntu, работающий на виртуальной машине, займет около 512 МБ оперативной памяти, 10 ГБ дискового пространства и почти нулевой процессор во время простоя (я использую 14.04 LTS). Docker, вероятно, только уменьшит использование диска.
2. Если вы хотите использовать Ubuntu специально…. Скорее используйте Multipass от Canonical. Вы поставите под угрозу графический интерфейс, но оно того стоит!!
Ответ №1:
- Сначала установите Docker Desktop для Mac.
- Затем в окне терминала запустите:
docker run -it --name ubuntu ubuntu:xenial bash
Вы находитесь в терминале с ubuntu и можете делать все, что захотите.
Примечание: Если вы используете ubuntu версии bionic (18.04) или новее (
ubuntu:bionic
илиubuntu:latest
), вы должны запустить командуunminimize
внутри контейнера, чтобы были установлены инструменты для взаимодействия с человеком.
Для повторного запуска после перезагрузки:
docker start ubuntu
docker exec -it ubuntu bash
Если вы хотите сохранить свои изменения:
docker commit ubuntu
docker images
Посмотрите на неназванное изображение и:
docker tag <imageid> myubuntu
Затем вы можете запустить другой контейнер, используя свой новый образ.
docker run -it --name myubuntu myubuntu bash
Или заменить прежний
docker stop ubuntu
docker rm ubuntu
docker run -it --name ubuntu myubuntu bash
Надеюсь, это поможет
Комментарии:
1. Я пробовал это, но sudo здесь не работает. Ни добавить-apt-repository
2. Вам не нужен sudo, он запускается с пользователем root. Для полной работы с Ubuntu вам необходимо выполнить команду «unminimize»
3. Эта версия приведенной выше команды предназначена для того, чтобы хост и контейнер могли совместно использовать том:
docker run --mount type=bind,source=/Users/myName/Desktop/data,target=/data -it --name ubuntu ubuntu:bionic bash
по ссылке здесь: github.com/moby/moby/issues/34532
Ответ №2:
Это один из немногих сценариев, для которых я бы не стал использовать Docker 🙂
Базовые образы, такие как Ubuntu, представляют собой сильно урезанные версии полной ОС. В последнем образе Ubuntu нет базовых инструментов, таких как ping
и curl
— это преднамеренная стратегия Canonical, направленная на минимизацию размера изображения и, следовательно, вектора атаки. Обычно вы создаете образ для запуска одного процесса приложения в контейнере, не подключаетесь по SSH и используете обычные инструменты разработки, поэтому они не нужны. Это затруднит вам изучение Ubuntu, потому что там нет многих основных элементов.
На Mac лучшим инструментом виртуальной машины, который я использовал, является Parallels — ему удается совместно использовать процессор, не разряжая батарею. VirtualBox тоже хорош, и для любого из них вы можете установить полноценный сервер Ubuntu с диска ISO — 5GB, а выделение 1GB RAM будет достаточным, если вы просто посмотрите вокруг.
С помощью любого гипервизора вы можете приостановить виртуальные машины, чтобы они перестали использовать ресурсы, и проверить их, чтобы сохранить образ, чтобы вы могли восстановить его позже.
Комментарии:
1. Это, вероятно, лучшее решение… Использование чего-то бесплатного, например VirtualBox, для запуска Ubuntu, вероятно, требует меньше затрат, чем запуск Docker (который затем использует виртуальную машину под капотом для запуска Ubuntu).
2. Virtualbox не поддерживает Apple M1, а Parallels не поддерживает запуск виртуальной машины x86 на хосте M1; Docker поддерживает.
Ответ №3:
Да, вы можете.
Попробуйте поискать в docker hub контейнеры ubuntu по вашему выбору (версия и кто поддерживает образ)
Большинство из них очень хорошо документированы о том, что использовалось для его создания, а также о том, как запускать и получать доступ / предоставлять ресурсы, если это необходимо.
Проверьте официальный здесь: https://hub.docker.com/_/ubuntu /
Комментарии:
1. Следует отметить одну вещь: и Vagrant, и Docker-Machine (или Docker для Mac) запускают виртуальную машину (в большинстве случаев VirtualBox), которая блокирует некоторые ресурсы хост-системы. В зависимости от того, как вы масштабируете эту виртуальную машину, вы увидите влияние на производительность вашей хост-системы. Если у вас всего 4 ГБ оперативной памяти, и вы предоставляете 3 ГБ Vagrant или Docker-Machine, вы заметите это. Если на вашем компьютере установлено 16 ГБ оперативной памяти, вы можете быть более щедрыми…
2. И что происходит, когда я «rm -rf /» в гостевой системе? 🙂
3. @HorusCoding rm будет вести себя так, как вы привыкли на виртуальной машине
4. @nwinkler О, так что в моем случае выигрыша не будет?
5. Привет @nwinkler, Docker для Mac больше не использует docker-machine. Этот продукт называется Docker Toolbox. Docker для Mac использует очень эффективное решение для виртуализации, которое лучше интегрируется с macOS и потребляет меньше ресурсов