В этой статье рассмотрим создание systemd сервиса, который будет запускать контейнер по имени.
1. Создаем контейнер
Мы будем использовать существующий контейнер в сервисе systemd. Для этого давайте его создадим.
Для примера будем использовать контейнер reproxy.
1
2
3
4
5
6
7
8
9
|
sudo podman run \
--name reproxy \
-d \
-p 80:8080 \
-p 443:8443 \
-v /home/me/sites/my-site:/var:rw \
umputun/reproxy \
--file.enabled --file.name=/var/config.yml \
--ssl.acme-location=/var/acme
|
Удалить все запущенные контейнеры можно командой:
1
|
sudo podman rm -f $(sudo podman ps -a -q)
|
2. Создаем конфигурацию для нашего unit
Для этого необходимо добавить файл reproxy-container.service в директорию /etc/systemd/system/ следующего содержания:
1
2
3
4
5
6
7
8
9
10
|
[Unit]
Description=Reproxy container
[Service]
Restart=always
ExecStart=/usr/bin/podman start -a reproxy
ExecStop=/usr/bin/podman stop -t 2 reproxy
[Install]
WantedBy=local.target
|
Для создания файла можно воспользоваться следующей командой:
1
|
sudo vim /etc/systemd/system/reproxy-container.service
|
3. Команды управления сервисом
Включить сервис
1
|
sudo systemctl enable reproxy-container.service
|
Запустить
1
|
sudo systemctl start reproxy-container.service
|
Остановить
1
|
sudo systemctl stop reproxy-container.service
|
Посмотреть статус сервиса
1
|
sudo systemctl status reproxy-container.service
|
Посмотреть журнал/логи
1
|
sudo journalctl -u reproxy-container.service
|
Выводы
Таким образом можно создавать демонов в linux из контейнеров. Вместо podman можно легко использовать docker.
Для этого нужно заменить podman на docker.