Альтернативы Замена Docker Это Podman

Podman sudo apt install podman # Ubuntu sudo dnf install podman # Fedora sudo pacman -S podman # Arch https://www.youtube.com/watch?v=RqqKF0ubtYE&t=497s podman run hello-world apt update sudo apt install -y podman podman -v podman search docker.io/library/php podman pull docker.io/library/php:8.3 podman images # Контейнеры podman ps -a Назначение: Команда podman ps -a используется для просмотра списка контейнеров, которые были запущены или остановлены на вашем хосте. Вывод: Она показывает информацию о контейнерах, такую как: CONTAINER ID: Уникальный идентификатор контейнера. IMAGE: Имя образа, из которого был создан контейнер. COMMAND: Команда, которая была запущена внутри контейнера. CREATED: Дата и время создания контейнера. STATUS: Текущий статус контейнера (запущен, остановлен и т.д.). PORTS: Порты, которые были открыты в контейнере. NAMES: Имя контейнера. # Установленные образы(шаблоны) podman images Назначение: Команда podman images используется для просмотра списка образов контейнеров, которые доступны на вашем хосте. Вывод: Она показывает информацию об образах, такую как: REPOSITORY: Имя репозитория, из которого был скачан образ. TAG: Тег образа. IMAGE ID: Уникальный идентификатор образа. CREATED: Дата и время создания образа. SIZE: Размер образа. # Можно запустить один и тот же контейнер сразу podman run -d --name name1 -p 8080:80 nginx podman run -d --name name2 -p 8081:80 nginx # Остановить podman stop NAME podman stop -a // Остановит всё # Проверка curl http:// 0.0.0.0:8080 # Поиск podman search CONTAINERNAME # Запуск podman run --name NAME1 -p 3000:8080 -v /home/user/myProd/:/var/lib/Prod:Z -d NAMEIMAGE2 ### 1. `--name NAME1` - **Описание**: Этот параметр задает имя контейнера. - **Что делает**: Контейнер будет иметь имя `NAME1`. Это удобно для последующего управления контейнером, так как можно обращаться к нему по имени, а не по ID. ### 2. `-p 3000:8080` пробрасывает порт `8080` из контейнера на порт `3000` хост-системы. То есть, если в контейнере запущен сервер, который слушает на порту `8080`, то к нему можно будет обратиться через порт `3000` на хост-системе. ### 3. `-v /home/user/myProd/:/var/lib/Prod:Z` монтирует директорию `/home/user/myProd/` с хост-системы в директорию `/var/lib/Prod` внутри контейнера. Флаг `:Z` разрешить изменение всего в проброшеной дмрректории ### 4. `-d` Контейнер будет запущен в фоновом режиме, и командная строка не будет блокирована. Вы сможете продолжить использовать терминал для других команд. ### 5. `NAMEIMAGE2` - **Описание**: Это имя образа, из которого будет создан контейнер. - **Что делает**: Podman будет искать образ с именем `NAME2` на локальной машине или в удаленном репозитории (например, Docker Hub) и запустит контейнер из этого образа. ## Podman -h Управление подами, контейнерами и образами **Использование:** ``` podman [опции] [команда] ``` **Доступные команды:** * **attach**: Подключиться к запущенному контейнеру * **auto-update**: Автоматически обновить контейнеры в соответствии с их политикой автообновления * **build**: Собрать образ с использованием инструкций из Containerfiles * **commit**: Создать новый образ на основе измененного контейнера * **compose**: Запустить рабочие нагрузки compose через внешнего провайдера, такого как docker-compose или podman-compose * **container**: Управление контейнерами * **cp**: Копировать файлы/папки между контейнером и локальной файловой системой * **create**: Создать, но не запускать контейнер * **diff**: Показать изменения в файловой системе объекта * **events**: Показать системные события podman * **exec**: Запустить процесс в запущенном контейнере * **export**: Экспортировать файловую систему контейнера в виде архива tar * **farm**: Распределить сборки на удаленные машины * **generate**: Сгенерировать структурированные данные на основе контейнеров, подов или томов * **healthcheck**: Управление проверками работоспособности контейнеров * **help**: Помощь по любой команде * **history**: Показать историю указанного образа * **image**: Управление образами * **images**: Список образов в локальном хранилище * **import**: Импортировать tar-архив для создания файловой системы образа * **info**: Показать информацию о системе podman * **init**: Инициализировать один или несколько контейнеров * **inspect**: Показать конфигурацию объекта, обозначенного идентификатором * **kill**: Убить один или несколько запущенных контейнеров с определенным сигналом * **kube**: Запустить контейнеры, поды или тома из структурированного файла * **load**: Загрузить образ(ы) из tar-архива * **login**: Войти в реестр контейнеров * **logout**: Выйти из реестра контейнеров * **logs**: Получить логи одного или нескольких контейнеров * **machine**: Управление виртуальной машиной * **manifest**: Манипулировать списками манифестов и индексами образов * **mount**: Подключить корневую файловую систему рабочего контейнера * **network**: Управление сетями * **pause**: Приостановить все процессы в одном или нескольких контейнерах * **pod**: Управление подами * **port**: Список портовых маппингов или конкретный маппинг для контейнера * **ps**: Список контейнеров * **pull**: Загрузить образ из реестра * **push**: Отправить образ в указанное место назначения * **rename**: Переименовать существующий контейнер * **restart**: Перезапустить один или несколько контейнеров * **rm**: Удалить один или несколько контейнеров * **rmi**: Удалить один или несколько образов из локального хранилища * **run**: Запустить команду в новом контейнере * **save**: Сохранить образ(ы) в архив * **search**: Поиск образа в реестре * **secret**: Управление секретами * **start**: Запустить один или несколько контейнеров * **stats**: Показать живой поток статистики использования ресурсов контейнера * **stop**: Остановить один или несколько контейнеров * **system**: Управление podman * **tag**: Добавить дополнительное имя локальному образу * **top**: Показать запущенные процессы контейнера * **unmount**: Отмонтировать корневую файловую систему рабочего контейнера * **unpause**: Возобновить процессы в одном или нескольких контейнерах * **unshare**: Запустить команду в измененном пространстве пользователя * **untag**: Удалить имя из локального образа * **update**: Обновить существующий контейнер * **version**: Показать информацию о версии Podman * **volume**: Управление томами * **wait**: Блокировать один или несколько контейнеров **Опции:** * **--cgroup-manager string**: Менеджер cgroup для использования ("cgroupfs"|"systemd") (по умолчанию "systemd") * **--conmon string**: Путь к двоичному файлу conmon * **-c, --connection string**: Соединение для использования с удаленной службой Podman * **--events-backend string**: Бэкенд событий для использования ("file"|"journald"|"none") (по умолчанию "journald") * **--help**: Помощь по podman * **--hooks-dir strings**: Установить путь к каталогу OCI-хуков (может быть установлено несколько раз) (по умолчанию [/usr/share/containers/oci/hooks.d]) * **--identity string**: Путь к файлу SSH-идентификации (CONTAINER_SSHKEY) * **--imagestore string**: Путь к хранилищу образов, отличному от корневого каталога графа, используйте это для разделения хранения образов в отдельное хранилище образов, подробнее см. 'man containers-storage.conf' * **--log-level string**: Записывать сообщения журнала выше указанного уровня (trace, debug, info, warn, warning, error, fatal, panic) (по умолчанию "warn") * **--module strings**: Загрузить модуль containers.conf(5) * **--network-cmd-path string**: Путь к команде для настройки сети * **--network-config-dir string**: Путь к каталогу конфигурации сетей * **--out string**: Отправить вывод (stdout) из podman в файл * **-r, --remote**: Доступ к удаленной службе Podman * **--root string**: Путь к корневому каталогу графа, где хранятся образы, контейнеры и т.д. * **--runroot string**: Путь к каталогу запуска, где хранится вся информация о состоянии * **--runtime string**: Путь к OCI-совместимому двоичному файлу, используемому для запуска контейнеров (по умолчанию "crun") * **--runtime-flag stringArray**: добавить глобальные флаги для исполняемого файла контейнера * **--ssh string**: определить режим ssh (по умолчанию "golang") * **--storage-driver string**: Выбрать, какой драйвер хранилища используется для управления хранилищем образов и контейнеров * **--storage-opt stringArray**: Используется для передачи опции драйверу хранилища * **--syslog**: Выводить информацию журнала в syslog в дополнение к консоли (по умолчанию false) * **--tmpdir string**: Путь к временному каталогу для состояния libpod. **Примечание**: используйте переменную окружения 'TMPDIR', чтобы изменить местоположение временного хранилища для образов контейнеров, '/var/tmp'. (по умолчанию "/run/user/1000/libpod/tmp") * **--transient-store**: Включить временное хранилище контейнеров * **--url string**: URL для доступа к службе Podman (CONTAINER_HOST) (по умолчанию "unix:///run/user/1000/podman/podman.sock") * **-v, --version**: версия podman * **--volumepath string**: Путь к каталогу томов, в котором хранится данные томов # справочная информация podman --help # список доступных команд podman <command> --help # информация по команде # работа с образами podman search nginx # поиск образов по ключевому слову nginx podman pull ubuntu # скачивание последней версии (тег по умолчанию latest) официального образа ubuntu (издатель не указывается) из репозитория по умолчанию docker.io/library podman pull quay.io/bitnami/nginx:latest # скачивание последней версии образа nginx от издателя bitnami из репозитория quay.io/bitnami podman pull docker.io/library/ubuntu:18.04 # скачивание из репозитория docker.io официального образа ubuntu с тегом 18.04 podman images # просмотр локальных образов podman rmi <image_name>:<tag> # удаление образа. Вместо <image_name>:<tag> можно указать <image_id>. Для удаления образа все контейнеры на его основе должны быть как минимум остановлены podman rmi --all # удаление всех образов # работа с контейнерами podman run hello-world # Hello, world! в мире контейнеров podman run -it ubuntu bash # запуск контейнера ubuntu и выполнение команды bash в интерактивном режиме podman run --detach --name nginx --publish 9090:8080 quay.io/bitnami/nginx:1.20.2 # запуск контейнера nginx с отображением (маппингом) порта 9090 хоста на порт 8080 внутрь контейнера podman run --detach --name mongodb docker.io/library/mongo:4.4.10 # запуск контейнера mongodb с именем mongodb в фоновом режиме. Данные будут удалены при удалении контейнера! podman ps # просмотр запущенных контейнеров podman ps -a # просмотр всех контейнеров (в том числе остановленных) podman stats --no-stream # просмотр статистики. Если у пользователя нет прав доступа root, то необходимо переключиться на cgroups v2 podman create alpine # создание контейнера из образа alpine podman start <container_name> # запуск созданного контейнера. Вместо <container_name> можно указать <container_id> podman start --all # запуск всех созданных контейнеров podman stop <container_name> # остановка контейнера. Вместо <container_name> можно указать <container_id> podman stop --all # остановка всех контейнеров podman rm <container_name> # удаление контейнера. Вместо <container_name> можно указать <container_id> podman rm --all # удаление всех контейнеров # система podman system info # общая информация о системе podman system df # занятое место на диске podman system prune -af # удаление неиспользуемых данных и очистка диска https://habr.com/ru/articles/659049/