Один из основных принципов, на котором строятся Docker образы – ничего лишнего. Поэтому в большинстве случаев в образах отсутствует какой либо текстовый редактор.
В рабочей среде, когда все настроено и запускается автоматически, нет необходимости править файлы вручную внутри контейнера.
Однако, на этапе тестирования и отладки, текстовый редактор может оказаться очень кстати. Здесь мы рассмотрим, как установить текстовый редактор Nano для наиболее популярных образов Linux: Alpine и Ubuntu.
Общие шаги перед установкой
Так как это пример, нам сначала нужно создать соответствующие контейнеры. Если у вас уже есть контейнер, для которого нужно установить редактор, переходите к соответствующему шагу.
Создадим оба Docker‑контейнера, используя команду docker run. Если вы еще не знакомы с созданием и управлением контейнерами, прочтите нашу статью об этом.
Контейнер с Alpine:
[root@waky practice]# docker run -dt --name alpine_container alpine /bin/sh
83d0b45fb2ffe418f36168bafe987f7084359cb5c06c1f6a79263bf15a8a4a22
[root@waky practice]#
Контейнер с Ubuntu:
[root@waky practice]# docker run -dt --name ubuntu_container ubuntu /bin/sh
c8acf09598dbf5c44965a031e3f157dbf9efcfc8148f277c19f9ff3e2b7dc21b
[root@waky practice]#
Проверим, что контейнеры запущены и работают:
[root@waky practice]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c8acf09598db ubuntu "/bin/sh" 8 minutes ago Up 8 minutes ubuntu_container
83d0b45fb2ff alpine "/bin/sh" 9 minutes ago Up 9 minutes alpine_container
[root@waky practice]#
1. Установка Nano в образе Alpine Linux
Alpine — очень популярный легкий образ, используемый для минималистичных контейнеров. Его минимальный вес достигается за счет того, что там нет ничего лишнего. А если нам это лишнее понадобилось, придется устанавливать.
Подключаемся к панели контейнера:
[root@waky practice]# docker exec -it alpine_container /bin/sh
/ #
Устанавливаем недостающий пакет:
[root@waky practice]# docker exec -it alpine_container /bin/sh
/ # apk add --no-cache nano
fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/community/x86_64/APKINDEX.tar.gz
(1/3) Installing ncurses-terminfo-base (6.5_p20250503-r0)
(2/3) Installing libncursesw (6.5_p20250503-r0)
(3/3) Installing nano (8.4-r0)
Executing busybox-1.37.0-r19.trigger
OK: 8 MiB in 19 packages
/ #
–no-cache — опция, которая позволяет не сохранять кэш установленных пакетов, делая образ меньшим.
После установки проверим, что текстовый редактор установился:
/ # nano --version
GNU nano, version 8.4
(C) 2025 the Free Software Foundation and various contributors
Compiled options: --disable-libmagic --disable-nls --enable-utf8
/ #
Попробуем с помощью nano создать и записать файл:
/ # nano /tmp/test.txt
/ # exit
[root@waky practice]#
2. Установка Nano в образе Ubuntu
Ubuntu — один из популярных дистрибутивов Linux, поэтому и его образ имеет широкое применение.
Заходим в контейнер:
[root@waky practice]# docker exec -it ubuntu_container /bin/sh
#
Обновляем пакеты:
# apt-get update
Get:1 http://archive.ubuntu.com/ubuntu noble InRelease [256 kB]
Get:2 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Get:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:4 http://archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
Get:5 http://archive.ubuntu.com/ubuntu noble/multiverse amd64 Packages [331 kB]
Get:6 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages [19.3 MB]
Get:7 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [2732 kB]
Get:8 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages [1174 kB]
Get:9 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages [33.1 kB]
Get:10 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages [1659 kB]
Get:11 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages [1808 kB]
Get:12 http://archive.ubuntu.com/ubuntu noble/restricted amd64 Packages [117 kB]
Get:13 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [1942 kB]
Get:14 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [2050 kB]
Get:15 http://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages [35.9 kB]
Get:16 http://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [2925 kB]
Get:17 http://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [33.9 kB]
Get:18 http://archive.ubuntu.com/ubuntu noble-backports/main amd64 Packages [49.4 kB]
Fetched 34.8 MB in 10s (3516 kB/s)
Reading package lists... Done
#
Устанавливаем текстовый редактор:
# apt-get install -y nano
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
hunspell
The following NEW packages will be installed:
nano
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 282 kB of archives.
After this operation, 856 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 nano amd64 7.2-2ubuntu0.1 [282 kB]
Fetched 282 kB in 1s (250 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package nano.
(Reading database ... 4381 files and directories currently installed.)
Preparing to unpack .../nano_7.2-2ubuntu0.1_amd64.deb ...
Unpacking nano (7.2-2ubuntu0.1) ...
Setting up nano (7.2-2ubuntu0.1) ...
update-alternatives: using /bin/nano to provide /usr/bin/editor (editor) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/man1/editor.1.gz because associated file /usr/share/man/man1/nano.1.gz (of link group editor) doesn't exist
update-alternatives: using /bin/nano to provide /usr/bin/pico (pico) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/man1/pico.1.gz because associated file /usr/share/man/man1/nano.1.gz (of link group pico) doesn't exist
#
-y — автоматическое подтверждение установки.
Проверка версии:
# nano --version
GNU nano, version 7.2
(C) 2023 the Free Software Foundation and various contributors
Compiled options: --disable-libmagic --enable-utf8
#
Используем текстовый редактор:
# nano /tmp/test.txt
# exit
[root@waky practice]#
Заключение
Установить nano в Docker‑контейнер оказалось совсем не сложно. Главное использовать правильный пакетный менеджер, соответствующий дистрибутиву.
Не забудьте удалить текстовый редактор, после того он станет вам не нужен. Это поможет содержать контейнер в чистоте.
Если же редактор нужен вам на постоянной основе, добавьте его установку в образ через Dockerfile.