Как установить Nano в Docker‑контейнере: пошаговая инструкция.

Один из основных принципов, на котором строятся 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.