<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://mdminfo.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker</id>
	<title>Установка в Docker - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://mdminfo.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker"/>
	<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;action=history"/>
	<updated>2026-06-02T16:20:34Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;diff=623&amp;oldid=prev</id>
		<title>Newz20: Newz20 переименовал страницу Docker в Установка в Docker поверх перенаправления</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;diff=623&amp;oldid=prev"/>
		<updated>2019-12-16T11:38:15Z</updated>

		<summary type="html">&lt;p&gt;Newz20 переименовал страницу &lt;a href=&quot;/index.php?title=Docker&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Docker (страница не существует)&quot;&gt;Docker&lt;/a&gt; в &lt;a href=&quot;/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&quot; title=&quot;Установка в Docker&quot;&gt;Установка в Docker&lt;/a&gt; поверх перенаправления&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 14:38, 16 декабря 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;diff=621&amp;oldid=prev</id>
		<title>Newz20: Newz20 переименовал страницу Установка в Docker в Docker</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;diff=621&amp;oldid=prev"/>
		<updated>2019-12-16T11:35:54Z</updated>

		<summary type="html">&lt;p&gt;Newz20 переименовал страницу &lt;a href=&quot;/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&quot; title=&quot;Установка в Docker&quot;&gt;Установка в Docker&lt;/a&gt; в &lt;a href=&quot;/index.php?title=Docker&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Docker (страница не существует)&quot;&gt;Docker&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 14:35, 16 декабря 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;diff=620&amp;oldid=prev</id>
		<title>Newz20 в 11:35, 16 декабря 2019</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;diff=620&amp;oldid=prev"/>
		<updated>2019-12-16T11:35:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 14:35, 16 декабря 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Установка]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Установка Majordomo+mosquitto+zigbee2mqtt в Docker&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Установка Majordomo+mosquitto+zigbee2mqtt в Docker&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l43&quot;&gt;Строка 43:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 44:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Он уже идёт как связка 2х контейнеров sql и debian с php и nginx на борту. В принципе там есть инструкция, но я внесу пару корректив в неё))&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Он уже идёт как связка 2х контейнеров sql и debian с php и nginx на борту. В принципе там есть инструкция, но я внесу пару корректив в неё))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Клонируем репозиторий&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1 &lt;/ins&gt;Клонируем репозиторий&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1 &lt;/del&gt;&amp;lt;pre&amp;gt;git clone https://github.com/A-SOM/docker-majordomo&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;git clone https://github.com/A-SOM/docker-majordomo&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2 Клонируется он в текущую папку. Чаще всего при входе через ssh (да и при логине из консоли) вы попадаете в папку пользователя. Так что в папке пользователя должна появится папка master. На этом этапе её можно куда-нибудь перенести, либо переименовать (это конечно можно сделать и при клонировании репозитория, но так проще было объяснить).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2 Клонируется он в текущую папку. Чаще всего при входе через ssh (да и при логине из консоли) вы попадаете в папку пользователя. Так что в папке пользователя должна появится папка master. На этом этапе её можно куда-нибудь перенести, либо переименовать (это конечно можно сделать и при клонировании репозитория, но так проще было объяснить).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;mv master majordomo&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;mv master majordomo&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;diff=618&amp;oldid=prev</id>
		<title>Newz20: картинки</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;diff=618&amp;oldid=prev"/>
		<updated>2019-12-16T11:30:56Z</updated>

		<summary type="html">&lt;p&gt;картинки&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 14:30, 16 декабря 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l243&quot;&gt;Строка 243:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 243:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;docker-compose restart zigbee2mqtt&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;docker-compose restart zigbee2mqtt&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Containers md3.png|800px|мини|центр|containers_md3]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В очередной раз видим, что контейнер вполне себе запустился. Так же на скрине я отметил ссылку перехода к логам контейнера. Там можно в &amp;quot;режиме онлайн&amp;quot; наблюдать логи процесса. Если всё настроено правильно - лог будет выглядеть примерно так:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В очередной раз видим, что контейнер вполне себе запустился. Так же на скрине я отметил ссылку перехода к логам контейнера. Там можно в &amp;quot;режиме онлайн&amp;quot; наблюдать логи процесса. Если всё настроено правильно - лог будет выглядеть примерно так:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Z2mqtt log.png|800px|мини|центр|z2mqtt_log]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Для тех у кого несколько ком-портов на компе - можно подцепить устройство по серийному номеру. Для начала найдём его&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Для тех у кого несколько ком-портов на компе - можно подцепить устройство по серийному номеру. Для начала найдём его&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l253&quot;&gt;Строка 253:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 255:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Среди результатов найти стик, думаю не проблема&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Среди результатов найти стик, думаю не проблема&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Lsconsole.png|800px|мини|центр|lsconsole]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;На всякий случай скажу, что искать что то содержащее Texas_Instruments)).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;На всякий случай скажу, что искать что то содержащее Texas_Instruments)).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l276&quot;&gt;Строка 276:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 280:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Phpmyadmin доступен на порту http://&amp;lt;айпиадрес_сервера&amp;gt;:8085.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Phpmyadmin доступен на порту http://&amp;lt;айпиадрес_сервера&amp;gt;:8085.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Phpmyadmin.png|800px|мини|центр|phpmyadmin]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Для входа можно использовать юзера root или же пользователя под которым входит majordomo. Оба пароля мы прописывали при поднятии контейнера mysql/mariadb.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Для входа можно использовать юзера root или же пользователя под которым входит majordomo. Оба пароля мы прописывали при поднятии контейнера mysql/mariadb.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l285&quot;&gt;Строка 285:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 291:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Как вы, наверное, успели заметить в том же портэйнере отображаются адреса контейнеров. По скольку контейнеры это изолированные среды, а изолированные среды должны как то общаться между собой и с пользователем - связывает их виртуальная сеть, поднятая прямо на сервере. У сети есть своё пространство имён, каждый контейнер имеет свой адрес. Нет, есть, конечно, и другие типы интерфейсов сети, но о них я не упоминаю, т.к. в текущей статье использовался только тип интерфейса bridge. Если мы обращаемся к приложению в контейнере прямо с серверной машины - надо обращаться не к localhost (127.0.0.1), как мы привыкли это делать, а к ip адресу, присвоенному контейнеру. Так же некоторые контейнеры позволяют для подключения использовать DNS имя, чем мы собственно и воспользовались при настройке mosquitto и mariadb. Например чтобы подключиться модулем zigbee2mqtt к брокеру mosquitto надо указать примерно следующие настройки&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Как вы, наверное, успели заметить в том же портэйнере отображаются адреса контейнеров. По скольку контейнеры это изолированные среды, а изолированные среды должны как то общаться между собой и с пользователем - связывает их виртуальная сеть, поднятая прямо на сервере. У сети есть своё пространство имён, каждый контейнер имеет свой адрес. Нет, есть, конечно, и другие типы интерфейсов сети, но о них я не упоминаю, т.к. в текущей статье использовался только тип интерфейса bridge. Если мы обращаемся к приложению в контейнере прямо с серверной машины - надо обращаться не к localhost (127.0.0.1), как мы привыкли это делать, а к ip адресу, присвоенному контейнеру. Так же некоторые контейнеры позволяют для подключения использовать DNS имя, чем мы собственно и воспользовались при настройке mosquitto и mariadb. Например чтобы подключиться модулем zigbee2mqtt к брокеру mosquitto надо указать примерно следующие настройки&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Z2mconfig-1.png|800px|мини|центр|Z2mconfig-1]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Указание параметров сети==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Указание параметров сети==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l321&quot;&gt;Строка 321:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 327:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;И логи появились на нужной страничке&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;И логи появились на нужной страничке&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Z2m log.png|800px|мини|центр|z2m_log]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Заключение==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Заключение==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;diff=611&amp;oldid=prev</id>
		<title>Newz20: доделка основного переноса</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;diff=611&amp;oldid=prev"/>
		<updated>2019-12-16T11:24:49Z</updated>

		<summary type="html">&lt;p&gt;доделка основного переноса&lt;/p&gt;
&lt;a href=&quot;https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;amp;diff=611&amp;amp;oldid=610&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;diff=610&amp;oldid=prev</id>
		<title>Newz20: Новая страница: «Установка Majordomo+mosquitto+zigbee2mqtt в Docker  ==Вступление== Всем привет.  Не нашел ни одной статьи в б...»</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2_Docker&amp;diff=610&amp;oldid=prev"/>
		<updated>2019-12-16T11:17:09Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Установка Majordomo+mosquitto+zigbee2mqtt в Docker  ==Вступление== Всем привет.  Не нашел ни одной статьи в б...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Установка Majordomo+mosquitto+zigbee2mqtt в Docker&lt;br /&gt;
&lt;br /&gt;
==Вступление==&lt;br /&gt;
Всем привет.&lt;br /&gt;
&lt;br /&gt;
Не нашел ни одной статьи в базе знаний про докер. Решил наваять одну, чтобы люди, так сказать, могли приобщиться к прекрасному. Сегодня мы будем поднимать сетевой стек для MajorDoMo в Docker.&lt;br /&gt;
&lt;br /&gt;
Плюсы минусы докера, и что это в принципе такое описывать уж не буду...всё давным давно в инете расписано. Сразу к делу.&lt;br /&gt;
&lt;br /&gt;
==Установка==&lt;br /&gt;
Поднимать всё это дело будем используя docker-compose, т.к. там конфиги контейнеров прописаны в одном файле, и не надо за собой таскать длинные строки запуска контейнеров.&lt;br /&gt;
&lt;br /&gt;
==Docker==&lt;br /&gt;
Сперва установим docker и docker-compose. В серверных ОС его можно выбрать как опцию при установке системы, а для остальных:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt get update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install docker docker-compose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo usermod -aG docker &amp;lt;имя_пользователя&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Portainer==&lt;br /&gt;
&lt;br /&gt;
Так же можно (но не обязательно) установить Portainer дабы созерцать в веб интерфейсе, что за контейнеры у нас создаются, и каким образом. Так же там можно будет глянуть логи. Но и то и то можно сделать в консоли, так что пункт скорее чтобы продемонстрировать преимущества докера - в одну команду (создание тома portainer_data считать не будем, т.к. можно и без него) поднимается довольно мощный сервис. Так же новичкам, может, будет удобнее, создавать контейнеры для различных standalone приложений (типа качалки торрентов, всяких plex-серверов и т.п.) через веб интерфейс, тоже в пару кликов, вместо консольного интерфейса.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;docker volume create portainer_data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;docker run -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После чего портэйнер должен запуститься на 9000 порту нашего сервера. При первом входе будет предложено создать пароль администратора, и подключиться к сокету докера. Выбираем локальную машинку, и видим один запущенный контейнер portainer, который, собственно, только что и создали.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Portainer.png|800px|мини|центр|Portainer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MajorDoMo==&lt;br /&gt;
Далее переходим к majordomo.&lt;br /&gt;
&lt;br /&gt;
Будем использовать уже готовый репозиторий&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://github.com/A-SOM/docker-majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Он уже идёт как связка 2х контейнеров sql и debian с php и nginx на борту. В принципе там есть инструкция, но я внесу пару корректив в неё))&lt;br /&gt;
&lt;br /&gt;
Клонируем репозиторий&lt;br /&gt;
1 &amp;lt;pre&amp;gt;git clone https://github.com/A-SOM/docker-majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
2 Клонируется он в текущую папку. Чаще всего при входе через ssh (да и при логине из консоли) вы попадаете в папку пользователя. Так что в папке пользователя должна появится папка master. На этом этапе её можно куда-нибудь перенести, либо переименовать (это конечно можно сделать и при клонировании репозитория, но так проще было объяснить).&lt;br /&gt;
&amp;lt;pre&amp;gt;mv master majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
3 Переходим в папку и подтягиваем последнюю версию majordomo&lt;br /&gt;
&amp;lt;pre&amp;gt;cd majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;make clone_code&amp;lt;/pre&amp;gt;&lt;br /&gt;
4 Далее необходимо немного подправить конфиги (если они уже там не поправлены). Добавляем iputils-ping в устанавливаемые пакеты к любой команде apt-get в Dockerfile образа (необходим для модуля Устройства онлайн)&lt;br /&gt;
&amp;lt;pre&amp;gt;nano app-conf/debian/Dockerfile&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Я добавил к этой строке&lt;br /&gt;
&amp;lt;pre&amp;gt;RUN apt-get install php php-cgi php-cli php-pear php-mysql php-mbstring php-xml php-fpm curl libcurl3 libcurl3-dev php-curl iputils-ping -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
а так же в конфиг nginx-а (без неё у меня не захотело взлетать)&lt;br /&gt;
&amp;lt;pre&amp;gt;nano app-conf/debian/nginx/default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cтроку '''client_max_body_size 32m;''' примерно вот так&lt;br /&gt;
&amp;lt;pre&amp;gt;server {&lt;br /&gt;
    listen 80 default_server;&lt;br /&gt;
    index index.php index.html index.htm;&lt;br /&gt;
    server_name 127.0.0.1 localhost _;&lt;br /&gt;
    set $MAGE_ROOT /var/www/html;&lt;br /&gt;
    error_log  /var/log/nginx/error.log;&lt;br /&gt;
    access_log /var/log/nginx/access.log upstream_time;&lt;br /&gt;
    root $MAGE_ROOT;&lt;br /&gt;
    client_max_body_size 32m;&lt;br /&gt;
...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5 Компилить образ автором репозитория предлагается через команду make, но т.к. я планирую использовать данный стэк не только для МД но и для других приложений - придётся так же поправить docker-compose.yml и вместо указанных там переменных вида ${MYSQL_HOST} использовать конечные значение логинов/паролей. В итоге файлик стал выглядеть так:&lt;br /&gt;
&amp;lt;pre&amp;gt;nano docker-compose.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;version: '3'&lt;br /&gt;
services:&lt;br /&gt;
  majordomo:&lt;br /&gt;
    build: ./app-conf/debian/&lt;br /&gt;
    ports:&lt;br /&gt;
      - '80:80'&lt;br /&gt;
      - '8001:8001'&lt;br /&gt;
    volumes:&lt;br /&gt;
      - './app:/var/www/html'&lt;br /&gt;
    links:&lt;br /&gt;
      - mysql&lt;br /&gt;
  mysql:&lt;br /&gt;
    image: mariadb&lt;br /&gt;
    ports:&lt;br /&gt;
      - '3306:3306'&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./db-data:/var/lib/mysql&lt;br /&gt;
    environment:&lt;br /&gt;
      - MYSQL_HOST=mysql&lt;br /&gt;
      - MYSQL_ROOT_PASSWORD=mypassword&lt;br /&gt;
      - MYSQL_DATABASE=db_terminal&lt;br /&gt;
      - MYSQL_USER=myuser&lt;br /&gt;
      - MYSQL_PASSWORD=myuserpassword&lt;br /&gt;
    command:&lt;br /&gt;
      mysqld --innodb-flush-method=littlesync --innodb-use-native-aio=OFF&lt;br /&gt;
    restart: always&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6 После чего можно попробовать скомилить через make install или же через docker (docker-compose up -d) данный образ (точнее 2 образа - для базы и для веб сервера), а так же инициализировать БД.&lt;br /&gt;
&amp;lt;pre&amp;gt;make install &amp;amp;&amp;amp; make init-db&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При инициализации базы будет задан вопрос - удалить ли старую базу? Подтверждаем.&lt;br /&gt;
Раньше у меня это работало, но в последний раз у меня make init-db не захотел работать ни в какую. Базу удалял, создавал, но пустую. Дамп не грузился. В итоге пришлось базу заливать вручную через консольный клиент или phpmyadmin (про конфиг которого расскажу чуть позже).&lt;br /&gt;
&lt;br /&gt;
6 Далее необходимо скопировать конфиг МД&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -f ./app/config.php.sample ./app/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и вписать туда (nano ./app/config.php) актуальные данные для подключения к БД. Главное не забывать, что хост для подключения к mysql не localhost а mysql. Логин, пароль и имя базы мы прописывали выше.&lt;br /&gt;
&lt;br /&gt;
8 Собственно после этого уже должен запустится МД. После правки конфигов нужно перезапустить контейнеры или всю машину.&lt;br /&gt;
&amp;lt;pre&amp;gt;docker-compose stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;docker-compose start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9 Проверяем запустились ли контейнеры&lt;br /&gt;
&lt;br /&gt;
[[Файл:Containers md.png|800px|мини|центр|Контейнеры МД]]&lt;br /&gt;
&lt;br /&gt;
Заходим на http://айпиадрес, проверяем загрузился ли чистый интерфейс МД.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Mosquitto==&lt;br /&gt;
Приступим к установке mqtt брокера mosquitto.&lt;br /&gt;
&lt;br /&gt;
Сперва создадим папку, где будут храниться все конфиг файлы и база москита, со всей вложенной структорой.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ./mosquitto&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ./mosquitto/config&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ./mosquitto/data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ./mosquitto/log&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;touch ./mosquitto/config/mosquitto.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;touch ./mosquitto/config/passwd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее открываем docker-compose.yml и добавляем mosquitto в ряды сервисов, которые там уже есть&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;pre&amp;gt;mosquitto:&lt;br /&gt;
    container_name: mosquitto&lt;br /&gt;
    image: eclipse-mosquitto:latest&lt;br /&gt;
    restart: always&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./mosquitto/config:/mosquitto/config&lt;br /&gt;
      - ./mosquitto/data:/mosquitto/data&lt;br /&gt;
      - ./mosquitto/log:/mosquitto/log&lt;br /&gt;
    ports:&lt;br /&gt;
      - 1883:1883&lt;br /&gt;
    user: '1000:1000'&lt;br /&gt;
    environment:&lt;br /&gt;
      - MQTT_BROKER_URL=mqtt://mosquitto&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И пробуем запустить контейнер&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;docker-compose up -d&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Если всё прошло успешно (это можно узнать зайдя в portainer, в списке контейнеров, и глянуть в логи сервиса, ну или посмотреть логи через консоль).&lt;br /&gt;
&lt;br /&gt;
[[Файл:Containers md2.png|800px|мини|центр|Контейнеры МД2]]&lt;br /&gt;
&lt;br /&gt;
На всякий случай заглянем в логи&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;tail -f mosquitto/log/mosquitto.log&amp;lt;/pre&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
А то у меня было такое, что конейнер запустился, а в логах ошибка доступа. Если всё работает, то там должно быть что то типа&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;1565844759: mosquitto version 1.6.4 starting&lt;br /&gt;
1565844759: Config loaded from /mosquitto/config/mosquitto.conf.&lt;br /&gt;
1565844759: Opening ipv4 listen socket on port 1883.&lt;br /&gt;
1565844759: Opening ipv6 listen socket on port 1883.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно чуть чуть пошаманить с конфигами. Например создать пользователя:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;docker exec -it mosquitto mosquitto_passwd -c  /mosquitto/config/passwd &amp;lt;имя пользователя&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(при выполнении попросит ввести новый пароль пользователя).&lt;br /&gt;
&lt;br /&gt;
И запретить подключаться гостям (без пользователя) к нашему брокеру&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano ./mosquitto/config/mosquitto.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
persistence true&lt;br /&gt;
persistence_location /mosquitto/data&lt;br /&gt;
allow_anonymous false&lt;br /&gt;
log_dest file /mosquitto/log/mosquitto.log&lt;br /&gt;
password_file /mosquitto/config/passwd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После чего можно перезапустить контейнеры, и в очередной раз убедиться, что всё запускается.&lt;br /&gt;
&lt;br /&gt;
==Zigbee2MQTT==&lt;br /&gt;
Как и в случае установки mosquitto - создадим папку под конфиги.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ./zigbee2mqtt&amp;lt;/pre&amp;gt;&lt;br /&gt;
И добавим наш сервис zigbee2mqtt в конец файла docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
  zigbee2mqtt:&lt;br /&gt;
    container_name: zigbee2mqtt&lt;br /&gt;
    #image: koenkk/zigbee2mqtt:arm32v6 # arm32 (raspberry pi)&lt;br /&gt;
    image: koenkk/zigbee2mqtt:latest # x86_64/amd64&lt;br /&gt;
    restart: always&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./zigbee2mqtt:/app/data&lt;br /&gt;
    devices:&lt;br /&gt;
      - /dev/ttyACM0:/dev/ttyACM0&lt;br /&gt;
    user: '1000:20'&lt;br /&gt;
    depends_on:&lt;br /&gt;
      - mosquitto&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
10&lt;br /&gt;
11&lt;br /&gt;
12&lt;br /&gt;
  zigbee2mqtt:&lt;br /&gt;
    container_name: zigbee2mqtt&lt;br /&gt;
    #image: koenkk/zigbee2mqtt:arm32v6 # arm32 (raspberry pi)&lt;br /&gt;
    image: koenkk/zigbee2mqtt:latest # x86_64/amd64&lt;br /&gt;
    restart: always&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./zigbee2mqtt:/app/data&lt;br /&gt;
    devices:&lt;br /&gt;
      - /dev/ttyACM0:/dev/ttyACM0&lt;br /&gt;
    user: '1000:20'&lt;br /&gt;
    depends_on:&lt;br /&gt;
      - mosquitto&lt;br /&gt;
Не забываем добавить пользователя в группу dialout (20), чтобы он смог работать с usb стиком&lt;br /&gt;
&lt;br /&gt;
sudo usermod -aG dialout &amp;lt;имя_пользователя&amp;gt;&lt;br /&gt;
1&lt;br /&gt;
sudo usermod -aG dialout &amp;lt;имя_пользователя&amp;gt;&lt;br /&gt;
Пробуем опять создать и запустить контейнеры стака.&lt;br /&gt;
&lt;br /&gt;
docker-compose up -d&lt;br /&gt;
1&lt;br /&gt;
docker-compose up -d&lt;br /&gt;
Контейнер создатстя, но, пока, никуда не подключится, т.к. мы не указывали данные для подключения. А создание и запуск контейнера нужны были, чтобы создать конфигурационные файлы в директории. Теперь можем их отредактировать.&lt;br /&gt;
&lt;br /&gt;
nano ./zigbee2mqtt/configuration.yaml&lt;br /&gt;
1&lt;br /&gt;
nano ./zigbee2mqtt/configuration.yaml&lt;br /&gt;
Вписываем/исправляем примерно до следующего вида&lt;br /&gt;
&lt;br /&gt;
# разрешаем подключаться новым девайсам (активируем режим сопряжения при запуске)&lt;br /&gt;
permit_join: true&lt;br /&gt;
&lt;br /&gt;
# Настройки MQTT&lt;br /&gt;
mqtt:&lt;br /&gt;
  # MQTT базовый топик для публикации сообщений&lt;br /&gt;
  base_topic: zigbee2mqtt&lt;br /&gt;
  # MQTT URL&lt;br /&gt;
  server: 'mqtt://mosquitto' #да именно так, т.к. мы хост указали в контейнере москита&lt;br /&gt;
  # MQTT авторизация, если требуется&lt;br /&gt;
  user: user   &lt;br /&gt;
  password: password   &lt;br /&gt;
&lt;br /&gt;
# Настройки порта&lt;br /&gt;
serial:&lt;br /&gt;
  # Путь к стику CC2531&lt;br /&gt;
  port: /dev/ttyACM0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
10&lt;br /&gt;
11&lt;br /&gt;
12&lt;br /&gt;
13&lt;br /&gt;
14&lt;br /&gt;
15&lt;br /&gt;
16&lt;br /&gt;
17&lt;br /&gt;
# разрешаем подключаться новым девайсам (активируем режим сопряжения при запуске)&lt;br /&gt;
permit_join: true&lt;br /&gt;
 &lt;br /&gt;
# Настройки MQTT&lt;br /&gt;
mqtt:&lt;br /&gt;
  # MQTT базовый топик для публикации сообщений&lt;br /&gt;
  base_topic: zigbee2mqtt&lt;br /&gt;
  # MQTT URL&lt;br /&gt;
  server: 'mqtt://mosquitto' #да именно так, т.к. мы хост указали в контейнере москита&lt;br /&gt;
  # MQTT авторизация, если требуется&lt;br /&gt;
  user: user   &lt;br /&gt;
  password: password   &lt;br /&gt;
 &lt;br /&gt;
# Настройки порта&lt;br /&gt;
serial:&lt;br /&gt;
  # Путь к стику CC2531&lt;br /&gt;
  port: /dev/ttyACM0&lt;br /&gt;
И перезапускаем контейнер&lt;br /&gt;
&lt;br /&gt;
docker-compose restart zigbee2mqtt&lt;br /&gt;
1&lt;br /&gt;
docker-compose restart zigbee2mqtt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В очередной раз видим, что контейнер вполне себе запустился. Так же на скрине я отметил ссылку перехода к логам контейнера. Там можно в &amp;quot;режиме онлайн&amp;quot; наблюдать логи процесса. Если всё настроено правильно - лог будет выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для тех у кого несколько ком-портов на компе - можно подцепить устройство по серийному номеру. Для начала найдём его&lt;br /&gt;
&lt;br /&gt;
ls /dev/serial/by-id/usb-*&lt;br /&gt;
1&lt;br /&gt;
ls /dev/serial/by-id/usb-*&lt;br /&gt;
Среди результатов найти стик, думаю не проблема&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На всякий случай скажу, что искать что то содержащее Texas_Instruments)).&lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin&lt;br /&gt;
Многим нужен для комфортной работы phpmyadmin (интерфейс для доступа к базе данных). Решил показать на всякий случай, как его тоже добавить. Но я думаю суть вы уже уловили))) Добавляем очередной сервис в docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
  phpmyadmin:&lt;br /&gt;
      image: phpmyadmin/phpmyadmin&lt;br /&gt;
      container_name: phpmyadmin&lt;br /&gt;
      environment:&lt;br /&gt;
          - PMA_HOST=mysql&lt;br /&gt;
          - PMA_PORT=3306&lt;br /&gt;
      restart: always&lt;br /&gt;
      ports:&lt;br /&gt;
          - 8085:80&lt;br /&gt;
      depends_on:&lt;br /&gt;
          - mysql&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
10&lt;br /&gt;
11&lt;br /&gt;
  phpmyadmin:&lt;br /&gt;
      image: phpmyadmin/phpmyadmin&lt;br /&gt;
      container_name: phpmyadmin&lt;br /&gt;
      environment:&lt;br /&gt;
          - PMA_HOST=mysql&lt;br /&gt;
          - PMA_PORT=3306&lt;br /&gt;
      restart: always&lt;br /&gt;
      ports:&lt;br /&gt;
          - 8085:80&lt;br /&gt;
      depends_on:&lt;br /&gt;
          - mysql&lt;br /&gt;
И поднимаем всю связку&lt;br /&gt;
&lt;br /&gt;
docker-compose up -d&lt;br /&gt;
1&lt;br /&gt;
docker-compose up -d&lt;br /&gt;
Phpmyadmin доступен на порту http://&amp;lt;айпиадрес_сервера&amp;gt;:8085.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для входа можно использовать юзера root или же пользователя под которым входит majordomo. Оба пароля мы прописывали при поднятии контейнера mysql/mariadb.&lt;br /&gt;
&lt;br /&gt;
Ещё пару слов о докере&lt;br /&gt;
На последок ещё пару твиков которые могут понадобиться при использовании докера&lt;br /&gt;
&lt;br /&gt;
Сеть в докере&lt;br /&gt;
Как вы, наверное, успели заметить в том же портэйнере отображаются адреса контейнеров. По скольку контейнеры это изолированные среды, а изолированные среды должны как то общаться между собой и с пользователем - связывает их виртуальная сеть, поднятая прямо на сервере. У сети есть своё пространство имён, каждый контейнер имеет свой адрес. Нет, есть, конечно, и другие типы интерфейсов сети, но о них я не упоминаю, т.к. в текущей статье использовался только тип интерфейса bridge. Если мы обращаемся к приложению в контейнере прямо с серверной машины - надо обращаться не к localhost (127.0.0.1), как мы привыкли это делать, а к ip адресу, присвоенному контейнеру. Так же некоторые контейнеры позволяют для подключения использовать DNS имя, чем мы собственно и воспользовались при настройке mosquitto и mariadb. Например чтобы подключиться модулем zigbee2mqtt к брокеру mosquitto надо указать примерно следующие настройки&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Указание параметров сети&lt;br /&gt;
Если хотите указать какие-либо параметры сети, отличающиеся от выдаваемых по дефолту - для этого нужно обозначить сеть в конфиге. Делается это уже за пределами секции services. Создаём отдельную секцию networks, и там прописываем конфигурацию сети.&lt;br /&gt;
&lt;br /&gt;
networks:&lt;br /&gt;
    majordomo:&lt;br /&gt;
        driver: bridge&lt;br /&gt;
        ipam:&lt;br /&gt;
          config:&lt;br /&gt;
            - subnet: 172.1.0.0/16&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
networks:&lt;br /&gt;
    majordomo:&lt;br /&gt;
        driver: bridge&lt;br /&gt;
        ipam:&lt;br /&gt;
          config:&lt;br /&gt;
            - subnet: 172.1.0.0/16&lt;br /&gt;
Указание статичных адресов контейнеров&lt;br /&gt;
После того как указали параметры сети - можно присвоить статичные адреса контейнерам. Рекомендую не занимать первые адреса в сети, либо же указывать адреса всем контейнерам без исключения. Т.к., допустим, если вы указали адрес 172.1.0.2 контейнеру, контейнер, которому адрес не присвоен может занять его, если запустится раньше, и контейнер с указанным адресом не сможет запуститься вовсе. Для контейнера статичный ip присваивается следующим образом (на примере phpmyadmin)&lt;br /&gt;
&lt;br /&gt;
  phpmyadmin:&lt;br /&gt;
      image: phpmyadmin/phpmyadmin&lt;br /&gt;
      container_name: phpmyadmin&lt;br /&gt;
      networks:&lt;br /&gt;
        majordomo:&lt;br /&gt;
          ipv4_address: 172.1.0.20&lt;br /&gt;
      environment:&lt;br /&gt;
          - PMA_HOST=mysql&lt;br /&gt;
          - PMA_PORT=3306&lt;br /&gt;
      restart: always&lt;br /&gt;
      ports:&lt;br /&gt;
          - 8085:80&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
10&lt;br /&gt;
11&lt;br /&gt;
12&lt;br /&gt;
  phpmyadmin:&lt;br /&gt;
      image: phpmyadmin/phpmyadmin&lt;br /&gt;
      container_name: phpmyadmin&lt;br /&gt;
      networks:&lt;br /&gt;
        majordomo:&lt;br /&gt;
          ipv4_address: 172.1.0.20&lt;br /&gt;
      environment:&lt;br /&gt;
          - PMA_HOST=mysql&lt;br /&gt;
          - PMA_PORT=3306&lt;br /&gt;
      restart: always&lt;br /&gt;
      ports:&lt;br /&gt;
          - 8085:80&lt;br /&gt;
После этого из локальной машинки можно будет обращаться к контейнеру по указанному ip адресу...напоминаю - эта сеть существует только &amp;quot;внутри сервера&amp;quot;. Снаружи - все сервисы доступны только по ip-адресу сервера и прокинутым наружу портам (по крайней мере в режиме сети bridge)&lt;br /&gt;
&lt;br /&gt;
Логи Zigbee2MQTT&lt;br /&gt;
Ну и ещё один лайфхак на последок. Я уже показывал что логи того же zigbee2mqtt доступны в портэйнере. Так же, на примере москита показывал как их можно просмотреть в консоли. В модуле же zigbee2mqtt так же реализован онлайн мониторинг логов. Но чтобы он завёлся - нам нужно прокинуть соответствующую папку в контейнер МД. Т.е. дописать в секцию volumes примерно слежующее&lt;br /&gt;
&lt;br /&gt;
      - './zigbee2mqtt/log:/opt/zigbee2mqtt/data/log'&lt;br /&gt;
1&lt;br /&gt;
      - './zigbee2mqtt/log:/opt/zigbee2mqtt/data/log'&lt;br /&gt;
И логи появились на нужной страничке&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Заключение&lt;br /&gt;
Итак все установки закончены, стак функционирует.&lt;br /&gt;
&lt;br /&gt;
Мой финальный конфиг docker-compose.yml выглядит так:&lt;br /&gt;
&lt;br /&gt;
version: '3'&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  majordomo:&lt;br /&gt;
    build: ./app-conf/debian/&lt;br /&gt;
    ports:&lt;br /&gt;
      - '80:80'&lt;br /&gt;
      - '8001:8001'&lt;br /&gt;
    networks:&lt;br /&gt;
       majordomo:&lt;br /&gt;
           ipv4_address: 172.1.0.5&lt;br /&gt;
    volumes:&lt;br /&gt;
      - './app:/var/www/html'&lt;br /&gt;
      - './zigbee2mqtt/log:/opt/zigbee2mqtt/data/log'&lt;br /&gt;
    links:&lt;br /&gt;
      - mysql&lt;br /&gt;
	  &lt;br /&gt;
  mysql:&lt;br /&gt;
    image: mariadb&lt;br /&gt;
    ports:&lt;br /&gt;
      - '3306:3306'&lt;br /&gt;
    networks:&lt;br /&gt;
       majordomo:&lt;br /&gt;
           ipv4_address: 172.1.0.1  &lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./db-data:/var/lib/mysql&lt;br /&gt;
    environment:&lt;br /&gt;
      - MYSQL_HOST=mysql&lt;br /&gt;
      - MYSQL_ROOT_PASSWORD=rootpassword&lt;br /&gt;
      - MYSQL_DATABASE=db_terminal&lt;br /&gt;
      - MYSQL_USER=user&lt;br /&gt;
      - MYSQL_PASSWORD=mypassword&lt;br /&gt;
    command:&lt;br /&gt;
      mysqld --innodb-flush-method=littlesync --innodb-use-native-aio=OFF&lt;br /&gt;
    restart: always&lt;br /&gt;
&lt;br /&gt;
  mosquitto:&lt;br /&gt;
    container_name: mosquitto&lt;br /&gt;
    image: eclipse-mosquitto:latest&lt;br /&gt;
    restart: always&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./mosquitto/config:/mosquitto/config&lt;br /&gt;
      - ./mosquitto/data:/mosquitto/data&lt;br /&gt;
      - ./mosquitto/log:/mosquitto/log&lt;br /&gt;
    networks:&lt;br /&gt;
       majordomo:&lt;br /&gt;
           ipv4_address: 172.1.0.100&lt;br /&gt;
    ports:&lt;br /&gt;
      - 1883:1883&lt;br /&gt;
    user: '1000:1000'&lt;br /&gt;
    environment:&lt;br /&gt;
      - MQTT_BROKER_URL=mqtt://mosquitto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  zigbee2mqtt:&lt;br /&gt;
    container_name: zigbee2mqtt&lt;br /&gt;
    image: koenkk/zigbee2mqtt:latest # x86_64/amd64&lt;br /&gt;
    restart: always&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./zigbee2mqtt:/app/data&lt;br /&gt;
    devices:&lt;br /&gt;
      - /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B001938AB48-if00:/dev/ttyACM0&lt;br /&gt;
    user: '1000:20'&lt;br /&gt;
    networks:&lt;br /&gt;
      - majordomo&lt;br /&gt;
    depends_on:&lt;br /&gt;
      - mosquitto&lt;br /&gt;
  &lt;br /&gt;
  phpmyadmin:&lt;br /&gt;
      image: phpmyadmin/phpmyadmin&lt;br /&gt;
      container_name: phpmyadmin&lt;br /&gt;
      networks:&lt;br /&gt;
        majordomo:&lt;br /&gt;
          ipv4_address: 172.1.0.20&lt;br /&gt;
      environment:&lt;br /&gt;
          - PMA_HOST=172.1.0.1&lt;br /&gt;
          - PMA_PORT=3306&lt;br /&gt;
      restart: always&lt;br /&gt;
      ports:&lt;br /&gt;
          - 8085:80&lt;br /&gt;
      depends_on:&lt;br /&gt;
          - mysql&lt;br /&gt;
  qbittorrent:&lt;br /&gt;
      image: wernight/qbittorrent:latest&lt;br /&gt;
      container_name: qbittorrent&lt;br /&gt;
      volumes:&lt;br /&gt;
          - ./qbittorrent/config:/config&lt;br /&gt;
          - /mnt/mywd/-=Downloads=-/torrent:/downloads&lt;br /&gt;
          - ./qbittorrent/torrents:/torrents&lt;br /&gt;
      user: '1000:1000'&lt;br /&gt;
      ports:&lt;br /&gt;
          - '6881:6881'&lt;br /&gt;
          - '6881:6881/udp'&lt;br /&gt;
          - '9090:9090'&lt;br /&gt;
      networks:&lt;br /&gt;
        majordomo:&lt;br /&gt;
          ipv4_address: 172.1.0.30&lt;br /&gt;
      restart: unless-stopped&lt;br /&gt;
	  &lt;br /&gt;
  blynk-server:&lt;br /&gt;
    container_name: blynk-server&lt;br /&gt;
    image: mpherg/blynk-server:latest&lt;br /&gt;
    networks:&lt;br /&gt;
       majordomo:&lt;br /&gt;
           ipv4_address: 172.1.0.40&lt;br /&gt;
    ports:&lt;br /&gt;
      - '8080:8080'&lt;br /&gt;
      - '8440:8440'&lt;br /&gt;
      - '9443:9443'&lt;br /&gt;
    restart: always&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./blynk/data:/config&lt;br /&gt;
      - ./blynk/backup:/data/&lt;br /&gt;
	  &lt;br /&gt;
networks:&lt;br /&gt;
    majordomo:&lt;br /&gt;
        driver: bridge&lt;br /&gt;
        ipam:&lt;br /&gt;
          config:&lt;br /&gt;
            - subnet: 172.1.0.0/16&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
10&lt;br /&gt;
11&lt;br /&gt;
12&lt;br /&gt;
13&lt;br /&gt;
14&lt;br /&gt;
15&lt;br /&gt;
16&lt;br /&gt;
17&lt;br /&gt;
18&lt;br /&gt;
19&lt;br /&gt;
20&lt;br /&gt;
21&lt;br /&gt;
22&lt;br /&gt;
23&lt;br /&gt;
24&lt;br /&gt;
25&lt;br /&gt;
26&lt;br /&gt;
27&lt;br /&gt;
28&lt;br /&gt;
29&lt;br /&gt;
30&lt;br /&gt;
31&lt;br /&gt;
32&lt;br /&gt;
33&lt;br /&gt;
34&lt;br /&gt;
35&lt;br /&gt;
36&lt;br /&gt;
37&lt;br /&gt;
38&lt;br /&gt;
39&lt;br /&gt;
40&lt;br /&gt;
41&lt;br /&gt;
42&lt;br /&gt;
43&lt;br /&gt;
44&lt;br /&gt;
45&lt;br /&gt;
46&lt;br /&gt;
47&lt;br /&gt;
48&lt;br /&gt;
49&lt;br /&gt;
50&lt;br /&gt;
51&lt;br /&gt;
52&lt;br /&gt;
53&lt;br /&gt;
54&lt;br /&gt;
55&lt;br /&gt;
56&lt;br /&gt;
57&lt;br /&gt;
58&lt;br /&gt;
59&lt;br /&gt;
60&lt;br /&gt;
61&lt;br /&gt;
62&lt;br /&gt;
63&lt;br /&gt;
64&lt;br /&gt;
65&lt;br /&gt;
66&lt;br /&gt;
67&lt;br /&gt;
68&lt;br /&gt;
69&lt;br /&gt;
70&lt;br /&gt;
71&lt;br /&gt;
72&lt;br /&gt;
73&lt;br /&gt;
74&lt;br /&gt;
75&lt;br /&gt;
76&lt;br /&gt;
77&lt;br /&gt;
78&lt;br /&gt;
79&lt;br /&gt;
80&lt;br /&gt;
81&lt;br /&gt;
82&lt;br /&gt;
83&lt;br /&gt;
84&lt;br /&gt;
85&lt;br /&gt;
86&lt;br /&gt;
87&lt;br /&gt;
88&lt;br /&gt;
89&lt;br /&gt;
90&lt;br /&gt;
91&lt;br /&gt;
92&lt;br /&gt;
93&lt;br /&gt;
94&lt;br /&gt;
95&lt;br /&gt;
96&lt;br /&gt;
97&lt;br /&gt;
98&lt;br /&gt;
99&lt;br /&gt;
100&lt;br /&gt;
101&lt;br /&gt;
102&lt;br /&gt;
103&lt;br /&gt;
104&lt;br /&gt;
105&lt;br /&gt;
106&lt;br /&gt;
107&lt;br /&gt;
108&lt;br /&gt;
109&lt;br /&gt;
110&lt;br /&gt;
111&lt;br /&gt;
112&lt;br /&gt;
113&lt;br /&gt;
114&lt;br /&gt;
115&lt;br /&gt;
116&lt;br /&gt;
117&lt;br /&gt;
118&lt;br /&gt;
119&lt;br /&gt;
120&lt;br /&gt;
version: '3'&lt;br /&gt;
services:&lt;br /&gt;
 &lt;br /&gt;
  majordomo:&lt;br /&gt;
    build: ./app-conf/debian/&lt;br /&gt;
    ports:&lt;br /&gt;
      - '80:80'&lt;br /&gt;
      - '8001:8001'&lt;br /&gt;
    networks:&lt;br /&gt;
       majordomo:&lt;br /&gt;
           ipv4_address: 172.1.0.5&lt;br /&gt;
    volumes:&lt;br /&gt;
      - './app:/var/www/html'&lt;br /&gt;
      - './zigbee2mqtt/log:/opt/zigbee2mqtt/data/log'&lt;br /&gt;
    links:&lt;br /&gt;
      - mysql&lt;br /&gt;
	  &lt;br /&gt;
  mysql:&lt;br /&gt;
    image: mariadb&lt;br /&gt;
    ports:&lt;br /&gt;
      - '3306:3306'&lt;br /&gt;
    networks:&lt;br /&gt;
       majordomo:&lt;br /&gt;
           ipv4_address: 172.1.0.1  &lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./db-data:/var/lib/mysql&lt;br /&gt;
    environment:&lt;br /&gt;
      - MYSQL_HOST=mysql&lt;br /&gt;
      - MYSQL_ROOT_PASSWORD=rootpassword&lt;br /&gt;
      - MYSQL_DATABASE=db_terminal&lt;br /&gt;
      - MYSQL_USER=user&lt;br /&gt;
      - MYSQL_PASSWORD=mypassword&lt;br /&gt;
    command:&lt;br /&gt;
      mysqld --innodb-flush-method=littlesync --innodb-use-native-aio=OFF&lt;br /&gt;
    restart: always&lt;br /&gt;
 &lt;br /&gt;
  mosquitto:&lt;br /&gt;
    container_name: mosquitto&lt;br /&gt;
    image: eclipse-mosquitto:latest&lt;br /&gt;
    restart: always&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./mosquitto/config:/mosquitto/config&lt;br /&gt;
      - ./mosquitto/data:/mosquitto/data&lt;br /&gt;
      - ./mosquitto/log:/mosquitto/log&lt;br /&gt;
    networks:&lt;br /&gt;
       majordomo:&lt;br /&gt;
           ipv4_address: 172.1.0.100&lt;br /&gt;
    ports:&lt;br /&gt;
      - 1883:1883&lt;br /&gt;
    user: '1000:1000'&lt;br /&gt;
    environment:&lt;br /&gt;
      - MQTT_BROKER_URL=mqtt://mosquitto&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  zigbee2mqtt:&lt;br /&gt;
    container_name: zigbee2mqtt&lt;br /&gt;
    image: koenkk/zigbee2mqtt:latest # x86_64/amd64&lt;br /&gt;
    restart: always&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./zigbee2mqtt:/app/data&lt;br /&gt;
    devices:&lt;br /&gt;
      - /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B001938AB48-if00:/dev/ttyACM0&lt;br /&gt;
    user: '1000:20'&lt;br /&gt;
    networks:&lt;br /&gt;
      - majordomo&lt;br /&gt;
    depends_on:&lt;br /&gt;
      - mosquitto&lt;br /&gt;
  &lt;br /&gt;
  phpmyadmin:&lt;br /&gt;
      image: phpmyadmin/phpmyadmin&lt;br /&gt;
      container_name: phpmyadmin&lt;br /&gt;
      networks:&lt;br /&gt;
        majordomo:&lt;br /&gt;
          ipv4_address: 172.1.0.20&lt;br /&gt;
      environment:&lt;br /&gt;
          - PMA_HOST=172.1.0.1&lt;br /&gt;
          - PMA_PORT=3306&lt;br /&gt;
      restart: always&lt;br /&gt;
      ports:&lt;br /&gt;
          - 8085:80&lt;br /&gt;
      depends_on:&lt;br /&gt;
          - mysql&lt;br /&gt;
  qbittorrent:&lt;br /&gt;
      image: wernight/qbittorrent:latest&lt;br /&gt;
      container_name: qbittorrent&lt;br /&gt;
      volumes:&lt;br /&gt;
          - ./qbittorrent/config:/config&lt;br /&gt;
          - /mnt/mywd/-=Downloads=-/torrent:/downloads&lt;br /&gt;
          - ./qbittorrent/torrents:/torrents&lt;br /&gt;
      user: '1000:1000'&lt;br /&gt;
      ports:&lt;br /&gt;
          - '6881:6881'&lt;br /&gt;
          - '6881:6881/udp'&lt;br /&gt;
          - '9090:9090'&lt;br /&gt;
      networks:&lt;br /&gt;
        majordomo:&lt;br /&gt;
          ipv4_address: 172.1.0.30&lt;br /&gt;
      restart: unless-stopped&lt;br /&gt;
	  &lt;br /&gt;
  blynk-server:&lt;br /&gt;
    container_name: blynk-server&lt;br /&gt;
    image: mpherg/blynk-server:latest&lt;br /&gt;
    networks:&lt;br /&gt;
       majordomo:&lt;br /&gt;
           ipv4_address: 172.1.0.40&lt;br /&gt;
    ports:&lt;br /&gt;
      - '8080:8080'&lt;br /&gt;
      - '8440:8440'&lt;br /&gt;
      - '9443:9443'&lt;br /&gt;
    restart: always&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./blynk/data:/config&lt;br /&gt;
      - ./blynk/backup:/data/&lt;br /&gt;
	  &lt;br /&gt;
networks:&lt;br /&gt;
    majordomo:&lt;br /&gt;
        driver: bridge&lt;br /&gt;
        ipam:&lt;br /&gt;
          config:&lt;br /&gt;
            - subnet: 172.1.0.0/16&lt;br /&gt;
Можно приступать к использованию majordomo, а так же прикладных модулей в виде mosquitto и zigbee2mqtt. Как вы можете заметить - дописал ещё пару сервисов для личного использования. Стак поднимался на архетектуре x86_64. Для АРМ-подобных процессоров инструкции могут отличаться от приведённых.&lt;br /&gt;
&lt;br /&gt;
Спасибо за внимание).&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
</feed>