Конечно, проще всего поместить обе команды в сценарий bash как часть процесса.
Создать скриптrun.sh
:
#!/bin/bash
docker run -itd --restart=always --name=<container> --net=br6 \
--ip6=2001:db8:8:2::100 <image>. \
&& ip neigh replace proxy "2001:db8:8:2::100" dev ens3
Теперь каждый, кто хочет запустить ваш контейнер, должен сделать это, запустив ./run.sh
после предоставления ему прав на выполнение.
Очень часто используется сценарий, например, для настройки среды перед запуском.
Но в некоторых редких случаях (не так, как у вас, но полностью зависит от вас, )вы должны решить, хотите ли вы, чтобы хост выполнял сценарий автоматически при запуске контейнера.
Это можно сделать с помощью шаблона сервера -клиент -ваш хост выступает в роли сервера -он прослушивает определенный порт и готов выполнить команду по запросу.
Контейнер действует как клиент -в точке входа контейнера, он отправляет http-запрос на сервер по этому конкретному порту и URI, прося его выполнить требуемую команду.
Примером использования этого шаблона в докере является отладка кода сервера -, когда вы хотите, чтобы контейнер отправлял журналы отладки на определенный порт на вашем компьютере, где ваша среда IDE их принимает.
sysrc (8)не поддерживает комментарии.
Вы мало даете контекста, но я попробую обрисовать 2 варианта. Может быть, они очевидны -, но такова и справочная страница для sysrc (8);-)
Во многих случаях вы контролируете файлы конфигурации и можете безопасно добавлять новые элементы.
echo #Set hamster_enable = \“YES\” to enable automatic hamster wheel performance boost; \“NO\” to disable >> /etc/rc.conf
echo hamster_enable=\“NO\” >> /etc/rc.conf
Я добавляю настройки одновременно, чтобы сохранить их в порядке. Затем вы можете просто изменить настройку по желанию, сохраняя порядок.
sysrc hamster_enable=YES
Если память меня подводит и sysrc не сохраняет порядок, вы можете сохранить порядок, используяsed
Типичным способом обработки файлов конфигурации до sysrc
было использование потокового редактора sed (1). Давайте сначала рассмотрим пару примеров из реальной жизни.
Изменить суффикс поиска DNS:
sed -I.bak 's/^search.*/search example.com/' /etc/resolv.conf
Установите sudo и разрешите пользователям из группы от wheel
до sudo
без использования пароля.
pkg install -y sudo >> /var/log/postinstall.log 2>&1
sed -I.bak 's/^# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/' /usr/local/etc/sudoers
Установите порт 22 для sshd.
sed -I '' 's/^Port.*/Port 22/' /usr/jails/flavours/default/etc/ssh/sshd_config
Что приводит нас к хомяку
sed -I '' 's/^hamster_enable=.*/hamster_enable=\"YES\" # Here be my comment/' /etc/rc.conf
Если вы настаиваете на размещении комментариев в другой строке, посмотрите Sed Insert Multiple Lines
Если мы хотим удалить ваши строки -, то шапка ^
является началом строки.
sed -I '' 's/^#Set hamster_enable/d' /etc/rc.conf
sed -I '' 's/^hamster_enable=/d' /etc/rc.conf
Хотя sed
более привередлив, чем sysrc
, и вам нужно следить за крайними случаями, в большинстве случаев этого будет достаточно.