<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Как обновить контейнер?]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Как обновить контейнер? форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Fri, 17 Apr 2026 05:46:06 +0300</pubDate>
		<item>
			<title>Как обновить контейнер?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430159">Как обновить контейнер?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Самый простой способ обновиться — через Winbox в разделе «container», а затем в командной строке с командой «–update». <br />
			<i>26.03.2025 11:39:00, grzegorzb.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430159</link>
			<guid>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430159</guid>
			<pubDate>Wed, 26 Mar 2025 11:39:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как обновить контейнер?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430158">Как обновить контейнер?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я использую этот скрипт для Adguard, он сохраняет все настройки и историю. Если историю хранить не нужно → монтирование adguard_work не требуется. Для контейнера veth установлен на 10.0.0.2.<br /><br />Монтирования: &nbsp;<br />/ip dns &nbsp;<br />устанавливаю серверы=1.1.1.1<br /><br />/container/stop [найти, где comment~"adguard"]  <br />:пока ([/container print count-only где comment~"adguard" status=stopping] &gt; 0) делать={ :задержка 1 }  <br />/container/remove [найти, где comment~"adguard"]  <br />:задержка 5 &nbsp;<br />/container/add interface="adguard" remote-image="adguard/adguardhome:latest" mounts="adguard_conf,adguard_work" root-dir="usb1/apps/adguard/root" start-on-boot=yes logging=no comment="adguard" &nbsp;<br />:задержка 3 &nbsp;<br />:пока ([/container print count-only где comment~"adguard" status=extracting] &gt; 0) делать { :задержка 1 }  <br />/container/start [найти, где comment~"adguard"]<br /><br />/ip dns &nbsp;<br />устанавливаю серверы=10.0.0.2 <br />
			<i>07.03.2025 17:25:00, ssyur.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430158</link>
			<guid>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430158</guid>
			<pubDate>Fri, 07 Mar 2025 17:25:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как обновить контейнер?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430157">Как обновить контейнер?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Если кому-то будет полезно, я сейчас использую такой скрипт: {<br />	/container;<br />	:local HN "{{.hostname}}";<br />	:local TAG "{{.TAG}}";<br />	:local FN "{{.TAR}}";<br />	:local START [/system/clock/get time];<br />	print where tag=$TAG;<br />	:while ([find where tag=$TAG status=running]) do={stop [find tag=$TAG status=running]; :delay 1;};<br />	:while ([find where tag=$TAG status=stopped]) do={remove [find tag=$TAG status=stopped]; :delay 1;};<br />	:while ([find where tag=$TAG]) do={:delay 0.1;};<br />	add file=$FN envlist={{.env}} hostname=$HN interface=v{{.env}} logging=yes start-on-boot=yes;<br />	:while ([:len [find where tag=$TAG]]=0) do={:delay 0.1;};<br />	start [find tag=$TAG];<br />	:while ([find where tag=$TAG status=stopped]) do={:delay 0.1;};<br />	print where tag=$TAG;<br />	:delay 1; # Delay to show startup logs.<br />	/log/print where time&gt;$START topics=container,info,debug;<br />} Ему нужно будет добавить монтирования, но я считаю его удобным. Это часть маленькой программы на go, которая устанавливает одно SSH-соединение, потом сначала загружает образ контейнера (я собираю локально), а потом выполняет обновляющий скрипт. Циклы while с задержками делают процесс быстрым и надежным. <br />
			<i>07.03.2025 14:17:00, scddt.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430157</link>
			<guid>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430157</guid>
			<pubDate>Fri, 07 Mar 2025 14:17:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как обновить контейнер?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430156">Как обновить контейнер?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Поскольку RoS (7.18.1) уже знает параметры, с которыми был запущен контейнер, было бы полезно добавить функцию Обновления (до :latest) вместе с командами Запуска и Остановки контейнера. При работе с несколькими контейнерами — поиск по имени репозитория и создание вручную вызываемого скрипта для каждого контейнера.<br /><br /># update_pihole.rsc &nbsp;<br />/container/stop [find where repo="registry-1.docker.io/pihole/pihole:latest"]  <br />:delay 5 &nbsp;<br />/container/remove [find where repo="registry-1.docker.io/pihole/pihole:latest"]  <br />:delay 1 &nbsp;<br />/container/add remote-image="pihole/pihole:latest" interface=veth1 envlist=pihole_envs root-dir=usb1/pihole mounts=dnsmasq_pihole,etc_pihole domain-name="my.home.lan" logging=yes start-on-boot=yes &nbsp;<br />:delay 90 &nbsp;<br />/container/start [find where repo="registry-1.docker.io/pihole/pihole:latest"]  <br /><br />Отрегулируйте задержки под свои контейнеры, у pihole из тех, что я тестировал, наибольшее время занимает распаковка и запуск. Так как RoS точно знает состояние контейнера, лучше всего реализовать функцию обновления для минимизации простоев при апгрейде адекватных контейнеров, использующих env-переменные или монтирования.<br /><br />Список URL репозиториев всех контейнеров: &nbsp;<br />:foreach i in=[/container/print as-value] do={ :if ($i-&gt;"repo"!="") do={ :put ($i-&gt;"repo") } }  <br /><br />registry-1.docker.io/pihole/pihole:latest &nbsp;<br />registry-1.docker.io/netbirdio/netbird:latest <br />
			<i>07.03.2025 09:02:00, Strykar.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430156</link>
			<guid>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430156</guid>
			<pubDate>Fri, 07 Mar 2025 09:02:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как обновить контейнер?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430155">Как обновить контейнер?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я бы добавил logging=yes. В моём случае 60 секунд могут быть слишком короткими. Иногда извлечение занимает больше времени. Учтите, что начиная с версии 7.7 USB-монтирование — это не disk1, а usb1-part1. <br />
			<i>24.02.2023 21:24:00, PeterXC.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430155</link>
			<guid>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430155</guid>
			<pubDate>Fri, 24 Feb 2023 21:24:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как обновить контейнер?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430154">Как обновить контейнер?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я написал скрипт, но статус контейнера всегда «error» после его запуска. При этом те же команды, введённые вручную, работают.<br /><br />/container/stop 0 :delay 20s; &nbsp;<br />/container/remove 0 &nbsp;<br />/container/add remote-image=pihole/pihole:latest interface=veth1 root-dir=disk1/pihole mounts=dnsmasq_pihole,etc_pihole envlist=pihole_envs hostname=pihole start-on-boot=yes :delay 60s; &nbsp;<br />/container/start 0 <br />
			<i>19.02.2023 10:08:00, Z0ltan.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430154</link>
			<guid>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430154</guid>
			<pubDate>Sun, 19 Feb 2023 10:08:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как обновить контейнер?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430153">Как обновить контейнер?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Пожалуйста, как я могу обновить контейнер, точнее pihole? Я привык работать через SSH, но понятия не имею, как это сделать в RouterOS, и не могу найти ничего по этой теме. Спасибо. <br />
			<i>12.12.2022 13:57:00, sunakashi.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430153</link>
			<guid>http://mikrotik.moscow/forum/forum57/88770-kak-obnovit-konteyner/message430153</guid>
			<pubDate>Mon, 12 Dec 2022 13:57:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
