LINUX.ORG.RU

А как организовывать работу с podman/docker? В административном плане, если можно так выразиться?

 , ,


1

3

Вот я создал Dockerfile:

FROM rhel7
RUN groupadd --system --gid 501 transmission && \
    useradd --system --uid 501 --gid 501 --home-dir /var/lib/transmission --shell /sbin/nologin \
        --comment "transmission daemon account" transmission && \
    yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && \
    yum -y install transmission-daemon && \
    yum clean all
COPY --chown=transmission:transmission settings.json /var/lib/transmission/.config/transmission-daemon/settings.json
RUN chmod 600 /var/lib/transmission/.config/transmission-daemon/settings.json
EXPOSE 51413/tcp 51413/udp 9091/tcp
USER transmission
CMD ["/usr/bin/transmission-daemon", "-f"]

построил свой образ: podman build --tag=transmission .

Дальше мне нужно его запустить, чтобы получился контейнер с определённым именем. Т.е. я пишу

podman run --name transmission \
    --publish 192.168.1.21:51413:51413/tcp \
    --publish 192.168.1.21:51413:51413/udp  \
    --publish 192.168.1.21:9091:9091/tcp \
    --volume /srv/downloads:/var/lib/transmission/Downloads \
    --security-opt label=disable \
    transmission
вот такая страшная команда. Создался контейнер, запустился. Стопаю по ctrl+c. Пишу systemd unit:
[Unit]
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/bin/podman start -a transmission
ExecStop=/usr/bin/podman stop transmission

[Install]
WantedBy=multi-user.target

Вроде всё понятно. Но меня смущает эта страшенная команда docker run с кучей параметров. Я её засунул в скрипт из одной строчки, но как-то тупо это. Есть ли правильные способы засунуть эту конфигурацию в конфиг?

★★★★★

Что тут страшного-то? Пять параметров.

Сравни с какими-нибудь стандартными JAVA_OPTS и не парься.

alpha ★★★★★ ()

засунуть эту конфигурацию в конфиг

docker-compose.yml

dib2 ★★★★★ ()
Ответ на: комментарий от alpha

Не понял вопроса. Ты предлагаешь при старте каждый раз создавать новый контейнер, а при стопе его удалять? Я сделал как в каком-то доке от редхата было написано. Вроде кажется, что так должно быть быстрей.

Legioner ★★★★★ ()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

контейнер в широком смысле, как «место где хранить параметры»

Ты ищешь способ хранить параметры в каком-то промежуточном sh-скрипте. Чтобы из юнита запускать скрипт без параметров.

Мой вопрос - зачем? Чем плохо хранить параметры в самом юните?

alpha ★★★★★ ()
Ответ на: комментарий от alpha

run и start это разные команды. run создаёт новый контейнер. start запускает существующий контейнер.

Legioner ★★★★★ ()

Вроде всё понятно. Но меня смущает эта страшенная команда

podmandocker

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.