{"id":311831,"date":"2020-10-21T15:01:08","date_gmt":"2020-10-21T15:01:08","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=311831"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=311831","title":{"rendered":"\u041a\u0430\u043a \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u043d\u0430 \u043f\u043e\u043a\u0443\u043f\u043a\u0435 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430: Docker Remote API via TLS"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\u0421\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0440\u0435\u0448\u0438\u043b\u0441\u044f \u043d\u0430 \u043f\u043e\u043a\u0443\u043f\u043a\u0443 \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 open-source \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (<a href=\"https:\/\/github.com\/Flipper-Zero\/Flipper-Android-App\">\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f Flipper<\/a>) \u0438 \u0441\u043c\u0435\u043d\u0430 \u043c\u0435\u0441\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u044b\u043d\u0443\u0434\u0438\u043b\u0438 \u043c\u0435\u043d\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043d\u043e\u0443\u0442\u0431\u0443\u043a \u0434\u043b\u044f \u043b\u0438\u0447\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439. \u0418 \u0442\u0443\u0442 \u0443\u0436\u0435 \u0436\u0430\u043b\u043a\u043e \u0431\u044b\u043b\u043e \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u043d\u043e\u0439 Hyndai Solaris \u0437\u0430 \u043d\u043e\u0443\u0442\u0431\u0443\u043a (\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435 \u0443 \u043c\u0435\u043d\u044f \u0442\u043e\u043f\u043e\u0432\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f 16&quot; MacBook).<\/p>\n<p>  <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/524424\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/sp\/5v\/98\/sp5v984c3d-yds5sn5ord2ayybi.png\"><\/a><\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0435\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u0443\u043c\u0435\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u044b\u043b \u0438 \u0432\u0437\u044f\u0442\u044c <s>\u043d\u0438\u0449\u0435\u0431\u0440\u043e\u0434\u0441\u043a\u0438\u0439<\/s> \u0441\u0430\u043c\u044b\u0439 \u0434\u0435\u0448\u0435\u0432\u044b\u0439 MacBook Air 13&quot; \u0437\u0430 80 \u0442\u044b\u0441\u044f\u0447 \u0440\u0443\u0431\u043b\u0435\u0439. \u041e\u0434\u043d\u0430\u043a\u043e, \u043d\u0430 mac Docker \u0441\u0436\u0438\u0440\u0430\u0435\u0442 \u043d\u0435\u043f\u043e\u043c\u0435\u0440\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u0443\u043c\u0430\u0442\u044c \u043a\u0430\u043a \u0436\u0435 \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443. \u0421\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u0440\u0438\u0448\u043b\u0430 \u0438\u0434\u0435\u044f \u0432\u044b\u043d\u0435\u0441\u0442\u0438 Docker Engine \u043a\u0443\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u043e\u043d\u043b\u0430\u0439\u043d. \u0421\u043a\u0430\u0437\u0430\u043d\u043e \u2014 \u0441\u0434\u0435\u043b\u0430\u043d\u043e.<a name=\"habracut\"><\/a><\/p>\n<h2><font color=\"#3AC1EF\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/font><\/h2>\n<p>  <\/p>\n<h3><font color=\"#3AC1EF\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Docker Engine \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440<\/font><\/h3>\n<p>  \u041d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b docker \u043d\u0430 Linux \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b. Docker \u043d\u0430 Mac \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 Linux, \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u043d\u0430 Linux \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044f\u0434\u0440\u043e \u0445\u043e\u0441\u0442-\u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/dev.to\/ericnograles\/why-is-docker-on-macos-so-much-worse-than-linux-flh\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u043c \u0432\u0430\u0436\u0435\u043d \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0438\u043d\u0433, \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0441\u0442\u0438 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0432 \u041c\u043e\u0441\u043a\u0432\u0435, \u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043d\u0435\u0442. <\/p>\n<p>  \u0418\u0442\u043e\u0433\u043e: Linux, \u041c\u043e\u0441\u043a\u0432\u0430, \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u0432\u0430\u0448\u0438\u0445 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0435\u0439. <br \/>  \u041d\u0430 <a href=\"http:\/\/ruvds.com\">ruvds.com<\/a> \u043a\u0430\u043a \u0440\u0430\u0437 \u0435\u0441\u0442\u044c \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u043e\u0439 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0442\u0430\u0440\u0438\u0444 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e. \u0422\u0430\u043a \u0436\u0435 \u043d\u0430 ruvds.com \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0435\u0442\u0430\u043f \u0441\u0440\u0430\u0437\u0443 \u0441 Docker CE \u043d\u0430 \u0431\u043e\u0440\u0442\u0443. \u041c\u0435\u043b\u043e\u0447\u044c, \u0430 \u043f\u0440\u0438\u044f\u0442\u043d\u043e.<\/p>\n<p>  \u0418\u0449\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u0438 \u043b\u043e\u0433\u0438\u043d \u0432 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yp\/mk\/bm\/ypmkbmepd6ckrlb0hlr1bqg8fsg.png\"><\/div>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qw\/ik\/24\/qwik248mbsdd-huv-gydhyx5hl0.png\"><\/div>\n<p>  \u0414\u0430\u043b\u044c\u0448\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0439\u0442\u0435 Docker. \u041e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0435\u0441\u0442\u044c <a href=\"https:\/\/docs.docker.com\/engine\/install\/ubuntu\/\">\u0442\u0443\u0442<\/a>, \u043d\u0438\u0436\u0435 \u043a\u0440\u0430\u0442\u043a\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u0437 \u043d\u0435\u0451 (\u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u0434\u0440\u0443\u0433 \u043d\u0435\u0442 <code>sudo<\/code>, \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e <code>apt-get install sudo<\/code> \u0438\u0437 \u043f\u043e\u0434 <code>su<\/code>):<\/p>\n<pre><code class=\"bash\">sudo apt-get update sudo apt-get install \\     apt-transport-https \\     ca-certificates \\     curl \\     gnupg-agent \\     software-properties-common curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository \\    &quot;deb [arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu \\    $(lsb_release -cs) \\    stable&quot; sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io<\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0443 docker:<\/p>\n<pre><code class=\"bash\">docker run hello-world<\/code><\/pre>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/de\/cw\/j4\/decwj4skdqwlifwbva8mblivcog.png\"><\/div>\n<p>  <\/p>\n<h3><font color=\"#3AC1EF\">\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439<\/font><\/h3>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c SSL \u043a\u043b\u044e\u0447\u0438. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0439\u0442\u0438 \u043f\u043e \u043b\u0435\u0433\u043a\u043e\u043c\u0443 \u0438 \u043f\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u043c\u0443 \u043f\u0443\u0442\u0438. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u043c\u0443 \u043f\u0443\u0442\u0438 (\u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443) \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 <a href=\"https:\/\/docs.docker.com\/engine\/security\/https\/\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Docker<\/a>. \u041d\u043e \u0434\u043e\u0431\u0440\u044b\u0435 \u043b\u044e\u0434\u0438 \u0437\u0430\u043f\u0438\u0445\u043d\u0443\u043b\u0438 \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 &lt;10mb.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0430\u043f\u043a\u0438, \u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0435\u043c \u0441\u043a\u043b\u0430\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435. \u041f\u0430\u043f\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u044b\u043c\u0438. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 (<code>\/etc\/docker\/ssl<\/code>) \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0438, \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 (<code>~\/.docker<\/code>) \u043a\u043b\u044e\u0447\u0438 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430.<\/p>\n<pre><code class=\"bash\">sudo mkdir -p \/etc\/docker\/ssl mkdir -p ~\/.docker<\/code><\/pre>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0438 CA \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435<\/p>\n<pre><code class=\"bash\">docker run --rm -v ~\/.docker:\/certs \\     paulczar\/omgwtfssl<\/code><\/pre>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f CA, \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435. \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0442\u0430\u043c \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e \u0442\u0435 IP, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443. <b>\u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0430\u043c IP \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430!<\/b><\/p>\n<pre><code class=\"bash\">sudo cp ~\/.docker\/ca.pem \/etc\/docker\/ssl\/ca.pem chown -R $USER ~\/.docker docker run --rm -v \/etc\/docker\/ssl:\/server \\     -v ~\/.docker:\/certs \\     -e SSL_IP=127.0.0.1,172.17.8.101,YOUR_IP \\     -e SSL_DNS=docker.local -e SSL_KEY=\/server\/key.pem \\     -e SSL_CERT=\/server\/cert.pem paulczar\/omgwtfssl<\/code><\/pre>\n<p>  <\/p>\n<h3><font color=\"#3AC1EF\">\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c docker daemon<\/font><\/h3>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u2014 \u043f\u0440\u043e\u043f\u0438\u0445\u043d\u0443\u0442\u044c \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 docker \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u043d\u0430\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438. \u041a\u0430\u043a \u0432\u044b \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u043d\u0435 \u0441\u0443\u0442\u044c \u0432\u0430\u0436\u043d\u043e, \u043d\u0430 Ubuntu \u043c\u043e\u0436\u043d\u043e \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<p>  <b>1.<\/b> \u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b <code>\/etc\/default\/docker<\/code> \u0432\u0430\u0448\u0438\u043c \u043b\u044e\u0431\u0438\u043c\u044b\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c<\/p>\n<pre><code class=\"bash\">nano \/etc\/default\/docker<\/code><\/pre>\n<p>  \u0418 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043a\u043e\u043d\u0435\u0446 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e `DOCKER_OPTS`. <b>\u041d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0443\u0434\u0430 \u0441\u0432\u043e\u0439 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 IP<\/b><\/p>\n<pre><code class=\"bash\"> DOCKER_OPTS=&quot;-H=YOUR_IP:2376 -H unix:\/\/\/var\/run\/docker.sock --tlsverify --tlscacert=\/etc\/docker\/ssl\/ca.pem --tlscert=\/etc\/docker\/ssl\/cert.pem --tlskey=\/etc\/docker\/ssl\/key.pem&quot;<\/code><\/pre>\n<p>  <b>2.<\/b> \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0430. \u041d\u0430 Ubuntu \u0444\u0430\u0439\u043b\u0438\u043a \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u0442\u043e <code>\/lib\/systemd\/system\/docker.service<\/code>. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0432 \u043f\u043e\u0434\u0441\u0435\u043a\u0446\u0438\u044e <code>[Service]<\/code>:<\/p>\n<pre><code class=\"bash\">EnvironmentFile=\/etc\/default\/docker<\/code><\/pre>\n<p>  \u0418 \u043c\u0435\u043d\u044f\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0440\u044f\u0434\u044b\u0448\u043a\u043e\u043c:<\/p>\n<pre><code class=\"bash\">ExecStart=\/usr\/bin\/dockerd -H fd:\/\/ $DOCKER_OPTS<\/code><\/pre>\n<p>  \u0414\u0430, \u043f\u0443\u043d\u043a\u0442 1 \u0431\u044b\u043b \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438 \u0441\u044e\u0434\u0430, \u043d\u043e \u0438\u0445 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0438 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430.<\/p>\n<p>  <b>3.<\/b> \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0435\u043c\u043e\u043d\u0430<\/p>\n<pre><code class=\"bash\">sudo systemctl daemon-reload sudo systemctl restart docker<\/code><\/pre>\n<p>  <b>4.<\/b> \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0432 \u043b\u043e\u0433\u0430\u0445 \u0434\u0435\u043c\u043e\u043d\u0430 \u0447\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/p>\n<pre><code class=\"bash\">journalctl -u docker.service -f<\/code><\/pre>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/e2\/mv\/vo\/e2mvvov0ohzeogbil04gvtzqyi4.png\"><\/div>\n<p>  <b>5.<\/b> \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 tls:<\/p>\n<pre><code class=\"bash\">export DOCKER_HOST=tcp:\/\/YOUR_IP:2376 export DOCKER_TLS_VERIFY=1 export DOCKER_CERT_PATH=~\/.docker docker info<\/code><\/pre>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/nc\/um\/54\/ncum542d_xasethu1crgbhbydpg.png\"><\/div>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442!<\/p>\n<h2><font color=\"#3AC1EF\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435<\/font><\/h2>\n<p>  \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443 \u0441 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438 \u043d\u0430 \u0441\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043b\u044e\u0431\u044b\u043c \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0435\u0440\u0435\u0437 `scp`:<\/p>\n<p>  \u041d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435:<\/p>\n<pre><code class=\"bash\">mkdir \/tmp\/cert-for-docker &amp;&amp; cp -v ~\/.docker\/{ca,cert,key}.pem \/tmp\/cert-for-docker<\/code><\/pre>\n<p>  \u041d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435:<\/p>\n<pre><code class=\"bash\">scp -r root@YOUR_IP:\/tmp\/cert-for-docker ~\/.docker<\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u0443 \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 docker.<\/p>\n<h3><font color=\"#3AC1EF\">Mac OS CLI<\/font><\/h3>\n<p>  \u0422\u0443\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u0432\u0430\u0448\u0435\u0439 \u0441\u0440\u0435\u0434\u0435 \u0438 \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u0441\u0442\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441: \u00ab\u041e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u0442\u044c \u0433\u043e\u043b\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442? \u041d\u0430\u043c \u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u044f\u0436\u0435\u043b\u043e\u0432\u0435\u0441\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u0434 2\u0413\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 Docker Engine?\u00bb<\/p>\n<p>  \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0435\u0441\u0442\u044c! \u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 Docker \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0438 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0443\u044e \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 binary \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0434 macos. \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <a href=\"https:\/\/docs.docker.com\/engine\/install\/binaries\/\">\u0442\u0443\u0442<\/a>, \u043d\u043e \u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0442\u0443\u0442 \u043a\u0440\u0430\u0442\u043a\u0443\u044e \u0432\u044b\u0436\u0438\u043c\u043a\u0443:<\/p>\n<p>  <b>1.<\/b> \u041a\u0430\u0447\u0430\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0438\u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0432\u0430\u0448\u0435\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 (\u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>docker info<\/code>) \u0431\u0438\u043d\u0430\u0440\u0438 \u043f\u043e <a href=\"https:\/\/download.docker.com\/mac\/static\/stable\/x86_64\/\">\u0441\u0441\u044b\u043b\u043a\u0435<\/a> \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c<br \/>  <b>2. <\/b>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0431\u0438\u043d\u0430\u0440\u044c \u0432 \u043f\u0430\u043f\u043a\u0443 <code>\/usr\/local\/bin\/<\/code> \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e:  <\/p>\n<pre><code class=\"bash\">sudo cp docker\/docker \/usr\/local\/bin\/<\/code><\/pre>\n<p>  <b>3.<\/b> \u041f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 <code>~\/.bashrc<\/code> \u0438\u043b\u0438 <code>~\/.zshrc<\/code> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. <b>\u041d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0439 IP \u0438 \u043f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 \u0441 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c<\/b>:  <\/p>\n<pre><code class=\"bash\">export DOCKER_HOST=tcp:\/\/YOUR_IP:2376 export DOCKER_CERT_PATH=PATH_TO_CERT export DOCKER_TLS_VERIFY=1<\/code><\/pre>\n<p>  <b>4.<\/b> \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 (\u0448\u043e\u0431 \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430), \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre><code class=\"bash\">docker info docker run hello-world<\/code><\/pre>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ow\/1z\/nv\/ow1znvx58sw0tv3ufshhvyfiw14.png\"><\/div>\n<p>  \u041a\u0440\u0430\u0441\u043e\u0442\u0430!<\/p>\n<h3><font color=\"#3AC1EF\">Jetbrains IDEs (PyCharm, IDEA, Android Studio e.t.c)<\/font><\/h3>\n<p>  \u0421\u0442\u0443\u0434\u0438\u0438 Jetbrains \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 docker via tls. \u041d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u044d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0432 <code>Preference-&gt;Build, Execution, Deployment-&gt;Docker-&gt;+<\/code>. \u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c <code>TCP socket<\/code> \u0438 \u0432\u0432\u0435\u0441\u0442\u0438 \u0442\u0430\u043c \u0441\u0432\u043e\u0438 \u0434\u0430\u043d\u043d\u044b\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0432\u043e\u0445.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/sd\/cr\/gl\/sdcrglqfxq_s8ht3gvr0mev_w4s.png\"><\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u043a \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u043e, \u0442\u043e \u0432\u044b\u043b\u0435\u0437\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430:  <\/p>\n<blockquote><p>Error response from daemon: Client sent an HTTP request to an HTTPS server.<br \/>  errors pretty printing info<\/p><\/blockquote>\n<p> \u0418\u043b\u0438  <\/p>\n<blockquote><p>Cannot connect: Status 400: Client sent an HTTP request to an HTTPS server<\/p><\/blockquote>\n<p> \u041d\u0443\u0436\u043d\u043e \u044f\u0432\u043d\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0435\u0439 \u0441\u0442\u0443\u0434\u0438\u0438 \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <code>https<\/code>:  <\/p>\n<blockquote><p><a href=\"https:\/\/YOUR_IP\">YOUR_IP<\/a>:2376<\/p><\/blockquote>\n<p> \u041f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u043d\u043e.<\/p>\n<h2><font color=\"#3AC1EF\">\u0411\u043e\u043d\u0443\u0441 (Portainer)<\/font><\/h2>\n<p>  \u0427\u0442\u043e\u0431\u044b \u044d\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0438 \u0443\u0436\u0435 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u044f \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043d\u0430 \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 Portainer. \u0421\u0442\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u043d \u0432 \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<pre><code class=\"bash\">docker volume create portainer_data docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v \/var\/run\/docker.sock:\/var\/run\/docker.sock -v portainer_data:\/data portainer\/portainer-ce<\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430 <code>YOUR_IP:9000<\/code> \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0441\u0435\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0438 \u0443\u0431\u0438\u0442\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b. \u041f\u043e\u043c\u043d\u0438\u0442\u0435 \u043a\u0430\u043a \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438 <code>hello-world<\/code>? \u041e\u043d \u0442\u0443\u0442 \u0438 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u044f\u043c\u043e \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xn\/su\/se\/xnsuse7sjsjnwdymdg5ohiy2aho.png\"><\/div>\n<p>  \u0421\u0430\u043c Portainer \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043a \u043b\u044e\u0431\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u0441 Docker \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0432\u0441\u0435\u0445 \u0432\u0430\u0448\u0438\u0445 \u043c\u0430\u0448\u0438\u043d \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430. <a href=\"https:\/\/github.com\/stefanprodan\/dockprom\">\u041c\u0435\u0442\u0440\u0438\u043a\u0430<\/a> (Grafana+Prometheus+\u0410\u043b\u0435\u0440\u0442\u044b) \u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a \u0436\u0435 \u043b\u0435\u0433\u043a\u043e \u0434\u0432\u0443\u043c\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 (\u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <code>gi <\/code> \u0438 <code>docker-compose<\/code>):<\/p>\n<pre><code class=\"bash\">git clone https:\/\/github.com\/stefanprodan\/dockprom &amp;&amp; cd dockprom ADMIN_USER=admin ADMIN_PASSWORD=admin docker-compose up -d<\/code><\/pre>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yq\/mz\/me\/yqmzmednr_hx9rb0s4vnusespgg.png\"><\/div>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/te\/vp\/qf\/tevpqfzglkgssdmchylgppk-x8u.png\"><\/div>\n<p>  \u0422\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0442 \u0434\u043b\u044f Storage \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c <code>sum(node_filesystem_free_bytes{fstype=&quot;aufs&quot;})<\/code> \u043d\u0430 <code>sum(node_filesystem_free_bytes{fstype=&quot;ext4&quot;})<\/code><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yv\/fd\/wa\/yvfdwal47usiauaxh0r6uljjtkg.png\"><\/div>\n<h2><font color=\"#3AC1EF\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/font><\/h2>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u044f \u043f\u043e\u043a\u0443\u043f\u0430\u043b \u043d\u043e\u0443\u0442\u0431\u0443\u043a, \u044f \u043d\u0435 \u0442\u0435\u0448\u0438\u043b \u0441\u0435\u0431\u044f \u043d\u0430\u0434\u0435\u0436\u0434\u043e\u0439, \u0447\u0442\u043e \u043c\u043d\u0435 \u0435\u0433\u043e \u0445\u0432\u0430\u0442\u0438\u0442 \u043f\u043e\u0434 \u043b\u044e\u0431\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u043c\u043d\u0435 \u0435\u0433\u043e \u0445\u0432\u0430\u0442\u0438\u0442 \u043d\u0430 Java\/Android-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443. \u041d\u043e \u044f \u0431\u044b\u043b \u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0443\u0434\u0438\u0432\u043b\u0435\u043d, \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0432\u0441\u0435 \u043c\u043e\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u044b, \u043b\u0438\u0447\u043d\u044b\u0435 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e open-source \u043b\u0435\u0442\u0430\u044e\u0442 \u0432 IDE. \u041e\u0434\u043d\u0430\u043a\u043e \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043b, \u0447\u0442\u043e \u043f\u0440\u0438 \u0432\u0441\u0435\u0439 \u043c\u043e\u0435\u0439 \u043b\u044e\u0431\u0432\u0438 \u043a \u044d\u0442\u043e\u0439 \u043f\u0438\u0448\u0443\u0449\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043a\u0435, Docker \u043e\u043d\u0430 \u043d\u0435 \u0432\u044b\u0432\u0435\u0437\u0435\u0442. \u042f \u0431\u044b\u043b \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u0434 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0432 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 docker. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0447\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043d\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0443\u044e, \u0432\u0441\u0435\u0440\u0430\u0432\u043d\u043e Docker \u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u0431\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0431\u044b\u043b\u043e \u043c\u0430\u043b\u043e \u0441\u043c\u044b\u0441\u043b\u0430. \u0412 \u043e\u0431\u0449\u0435\u043c, \u044f \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u0432\u043e\u043b\u0435\u043d. -1 \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0438 \u0442\u044f\u0436\u0435\u043b\u044b\u0439 \u043d\u043e\u0443\u0442\u0431\u0443\u043a.<\/p>\n<p>  \u041a \u0442\u043e\u043c\u0443 \u0436\u0435, \u043e\u0432\u0435\u0440\u0445\u0435\u0434 Docker \u043d\u0430 \u043b\u0438\u043d\u0443\u043a\u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443 \u0437\u0430 240 \u0440\u0443\u0431\u043b\u0435\u0439 \u0432 \u043c\u0435\u0441\u044f\u0446 \u0443 RuVDS \u0432 \u0420\u0424 (\u0430 \u0441\u043e \u0441\u043a\u0438\u0434\u043a\u043e\u0439 \u043f\u043e \u043f\u0440\u043e\u043c\u043e\u043a\u043e\u0434\u0443 <b>HABR<\/b> -10% \u0438 \u0442\u043e\u0433\u043e \u043c\u0435\u043d\u044c\u0448\u0435) \u0438 \u043d\u0435 \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f \u0437\u0430 \u043f\u0438\u043d\u0433 \u0438 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 UI. \u041f\u043b\u044e\u0441\u043e\u043c \u0438\u0434\u0435\u0442 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 IP (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0438 \u0434\u0435\u0440\u0436\u0430\u0442\u044c dev-\u043f\u0435\u0441\u043e\u043a), \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 VPN \u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0441\u043e\u0447\u0430\u0439\u0448\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430. \u0412 \u0446\u0435\u043b\u043e\u043c, \u044f \u0434\u043e\u0432\u043e\u043b\u0435\u043d.<\/p>\n<h2><font color=\"#3AC1EF\">\u0420\u0435\u0441\u0443\u0440\u0441\u044b:<\/font><\/h2>\n<p>  <b><\/p>\n<ul>\n<li><a href=\"https:\/\/tech.paulcz.net\/2016\/01\/secure-docker-with-tls\/\">\u0421\u0442\u0430\u0442\u044c\u044f 2016 \u0433\u043e\u0434\u0430 \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0434\u043b\u044f CoreOS<\/a><\/li>\n<li><a href=\"https:\/\/gist.github.com\/jupeter\/b39e11521452129af2af85cc855c91d7\">Docker Remote API \u0431\u0435\u0437 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/a><\/li>\n<li>\u0421\u0430\u0439\u0442 Docker \u0438 \u0432\u0441\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u044b\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0441\u0441\u044b\u043b\u043a\u0438 \u0432 \u0441\u0430\u043c\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/li>\n<\/ul>\n<p><\/b><br \/>  <a href=\"http:\/\/ruvds.com\/ru-rub?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=LionZXY&amp;utm_content=kak_sekonomit_na_pokupke_noutbuka_docker_remote_api_via_tls#order\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ou\/g5\/kh\/oug5kh6sjydt9llengsiebnp40w.png\"><\/a><\/p>\n<p>  <a href=\"http:\/\/ruvds.com\/ru-rub\/news\/read\/123?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=LionZXY&amp;utm_content=kak_sekonomit_na_pokupke_noutbuka_docker_remote_api_via_tls\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/3p\/iw\/1j\/3piw1j3wd_cgmzq9sefgferaumu.png\"><\/div>\n<p><\/a><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/524424\/\"> https:\/\/habr.com\/ru\/company\/ruvds\/blog\/524424\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\u0421\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0440\u0435\u0448\u0438\u043b\u0441\u044f \u043d\u0430 \u043f\u043e\u043a\u0443\u043f\u043a\u0443 \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 open-source \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (<a href=\"https:\/\/github.com\/Flipper-Zero\/Flipper-Android-App\">\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f Flipper<\/a>) \u0438 \u0441\u043c\u0435\u043d\u0430 \u043c\u0435\u0441\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u044b\u043d\u0443\u0434\u0438\u043b\u0438 \u043c\u0435\u043d\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043d\u043e\u0443\u0442\u0431\u0443\u043a \u0434\u043b\u044f \u043b\u0438\u0447\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439. \u0418 \u0442\u0443\u0442 \u0443\u0436\u0435 \u0436\u0430\u043b\u043a\u043e \u0431\u044b\u043b\u043e \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u043d\u043e\u0439 Hyndai Solaris \u0437\u0430 \u043d\u043e\u0443\u0442\u0431\u0443\u043a (\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435 \u0443 \u043c\u0435\u043d\u044f \u0442\u043e\u043f\u043e\u0432\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f 16&quot; MacBook).<\/p>\n<p>  <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/524424\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/sp\/5v\/98\/sp5v984c3d-yds5sn5ord2ayybi.png\"><\/a><\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0435\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u0443\u043c\u0435\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u044b\u043b \u0438 \u0432\u0437\u044f\u0442\u044c <s>\u043d\u0438\u0449\u0435\u0431\u0440\u043e\u0434\u0441\u043a\u0438\u0439<\/s> \u0441\u0430\u043c\u044b\u0439 \u0434\u0435\u0448\u0435\u0432\u044b\u0439 MacBook Air 13&quot; \u0437\u0430 80 \u0442\u044b\u0441\u044f\u0447 \u0440\u0443\u0431\u043b\u0435\u0439. \u041e\u0434\u043d\u0430\u043a\u043e, \u043d\u0430 mac Docker \u0441\u0436\u0438\u0440\u0430\u0435\u0442 \u043d\u0435\u043f\u043e\u043c\u0435\u0440\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u0443\u043c\u0430\u0442\u044c \u043a\u0430\u043a \u0436\u0435 \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443. \u0421\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u0440\u0438\u0448\u043b\u0430 \u0438\u0434\u0435\u044f \u0432\u044b\u043d\u0435\u0441\u0442\u0438 Docker Engine \u043a\u0443\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u043e\u043d\u043b\u0430\u0439\u043d. \u0421\u043a\u0430\u0437\u0430\u043d\u043e \u2014 \u0441\u0434\u0435\u043b\u0430\u043d\u043e.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-311831","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/311831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=311831"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/311831\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=311831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=311831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=311831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}