Arch linux docker install

Содержание
  1. Install Arch Linux via Docker
  2. Contents
  3. Pre-installation
  4. Prepare an installation medium
  5. Full disk partitions
  6. Volumes
  7. Installation
  8. Launching the container
  9. Select the mirrors
  10. Install essential packages
  11. Configure the system
  12. Reboot
  13. Post-installation
  14. Arch Linux
  15. Dependencies
  16. Installation
  17. Starting Docker
  18. Custom daemon options
  19. Running Docker with a manually-defined network
  20. Uninstallation
  21. Docker (Русский)
  22. Contents
  23. Установка
  24. Настройка
  25. Драйвер хранения
  26. Remote API
  27. Remote API с systemd
  28. Конфигурация сокета демона
  29. Прокси
  30. Конфигурация прокси
  31. Конфигурация контейнера
  32. Конфигурация DNS
  33. Запуск Docker с сетью, заданной вручную, в systemd-networkd
  34. Расположение образов
  35. Небезопасные реестры
  36. Образы
  37. Arch Linux
  38. Debian
  39. Создание образа вручную
  40. Удаление Docker и образов
  41. Полезные советы
  42. Запуск Docker-контейнеров с ускорением на графических процессорах NVIDIA
  43. С помощью NVIDIA Container Toolkit (рекомендовано)
  44. С помощью NVIDIA Container Runtime
  45. С помощью nvidia-docker (устарело)
  46. Устранение неполадок
  47. docker0 Bridge не получает IP адреса/нет доступа к Интернету в контейнерах
  48. Слишком низкое значение количества процессов/потоков по умолчанию
  49. Ошибка инициализации графического драйвера: devmapper
  50. Failed to create some/path/to/file: No space left on device
  51. Неверная ссылка между устройствами в ядре 4.19.1
  52. Docker-machine не может создать виртуальные машины с драйвером virtualbox
  53. Docker 0.9.0 — 1.2.x и LXC

Install Arch Linux via Docker

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

This document is a guide for installing Arch Linux using the official [Arch Linux docker](https://hub.docker.com/_/archlinux). For alternative means of installation, see Category:Installation process.

Before installing, it would be advised to view the FAQ. For conventions used in this document, see Help:Reading. In particular, code examples may contain placeholders (formatted in italics ) that must be replaced manually.

For more detailed instructions, see the respective ArchWiki articles or the various programs’ man pages, both linked from this guide. For interactive help, the IRC channel and the forums are also available.

Arch Linux should run on any x86_64-compatible machine with a minimum of 512 MiB RAM, though more memory is needed to boot the live system for installation [1]. A basic installation should take less than 2 GiB of disk space. As the installation process needs to retrieve packages from a remote repository, this guide assumes a working internet connection is available. Furthermore a working Docker setup on the host is required. While technically it is certainly possible to use any qemu supported host to install Arch with, this guide will not cover this however.

Contents

Pre-installation

This guide assumes that the host system is already pre-configured with regards to normally expected things. E.g. the time is setup correctly, internet connection is working normally, EFI mode if required is setup correctly etc.

Prepare an installation medium

The installation requires a target directory to which Arch Linux will be installed. Any writable directory can be used, but it is quite likely that the target directory has a partition or volume mounted that will server as the root disk.

Full disk partitions

If a full disk is being used as a target, it may need to be formatted. For details see Installation guide#Partition the disks as the same partitioning instructions and order can be followed from there. All the same restrictions and requirements as from there apply as well.

Likewise, the new disk will also needed to be formatted. The instructions from Installation guide#Format the partitions can be used for this as well.

Volumes

When using filesystems such as btrfs or zfs, filesystem volumes are an option to use. Depending on what filesystem is used, creating them uses their own list of commands. In this guide, btrfs will be used as an example.

First, a root volume for Arch Linux is created. This command assumes the current working directory is the btrfs root volume (subvolid=5), but anywhere could be used. If a different location is used, within an existing hierarchy, keep this in mind when later defining fstab and similar. Also note, that as the Arch Linux specific volume is created on a mounted (root) volume, it could be the case that the underlying stack is using (full)disk encryption.

Installation

Launching the container

The remainder of the installation will be done inside a docker container, abbreviated with ADC, Aarch Docker Container.

Читайте также:  Windows получить переменные окружения

Select the mirrors

Packages to be installed must be downloaded from mirror servers, which are defined in /etc/pacman.d/mirrorlist . In the docker container we first install reflector, which updates the mirror list by choosing 70 most recently synchronized HTTPS mirrors and sorting them by download rate. [2] First we have to install reflector in the docker container to be able to use it.

The higher a mirror is placed in the list, the more priority it is given when downloading a package. Ensure to inspect the file to see if it is satisfactory. If it is not, edit the file accordingly, and move the geographically closest mirrors to the top of the list, although other criteria should be taken into account.

This file will later be copied to the new system by pacstrap, so it is worth getting right.

Install essential packages

Make sure that arch-install-scripts is installed in the Docker container. Then follow Installation guide#Install essential packages to install packages into /target using the pacstrap(8) script.

Configure the system

Follow the instructions in Installation guide#Configure the system. Replace /mnt with /target as appropriate.

Reboot

Exit the docker container by typing exit or pressing Ctrl+d .

Optionally manually unmount all the partitions with umount -R «/target» : this allows noticing any «busy» partitions, and finding the cause with fuser(1) .

With a correctly setup boot loader, a reboot should now be possible into the freshly installed Arch Linux.

Post-installation

See General recommendations for system management directions and post-installation tutorials (like setting up a graphical user interface, sound or a touchpad).

For a list of applications that may be of interest, see List of applications.

Источник

Arch Linux

Installing on Arch Linux can be handled via the package in community:

or the following AUR package:

The docker package will install the latest tagged version of docker. The docker-git package will build from the current master branch.

Dependencies

Docker depends on several packages which are specified as dependencies in the packages. The core dependencies are:

Installation

For the normal package a simple

is all that is needed.

For the AUR package execute:

The instructions here assume yaourt is installed. See Arch User Repository for information on building and installing packages from the AUR if you have not done so before.

Starting Docker

There is a systemd service unit created for docker. To start the docker service:

To start on system boot:

Custom daemon options

If you need to add an HTTP Proxy, set a different directory or partition for the Docker runtime files, or make other customizations, read our systemd article to learn how to customize your systemd Docker daemon options.

Running Docker with a manually-defined network

If you manually configure your network using systemd-network version 220 or higher, containers you start with Docker may be unable to access your network. Beginning with version 220, the forwarding setting for a given network ( net.ipv4.conf. .forwarding ) defaults to off. This setting prevents IP forwarding. It also conflicts with Docker which enables the net.ipv4.conf.all.forwarding setting within a container.

To work around this, edit the .network file in /etc/systemd/network/ on your Docker host add the following block:

This configuration allows IP forwarding from the container as expected.

Uninstallation

To uninstall the Docker package:

To uninstall the Docker package and dependencies that are no longer needed:

The above commands will not remove images, containers, volumes, or user created configuration files on your host. If you wish to delete all images, containers, and volumes run the following command:

You must delete the user created configuration files manually.

Источник

Docker (Русский)

Docker — утилита для упаковки, загрузки и запуска любых приложений в легковесных контейнерах.

Contents

Установка

Установите пакет docker или docker-git AUR , версию для разработки. Затем включите и запустите службу docker.service и проверьте ее работу:

Обратите внимание, что запуск службы Docker может завершиться сбоем, если имеется активное VPN-соединение. Это происходит из-за IP-конфликтов между сетевыми мостами и оверлейными сетями VPN и Docker. Если это так, попробуйте отключить VPN перед запуском службы Docker. Вы можете переподключить VPN сразу после этого. Вы также можете попытаться разрешить конфликт сетей.

Читайте также:  Mac os heic to jpg automator

Если требуется запуск Docker от имени обычного пользователя, добавьте его в группу пользователей docker :

Настройка

Драйвер хранения

Драйвер хранения Docker (storage driver или graph driver) значительно влияет на производительность. Его задача — эффективно хранить слои образов контейнеров, то есть когда несколько образов совместно используют слой, только один слой использует дисковое пространство. Совместимая опция `devicemapper` предлагает неоптимальную производительность, которая просто ужасна на вращающихся дисках. Кроме того, `devicemapper` не рекомендуется использовать в промышленной среде.

Поскольку Arch Linux поставляется с новыми ядрами Linux, нет смысла использовать опцию совместимости. Хороший, современный выбор — overlay2 .

Выполните # docker info | grep -i storage , чтобы увидеть текущий драйвер хранилища. Новые установки Docker уже должны использовать overlay2 по умолчанию.

Отредактируйте файл /etc/docker/daemon.json (создайте его, если он не существует), чтобы изменить драйвер хранения:

После чего перезапустите Docker.

Дополнительную информацию о доступных опциях можно найти в руководстве пользователя. Также см. документацию dockerd для получения информации о параметрах daemon.json .

Remote API

Используйте следующую команду, чтобы вручную открыть порт 4243 для Remote API:

-H tcp://0.0.0.0:4243 — часть для открытия Remote API.

-H unix:///var/run/docker.sock — часть для доступа к хост-машине через терминал.

Remote API с systemd

Чтобы запустить Remote API с помощью демона Docker, создайте Drop-in сниппет со следующим содержимым:

Конфигурация сокета демона

Демон docker по умолчанию прослушивает Unix-сокет. Чтобы прослушивать определённый порт, создайте Drop-in сниппет со следующим содержимым:

Прокси

Конфигурация прокси

Создайте Drop-in сниппет со следующим содержанием:

Убедитесь, что конфигурация была загружена:

Конфигурация контейнера

Настройки в файле docker.service не применяются к контейнерам. Для этого необходимо задать переменные ENV в Dockerfile следующим образом:

Docker предоставляет подробную информацию о конфигурации с помощью ENV в Dockerfile.

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

По умолчанию docker создаёт resolv.conf в контейнере с /etc/resolv.conf на хост-машине, отфильтровывая локальные адреса (например, 127.0.0.1 ). Если это приводит к пустому файлу, тогда используются Google DNS серверы. Если вы используете службу типа dnsmasq для предоставления разрешения имен, вам может потребоваться добавить запись в /etc/resolv.conf для сетевого интерфейса докера, чтобы она не отфильтровывалась.

Запуск Docker с сетью, заданной вручную, в systemd-networkd

Если вы вручную конфигурируете свою сеть, используя systemd-networkd версии 220 или выше, контейнеры, которые вы запускаете с помощью Docker, могут не иметь доступа к вашей сети. Начиная с версии 220, параметр переадресации для данной сети ( net.ipv4.conf. .forwarding ) по умолчанию равен off . Этот параметр запрещает переадресацию IP. Он также конфликтует с Docker, который включает параметр net.ipv4.conf.all.forwarding внутри контейнера.

Обходной путь — отредактировать файл .network в /etc/systemd/network/ , добавив IPForward=kernel на хосте Docker:

Эта конфигурация разрешает переадресацию IP из контейнера, как и ожидалось.

Расположение образов

По умолчанию Docker образы расположены в /var/lib/docker . Они могут быть перемещены в другие разделы. Во-первых, остановите docker.service .

Если вы запустили Docker образы, вам необходимо убедиться, что они полностью размонтированы. После этого вы можете переместить изображения из /var/lib/docker в целевой путь.

Затем добавьте Drop-in сниппет для docker.service , добавив параметр —data-root в ExecStart :

Небезопасные реестры

Если вы решите использовать самозаверенный сертификат для своего личного реестра, Docker откажется использовать его, пока вы не заявите, что доверяете ему. Добавьте Drop-in сниппет для docker.service , добавив —insecure-registry параметр в dockerd :

Образы

Arch Linux

Следующая команда выгружает archlinux/base x86_64 образ. Это урезанная версия ядра Arch без сети и т.д.

Для полноценного образа Arch, клонируйте репозиторий и создайте свой собственный образ.

Отредактируйте файл packages так, чтобы он содержал только «base». Затем запустите:

Debian

Следующая команда выгружает debian x86_64 образ.

Создание образа вручную

Создайте образ Debian с debootstrap :

Удаление Docker и образов

Если вы хотите полностью удалить Docker, вам следует выполнить следующие шаги:

Выдать список работающих контейнеров:

Выдать список всех контейнеров, запущенных на хосте для удаления:

Остановить работающий контейнер:

Выполнить команду kill для всё ещё работающих контейнеров:

Удалить все контейнеры, перечисленные по ID:

Выдать список всех образов Docker:

Удалить все образы Docker по ID:

Удалить все данные Docker (очистить каталог):

Читайте также:  Windows april update 2020

The factual accuracy of this article or section is disputed.

Полезные советы

Чтобы получить IP адрес контейнера, выполните:

Для каждого работающего контейнера имя и соответствующий IP-адрес могут быть перечислены для использования в /etc/hosts :

Запуск Docker-контейнеров с ускорением на графических процессорах NVIDIA

С помощью NVIDIA Container Toolkit (рекомендовано)

Начиная с версии 19.03, графические процессоры NVIDIA поддерживаются в качестве устройств Docker. NVIDIA Container Toolkit ― рекомендованный способ запуска контейнеров, использующих графические процессоры NVIDIA.

Установите пакет nvidia-container-toolkit AUR и перезапустите Docker. Теперь вы можете запускать контейнеры Docker, использующие графические процессоры NVIDIA, с помощью параметра —gpus :

Укажите, сколько графических процессоров разрешено в контейнере:

Укажите, какие GPU следует использовать:

Укажите возможности («graphics», «compute», . ) контейнера (хотя это редко, если вообще когда либо используется таким образом):

Для получения дополнительной информации см. README.md и Wiki.

С помощью NVIDIA Container Runtime

Установите пакет nvidia-container-runtime AUR . Затем, зарегистрируйте среду выполнения NVIDIA, отредактировав конфигурационный файл /etc/docker/daemon.json :

Среда выполнения также может быть зарегистрирована с помощью параметра командной строки dockerd:

После этого контейнеры с ускорением на графических процессорах могут быть запущены с помощью следующей команды:

или (требуется Docker версии 19.03 или выше):

С помощью nvidia-docker (устарело)

nvidia-docker — обёртка над библиотекой среды исполнения NVIDIA Container Runtime, которая регистрирует среду выполнения NVIDIA по умолчанию и предоставляет команду nvidia-docker.

Чтобы использовать nvidia-docker, установите пакет nvidia-docker AUR и перезапустите Docker. Контейнеры с поддержкой NVIDIA GPU могут быть запущены, используя один из следующих методов:

или (требуется Docker версии 19.03 или выше)

Устранение неполадок

docker0 Bridge не получает IP адреса/нет доступа к Интернету в контейнерах

Docker сам включает переадресацию IP, но по умолчанию systemd-networkd переопределяет соответствующую настройку sysctl. Установите IPForward=yes в настройках сети. Подробнее читайте в Internet sharing#Enable packet forwarding.

Слишком низкое значение количества процессов/потоков по умолчанию

Если вы столкнетесь с сообщениями об ошибках, похожими на следующие:

тогда вам может потребоваться настроить количество процессов, разрешенных systemd. Значени по умолчанию 500 (смотрите system.conf ), что довольно мало для запуска нескольких Docker контейнеров. Отредактируйте docker.service со следующим фрагментом:

Ошибка инициализации графического драйвера: devmapper

Если systemctl не запускает Docker и выдает ошибку::

Попробуйте выполнить следующие действия, чтобы устранить ошибку. Остановите службу, сделайте резервную копию /var/lib/docker/ (если это необходимо), удалите содержимое /var/lib/docker/ , и попробуйте запустить службу. Смотрите описание проблемы на GitHub для более детальной информации.

Failed to create some/path/to/file: No space left on device

Если вы получаете сообщение об ошибке, подобное этому:

При создании или исполнении Docker образа, даже если у вас достаточно свободного места на диске, убедитесь, что:

  • Tmpfs отключен или имеет достаточно памяти. Docker может пытаться записать файлы в /tmp но терпит неудачу из-за ограничений в использовании памяти, а не дискового пространства.
  • Если вы используете XFS, Вы можете удалить опцию монтирования noquota из соответствующих записей в /etc/fstab (обычно, где находятся /tmp и/или /var/lib/docker ). Для получения дополнительной информации обратитесь к Disk quota, особенно, если вы планируете использовать и изменить размер overlay2 Docker хранилища.
  • Варианты установки монтирования квоты XFS ( uquota , gquota , prjquota , и т.д.) выдают ошибку при перемонтировании файловой системы.

Чтобы включить квоту для корневой файловой системы, параметр монтирования должен быть передан как kernel parameter rootflags= . Впоследствии его не следует указывать среди параметров монтирования в /etc/fstab для корневой файловой системы ( / ).

Неверная ссылка между устройствами в ядре 4.19.1

Если команды типа dpkg не запускаются в Docker, например:

Либо добавьте overlay.metacopy=N kernel parameter или поставьте версию 4.18.x, в которой эта проблема решена. Больше информации в Arch forum.

Docker-machine не может создать виртуальные машины с драйвером virtualbox

Если docker-machine не может создать виртуальные машины с драйвером virtualbox и отображает следующую ошибку:

Перезагрузите virtualbox из командной строки с помощью команды vboxreload .

Docker 0.9.0 — 1.2.x и LXC

Начиная с версии 0.9.0, Docker предоставляет новый способ запуска контейнеров без необходимости в LXC, называемый libcontainer.

LXC может быть удален в ближайшем будущем, однако таким образом вы не сможете использовать lxc-attach с контейнерами, управляемыми Docker 0.9.0+ по умолчанию (запрос 5797). Для этого потребуется запускать службу Docker с параметром -e lxc .

Источник

Оцените статью