{"id":362808,"date":"2024-05-21T01:42:44","date_gmt":"2024-05-21T01:42:44","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=362808"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=362808","title":{"rendered":"<span>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c Matlab \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 GUI \u0432 \u041e\u0421 GNU\/Linux<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h3>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/h3>\n<ul>\n<li>\n<p><a href=\"#intro\" rel=\"noopener noreferrer nofollow\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#theory\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f<\/a> <\/p>\n<ul>\n<li>\n<p><a href=\"#x-theory\" rel=\"noopener noreferrer nofollow\">\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u00ab\u0442\u0435\u043e\u0440\u0438\u0438\u00bb \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u00ab\u0438\u043a\u0441\u044b\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#x-security-basics\" rel=\"noopener noreferrer nofollow\">\u041e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \/ \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 X-\u0441\u0435\u0440\u0432\u0435\u0440\u0435<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#prac\" rel=\"noopener noreferrer nofollow\">\u00ab\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c\u00bb<\/a> <\/p>\n<ul>\n<li>\n<p><a href=\"#internal-docker-network\" rel=\"noopener noreferrer nofollow\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 Docker-\u0441\u0435\u0442\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#rc-local-systemd\" rel=\"noopener noreferrer nofollow\">\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 <code>\/etc\/rc.local<\/code> \u0432 systemd<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#iptables\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0430\u0439\u0435\u0440\u0432\u043e\u043b\u0430 <code>iptables<\/code><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#xorg-tcp\" rel=\"noopener noreferrer nofollow\">\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 TCP\/IP \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u0438\u043c\u00bb xorg-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#dockerfile\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 Docker-\u043e\u0431\u0440\u0430\u0437\u0430: Dockerfile<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#docker-create\" rel=\"noopener noreferrer nofollow\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438 \u0435\u0433\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#using-container\" rel=\"noopener noreferrer nofollow\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#matlab\" rel=\"noopener noreferrer nofollow\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Matlab<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#anneces\" rel=\"noopener noreferrer nofollow\">P.S. \u0438\u043b\u0438 \u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/a> <\/p>\n<ul>\n<li>\n<p><a href=\"#annex-xwayland-socat\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 1: Xwayland \u0438 <code>socat<\/code><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#annex-unix-socket-to-docker-volume\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 2: \u041c\u0435\u0442\u043e\u0434 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f TCP\/IP-\u0441\u0435\u0442\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#annex-x11docker\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 3: x11docker<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#annex-systemd-run-matlab\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 4: \u0437\u0430\u043f\u0443\u0441\u043a Matlab \u0447\u0435\u0440\u0435\u0437 systemd-run<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#pps-xhost-MIT-SHM\" rel=\"noopener noreferrer nofollow\">P.P.S. xhost \u0438 MIT-SHM<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#refs\" rel=\"noopener noreferrer nofollow\">\u0421\u0421\u042b\u041b\u041a\u0418<\/a><\/p>\n<\/li>\n<\/ul>\n<h3>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h3>\n<p><a class=\"anchor\" name=\"intro\" id=\"intro\"><\/a><\/p>\n<p>\u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435: \u043a\u0430\u043a \u043e\u0442 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430, \u0442\u0430\u043a \u0438 \u043e\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0431\u044b\u043b Matlab. \u041f\u0438\u0448\u0443\u0442, \u0447\u0442\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u043e\u043d \u0441\u0442\u0430\u043b \u0448\u0438\u0431\u043a\u043e \u00ab\u0443\u043c\u043d\u044b\u043c\u00bb: \u0441\u0430\u043c \u0431\u0435\u0437 \u0441\u043f\u0440\u043e\u0441\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043b\u0435\u0437\u0435\u0442 \u0432 \u0441\u0435\u0442\u044c \u0438 \u0447\u0435\u043c-\u0442\u043e \u0442\u0430\u043c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0433\u043e\u0441\u0442\u0435\u0432\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \/ \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0443\u044e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e (\u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 VirtualBox) \u2014 \u044d\u0442\u043e, \u0418\u041c\u0425\u041e, \u00abtoo much\u00bb. Docker \u043f\u043e\u0434\u043e\u0448\u0435\u043b \u0431\u044b \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043b\u0443\u0447\u0448\u0435, \u0442.\u043a. \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u043e \u0436\u0435 \u044f\u0434\u0440\u043e \u041e\u0421 \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \/ \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b. \u041e\u0434\u043d\u0430\u043a\u043e Docker \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0427\u0442\u043e \u0436, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u044d\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0442\u0430\u043a\u0438 Matlab \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0441 \u043f\u043e\u043b\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb \u0438 GUI.<\/p>\n<p><em>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435:<\/em> \u0434\u0430\u043b\u0435\u0435 \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0451\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431 \u041e\u0421 GNU\/Linux. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e &#8212; Ubuntu 20.04 LTS (Focal Fossa) \u043d\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 x86_64 (\u0432\u0435\u0440\u0441\u0438\u044f \u044f\u0434\u0440\u0430: 5.15.0-88-generic) \u0441\u043e \u0441\u0440\u0435\u0434\u043e\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0441\u0442\u043e\u043b\u0430 MATE (\u0432\u0435\u0440\u0441\u0438\u0438 1.24.0) \u0438 \u043e\u043a\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 X  Window System xorg (\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f X11R7.7, xserver-xorg version: 1:7.7+19ubuntu14, xserver-xorg-core version: 2:1.20.13-1ubuntu1~20.04.9).<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043d\u0438\u0436\u0435\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435. \u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, Docker \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 TCP\/IP-\u0441\u0435\u0442\u0438; Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c Docker-\u0441\u0435\u0442\u044f\u043c, \u0442\u0430\u043a \u0438 \u043a \u0441\u0435\u0442\u044f\u043c \u0441 \u0432\u044b\u0445\u043e\u0434\u0430\u043c \u0432\u043e \u00ab\u0432\u043d\u0435\u0448\u043a\u0443\u00bb (\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 (host Operating System, \u0442.\u0435. \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0421\u0438\u0441\u0442\u0435\u043c\u044b, \u043d\u0430\u0442\u0438\u0432\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440)) \u2014 \u00ab\u043b\u043e\u043a\u0430\u043b\u043a\u0443\u00bb \u0438\/\u0438\u043b\u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442.<\/p>\n<p>\u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u00ab\u0438\u043a\u0441\u044b\u00bb (X Window System) \u2014 \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440. \u0421\u0435\u0440\u0432\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0438\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u043e\u043c\u0443 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u043c\u0443 X-\u0434\u0438\u0441\u043f\u043b\u0435\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0443\u044e, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443, \u043c\u044b\u0448\u044c \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 (\u043d\u043e \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044f\u0441\u044c \u044d\u0442\u0438\u043c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435). \u041a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u0438\u0445 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0443\u043a\u0438-\u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <code>~\/.Xauthority<\/code>. \u0410\u0434\u0440\u0435\u0441 X-\u0434\u0438\u0441\u043f\u043b\u0435\u044f, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f, \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>DISPLAY<\/code>. \u0412 X Window System \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u0430\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c: \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u0432 \u0441\u0435\u0442\u0438, \u0430 \u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0441\u0435\u0442\u0438 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, xorg (\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0437\u0434\u0435\u0441\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d) \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 TCP\/IP, \u0445\u043e\u0442\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c X-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0447\u0435\u0440\u0435\u0437 unix-socket. \u0418\u0437 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u00ab\u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u044b\u0445\u00bb \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432 GNU\/Linux \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 TCP\/IP X-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u2014 \u0438 \u0434\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u2014 \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0434\u043b\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043e\u0442 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u041e\u0421, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e:<\/p>\n<ol>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e (\u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 Docker \u2014 &#171;internal&#187;, \u0442.\u0435. \u00ab\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e\u00bb) \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e Docker-\u0441\u0435\u0442\u044c, \u0442.\u0435. \u0441\u0435\u0442\u044c \u0431\u0435\u0437 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432\u043e \u0432\u043d\u0435: \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0438 \u00ab\u043b\u043e\u043a\u0430\u043b\u043a\u0443\u00bb. \u0412 \u044d\u0442\u0443 \u0441\u0435\u0442\u044c \u0432\u043e\u0439\u0434\u0443\u0442 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u0430\u044f\u00bb \u043c\u0430\u0448\u0438\u043d\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f xorg, \u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0433\u0434\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0433\u043e\u00bb xorg.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u043c\u0443\u00bb xorg \u043f\u043e TCP\/IP \u2014 \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 Docker-\u0441\u0435\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c Docker-\u043e\u0431\u0440\u0430\u0437 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 GUI.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f DISPLAY \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 (\u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441 \u0445\u043e\u0441\u0442\u0430).<\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0438\u0437 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u043c\u00bb X-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 (\u0442.\u0435. \u043d\u0430 X-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421).<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043a \u00ab\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439\u00bb Docker-\u0441\u0435\u0442\u0438, \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0442 Docker-\u0441\u0435\u0442\u0438 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u0441\u0435\u0442\u044c <code>bridge<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 <code>docker0<\/code> \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421, \u0438 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u00ab\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439\u00bb); \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u043a \u044d\u0442\u043e\u0439 \u043d\u0435-\u00ab\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439\u00bb \u0441\u0435\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0444\u0442 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043d\u0430\u043c \u0441\u043e\u0444\u0442 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438.<\/p>\n<\/li>\n<\/ol>\n<hr\/>\n<h3>\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f<\/h3>\n<p><a class=\"anchor\" name=\"theory\" id=\"theory\"><\/a><\/p>\n<h4>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u00ab\u0442\u0435\u043e\u0440\u0438\u0438\u00bb \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u00ab\u0438\u043a\u0441\u044b\u00bb<\/h4>\n<p><a class=\"anchor\" name=\"x-theory\" id=\"x-theory\"><\/a><\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0449\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b X-\u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 xorg, \u0438 \u0447\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 TCP\/IP \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 X-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0443\u0436\u0435 <em>\u0412\u041a\u041b\u042e\u0427\u0415\u041d\u0410<\/em>.<\/p>\n<p>\u0412\u0432\u0435\u0434\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e. \u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0435\u0430\u043d\u0441\u043e\u043c \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0435\u0430\u043d\u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u043b\u0441\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c Display Manager&#8217;\u0430. \u0421\u0430\u043c\u043e\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0430\u043d\u0441\u0430, \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u2014 \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c\u00bb. \u0410\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0435\u0430\u043d\u0441\u043e\u043c \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u0442 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0435\u0430\u043d\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u044b\u043c X-\u0434\u0438\u0441\u043f\u043b\u0435\u0435\u043c, \u0442.\u0435. \u043e\u043a\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0435 \u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0432\u0432\u043e\u0434\u0430 (\u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439, \u043c\u044b\u0448\u044c\u044e \u0438 \u0442.\u043f.). \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u0435\u0430\u043d\u0441\u0430 \u043d\u0430\u0437\u043e\u0432\u0451\u043c \u00ab\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c\u00bb.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c Display Manager&#8217;\u0430 \u043b\u043e\u0433\u0438\u043d\u0438\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c (\u043f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 <code>user-1<\/code>)? \u0412\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u043d\u0438\u0436\u0435 \u043b\u0438\u0441\u0442\u0438\u043d\u0433:<\/p>\n<pre><code class=\"bash\">$ pgrep X | xargs ps -lfwwwp F S UID          PID    PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY        TIME CMD 4 S root        1479    1464  0  80   0 - 308106 -     \u0444\u0435\u043221 tty7   10:00 \/usr\/lib\/xorg\/Xorg -listen inet -listen unix :0 -seat seat0 -auth \/var\/run\/lightdm\/root\/:0 -listen tcp vt7 -novtswitch <\/code><\/pre>\n<p>\u041c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e Display Manager (\u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 LightDM) \u043f\u043e\u0440\u043e\u0434\u0438\u043b \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 Xorg. \u0414\u043b\u044f \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0435\u043c\u0443 \u0431\u044b\u043b \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d 7-\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u2014 <code>tty7<\/code> (\u043d\u0430 \u043d\u0435\u0433\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043f\u0430\u0441\u0442\u044c, \u043d\u0430\u0436\u0430\u0432 <code>Ctrl + Alt + F7<\/code>, \u0435\u0441\u043b\u0438 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043a\u0438\u043d\u0443\u043b\u0438 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 tty). \u0415\u0433\u043e \u043d\u043e\u043c\u0435\u0440 \u0437\u043d\u0430\u0447\u0438\u0442\u0441\u044f \u0432 \u043f\u043e\u043b\u0435 <code>TTY<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 \u043e\u043f\u0446\u0438\u0438 <code>-listen tcp vt7<\/code>. <code>-listen unix :0<\/code> \u2014 \u044d\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u0430, \u043e\u043d \u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>DISPLAY<\/code> \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:<\/p>\n<pre><code class=\"bash\">$ echo $DISPLAY :0 <\/code><\/pre>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0443 \u043d\u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0439: <code>\/tmp\/.X11-unix\/X0<\/code><\/p>\n<pre><code class=\"bash\">$ stat \/tmp\/.X11-unix\/X0    \u0424\u0430\u0439\u043b: \/tmp\/.X11-unix\/X0   \u0420\u0430\u0437\u043c\u0435\u0440: 0             \u0411\u043b\u043e\u043a\u043e\u0432: 0          \u0411\u043b\u043e\u043a \u0412\/\u0412: 4096   \u0441\u043e\u043a\u0435\u0442 \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e: 10302h\/66306d       \u0418\u043d\u043e\u0434\u0430: 3021621     \u0421\u0441\u044b\u043b\u043a\u0438: 1 \u0414\u043e\u0441\u0442\u0443\u043f: (0777\/srwxrwxrwx)  Uid: (    0\/    root)   Gid: (    0\/    root) ... ... ... <\/code><\/pre>\n<p>\u042d\u0442\u043e\u043c\u0443 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043d\u0430 \u043f\u0440\u043e\u0441\u043b\u0443\u0448\u043a\u0443 TCP \u043f\u043e\u0440\u0442 6000 (\u0435\u0441\u043b\u0438 xorg&#8217;\u0443 \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u0430 \u043e\u043f\u0446\u0438\u044f <code>-listen inet<\/code>).<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u043f\u0446\u0438\u044e <code>-auth \/var\/run\/lightdm\/root\/:0<\/code> \u041e\u043d\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"bash\">$ sudo stat \/var\/run\/lightdm\/root\/:0   \u0424\u0430\u0439\u043b: \/var\/run\/lightdm\/root\/:0   \u0420\u0430\u0437\u043c\u0435\u0440: 61            \u0411\u043b\u043e\u043a\u043e\u0432: 8          \u0411\u043b\u043e\u043a \u0412\/\u0412: 4096   \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e: 19h\/25d     \u0418\u043d\u043e\u0434\u0430: 1694        \u0421\u0441\u044b\u043b\u043a\u0438: 1 \u0414\u043e\u0441\u0442\u0443\u043f: (0600\/-rw-------)  Uid: (    0\/    root)   Gid: (    0\/    root) ... ... ... <\/code><\/pre>\n<p>\u042d\u0442\u043e \u2014 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0438\u043c\u0435\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e root (\u041f\u0440\u043e\u0446\u0435\u0441\u0441 Xorg \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 root&#8217;\u0430!). \u041f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 <code>Xorg<\/code> Display Manager&#8217;\u043e\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0430\u044f (\u043f\u0441\u0435\u0432\u0434\u043e-)\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c 16-\u0440\u0438\u0447\u043d\u044b\u0445 \u0446\u0438\u0444\u0440, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u0430\u044f <code>MIT-MAGIC-COOKIE-1<\/code>. \u041a\u043e\u043f\u0438\u044f \u044d\u0442\u043e\u0439 \u0436\u0435 \u0441\u0430\u043c\u043e\u0439 <code>MIT-MAGIC-COOKIE-1<\/code> \u0432\u044b\u0434\u0430\u0435\u0442\u0441\u044f \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e\u00bb: \u043e\u043d\u0430 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0435\u0433\u043e \u0444\u0430\u0439\u043b <code>~\/.Xauthority<\/code>. \u0415\u0441\u043b\u0438 <code>MIT-MAGIC-COOKIE-1<\/code> \u0438\u0437 <code>~\/.Xauthority<\/code> \u0438 \u0444\u0430\u0439\u043b\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u043f\u0446\u0438\u044f <code>-auth<\/code> \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 <code>Xorg<\/code>, \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u2014 \u0442\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f x-\u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0430 x-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439, \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442\u0441\u044f. \u0423\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0442\u0430\u043a, \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u044d\u0442\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0435. (\u0421\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435 \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435, \u0432 \u0447\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u0432\u044b\u0432\u043e\u0434 <code>cat ~\/.Xauthority<\/code>, \u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0432\u0438\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>xauth list<\/code>.)<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ xauth -v Using authority file \/home\/user-1\/.Xauthority  # \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u043e\u0439 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d, \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u0430 \u043e\u043f\u0446\u0438\u044f -f &lt;\/path\/to\/file>  user-1@ThinkPad:~$ xauth list ThinkPad\/unix:0  MIT-MAGIC-COOKIE-1  e996a1ef44c240520b877abfc7adadd9  user-1@ThinkPad:~$ sudo xauth -f \/var\/run\/lightdm\/root\/:0 list ThinkPad\/unix:0  MIT-MAGIC-COOKIE-1  e996a1ef44c240520b877abfc7adadd9 <\/code><\/pre>\n<p><em>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/em><br \/> \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 <code>~\/.Xauthority<\/code> \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0439 <code>MIT-MAGIC-COOKIE-1<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ xauth  Using authority file \/home\/user-1\/.Xauthority xauth> list ThinkPad\/unix:0  MIT-MAGIC-COOKIE-1  e996a1ef44c240520b877abfc7adadd9 ThinkPad\/unix:5  MIT-MAGIC-COOKIE-1  da5cf526102461bda51754df47dc3005 xauth> quit <\/code><\/pre>\n<p>\u0422.\u0435. \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 x-\u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>DISPLAY<\/code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a \u043a\u0430\u043a\u043e\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e x-\u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0444\u0430\u0439\u043b <code>~\/.Xauthority<\/code> (\u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e) \u043f\u0435\u0440\u0441\u0438\u0441\u0442\u0438\u0440\u0443\u0435\u0442 \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u043c\u0438 \u041e\u0421. <code>MIT-MAGIC-COOKIE-1<\/code> \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u044f\u0432\u043d\u043e \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u043d\u043e\u043c\u0435\u0440\u0443 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u0430 (\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f Display Manager&#8217;\u043e\u043c \u043f\u0440\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u043c \u043b\u043e\u0433\u0438\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443), \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 <code>MIT-MAGIC-COOKIE-1<\/code> \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u0432 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u043c\u0438.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u0432\u0448\u0435\u043c\u0443\u0441\u044f \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e\u00bb \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u0441\u044f: \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b <code>tty7<\/code>, \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a x-\u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u2014 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442 <code>\/tmp\/.X11-unix\/X0<\/code> (\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 <code>DISPLAY = :0<\/code>) \u0438 TCP-\u043f\u043e\u0440\u0442 6000, \u0430 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043f\u0438\u044f <code>MIT-MAGIC-COOKIE-1<\/code> \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 <code>\/var\/run\/lightdm\/root\/:0<\/code>.<\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u043c\u0441\u044f \u0432\u0442\u043e\u0440\u044b\u043c (\u0435\u0449\u0435 \u043e\u0434\u043d\u0438\u043c) \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c\u00bb \u0447\u0435\u0440\u0435\u0437 LightDM, \u041d\u0415 \u0440\u0430\u0437\u043b\u043e\u0433\u0438\u043d\u0438\u0432\u0430\u044f\u0441\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0435\u0440\u0432\u044b\u043c (\u00ab\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u043a\u0440\u0430\u043d\u00bb \u2192 \u00ab\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u00bb). \u041d\u0430\u0437\u043e\u0432\u0451\u043c \u0435\u0433\u043e <code>user-2<\/code>.<\/p>\n<pre><code class=\"bash\">$ pgrep X | xargs ps -lfwwwp F S UID          PID    PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY        TIME CMD 4 S root        1479    1464  0  80   0 - 308106 -     \u0444\u0435\u043221 tty7   10:00 \/usr\/lib\/xorg\/Xorg -listen inet -listen unix :0 -seat seat0 -auth \/var\/run\/lightdm\/root\/:0 -listen tcp vt7 -novtswitch 4 S root       14156    1464  0  80   0 - 193093 -     \u0444\u0435\u043221 tty8    0:44 \/usr\/lib\/xorg\/Xorg -listen inet -listen unix :1 -seat seat0 -auth \/var\/run\/lightdm\/root\/:1 -listen tcp vt8 -novtswitch <\/code><\/pre>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0434\u043b\u044f <code>user-2<\/code> \u0431\u044b\u043b \u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 <code>Xorg<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u044b\u043b \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442 \u2014 <code>:1<\/code> (\u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043e\u043a\u0435\u0442-\u0444\u0430\u0439\u043b <code>\/tmp\/.X11-unix\/X1<\/code>), \u0430 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0438\u043c \u043e\u0442\u043a\u0440\u044b\u0442 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d TCP-\u043f\u043e\u0440\u0442: 6001 \u2014 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0441\u0435\u0442\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043a x-\u0434\u0438\u0441\u043f\u043b\u0435\u044e \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u00bb <code>user-2<\/code>. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>DISPLAY<\/code> \u0443 <code>user-2<\/code> \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>:1<\/code>. \u0422\u0430\u043a\u0436\u0435 \u0434\u043b\u044f <code>user-2<\/code> \u0431\u044b\u043b\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0441\u0432\u043e\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0430\u044f <code>MIT-MAGIC-COOKIE-1<\/code>, \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u044b\u043b\u0430 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0430 \u0432 \u0444\u0430\u0439\u043b <code>\/var\/run\/lightdm\/root\/:1<\/code>.<br \/> \u0422\u0430\u043a\u0436\u0435 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043f\u043e\u0434 \u00ab\u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b\u00bb \u0434\u043b\u044f <code>user-2<\/code> \u0431\u044b\u043b \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d 8-\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u2014 <code>tty8<\/code>, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c <code>tty7<\/code> \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0451\u043d\u043d\u044b\u043c \u0437\u0430 <code>user-1<\/code>. \u0422.\u0435. \u00ab\u0420\u0430\u0431\u043e\u0447\u0438\u0435 \u0441\u0442\u043e\u043b\u044b\u00bb \u0434\u0432\u0443\u0445 \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439\u00bb \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u043d\u0430 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430\u0445. \u0418 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0430\u043d\u0441\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f <code>user-1<\/code>, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c <code>Ctrl + Alt + F8<\/code> \u0438 \u0432\u0438\u0434\u0438\u043c GUI-\u044d\u043a\u0440\u0430\u043d \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0432\u0445\u043e\u0434\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u0430\u043a <code>user-2<\/code>. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c <code>Ctrl + Alt + F7<\/code> \u2014 \u0438 \u043c\u044b \u0441\u043d\u043e\u0432\u0430 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0430\u043d\u0441\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f <code>user-1<\/code>.<\/p>\n<p><code>MIT-MAGIC-COOKIE-1<\/code> \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>DISPLAY<\/code> \u0443 <code>user-2<\/code> \u0438 <code>user-1<\/code> \u0440\u0430\u0437\u043d\u044b\u0435:<\/p>\n<pre><code class=\"bash\"># User #2 user-2@ThinkPad:~$ xauth list ThinkPad\/unix:1  MIT-MAGIC-COOKIE-1  6f4197b3a0b21a0dde474035ee877b9b user-2@ThinkPad:~$ echo $DISPLAY :1 ------------------------------------ # User #1 user-1@ThinkPad:~$ xauth list ThinkPad\/unix:0  MIT-MAGIC-COOKIE-1  e996a1ef44c240520b877abfc7adadd9 user-1@ThinkPad:~$ echo $DISPLAY :0 <\/code><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434 <code>nmap -p6001 127.0.0.1<\/code> \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u043b\u0441\u044f <code>user-2<\/code> \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u043f\u043e\u0440\u0442 \u043e\u0442\u043a\u0440\u044b\u043b\u0441\u044f:<\/p>\n<pre><code class=\"bash\">$ sudo nmap -p6001 127.0.0.1 ... ... ... PORT     STATE  SERVICE 6001\/tcp closed X11:1    # &lt;--------- \u0414\u041e  $ sudo nmap -p6001 127.0.0.1 ... ... ... PORT     STATE SERVICE 6001\/tcp open  X11    # &lt;--------- \u041f\u041e\u0421\u041b\u0415 <\/code><\/pre>\n<p>\u041b\u0438\u0441\u0442\u0438\u043d\u0433 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0434\u043b\u044f <code>user-2<\/code> \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u043e\u043c:<\/p>\n<pre><code class=\"bash\">$ sudo ls -la \/tmp\/.X11-unix\/ drwxrwxrwt  2 root root 4096 \u0444\u0435\u0432 21 23:50 . drwxrwxrwt 24 root root 4096 \u043c\u0430\u0440 22 20:47 .. srwxrwxrwx  1 root root    0 \u0444\u0435\u0432 21 01:05 X0  # &lt;-- user-1, \u0441\u0440. \u0441 \/var\/run\/lightdm\/root\/:0 , DISPLAY=:0 , TCP port 6000 srwxrwxrwx  1 root root    0 \u0444\u0435\u0432 21 22:15 X1  # &lt;-- user-2, \u0441\u0440. \u0441 \/var\/run\/lightdm\/root\/:1 , DISPLAY=:1 , TCP port 6001  $ stat \/tmp\/.X11-unix\/X1   \u0424\u0430\u0439\u043b: \/tmp\/.X11-unix\/X1   \u0420\u0430\u0437\u043c\u0435\u0440: 0             \u0411\u043b\u043e\u043a\u043e\u0432: 0          \u0411\u043b\u043e\u043a \u0412\/\u0412: 4096   \u0441\u043e\u043a\u0435\u0442 \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e: 10302h\/66306d       \u0418\u043d\u043e\u0434\u0430: 3021855     \u0421\u0441\u044b\u043b\u043a\u0438: 1 \u0414\u043e\u0441\u0442\u0443\u043f: (0777\/srwxrwxrwx)  Uid: (    0\/    root)   Gid: (    0\/    root) ... ... ... <\/code><\/pre>\n<p>\u0412\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u043e \u0432\u0437\u0430\u0438\u043c\u043d\u043e \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0438 \u0430\u0434\u0440\u0435\u0441\u0435 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u0430 \u0438 \u043d\u043e\u043c\u0435\u0440\u0435 TCP-\u043f\u043e\u0440\u0442\u0430. \u0421\u043e\u043a\u0435\u0442\u0443 <code>:0<\/code> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u0440\u0442 6000, \u0441\u043e\u043a\u0435\u0442\u0443 <code>:1<\/code> \u2014 \u043f\u043e\u0440\u0442 6001 \u0438 \u0442.\u0434. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>DISPLAY<\/code> \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0415\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>DISPLAY=:0<\/code> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0436\u0435 <code>DISPLAY=10.255.25.1:0<\/code> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 TCP-\u043f\u043e\u0440\u0442 6000 \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u0441 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u043c 10.255.25.1. \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u043f\u043e\u0440\u0442\u0430 \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u2014 \u043e\u043d \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0430\u0434\u0440\u0435\u0441\u0430 \u0441\u043e\u043a\u0435\u0442\u0430 <code>:0<\/code>.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043e\u0431\u0449\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a. \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u00bb \u043b\u043e\u0433\u0438\u043d\u0438\u0442\u0441\u044f \u0432 \u041e\u0421 \u0447\u0435\u0440\u0435\u0437 Display Manager,<\/p>\n<ul>\n<li>\n<p>\u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 <code>Xorg<\/code>,<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u043e\u0434 \u00ab\u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b\u00bb \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 <code>tty7<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442 (\u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>DISPLAY<\/code> \u044d\u0442\u043e\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f) \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 <code>:0<\/code> \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 TCP-\u043f\u043e\u0440\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 6000;<\/p>\n<\/li>\n<li>\n<p>\u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0430\u044f <code>MIT-MAGIC-COOKIE-1<\/code>, \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0438\u043c\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u0440\u0430\u0442\u043a\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u0430, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u044d\u0442\u043e \u2014 \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u2014 \u0432\u0441\u0451 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 Display Manager&#8217;\u0430).<\/p>\n<\/li>\n<\/ul>\n<p>\u0421 \u043a\u0430\u0436\u0434\u044b\u043c \u043d\u043e\u0432\u044b\u043c \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u0432\u0448\u0438\u043c\u0441\u044f \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c\u00bb \u00ab\u043d\u043e\u043c\u0435\u0440\u0430\u00bb \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443.<\/p>\n<h4>\u041e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \/ \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 X-\u0441\u0435\u0440\u0432\u0435\u0440\u0435<\/h4>\n<p><a class=\"anchor\" name=\"x-security-basics\" id=\"x-security-basics\"><\/a><\/p>\n<p>\u041a\u0430\u043a, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0443\u0436\u0435 \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438\u0437 \u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u043d\u0435\u0435, X-\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043e\u043c\u0443 \u043f\u043e\u043f\u0430\u043b\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u043c\u0443 X-\u0434\u0438\u0441\u043f\u043b\u0435\u044e. \u041b\u044e\u0431\u043e\u0439, \u0438\u043c\u0435\u044e\u0449\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a X-\u0434\u0438\u0441\u043f\u043b\u0435\u044e, \u043c\u043e\u0436\u0435\u0442 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043d\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0435, \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0432\u0432\u043e\u0434 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u044b\u0448\u0438. \u0412 \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435, \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u00ab\u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e\u0439\u00bb \u043a\u0443\u043a\u0438 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>MIT-MAGIC-COOKIE-1<\/code> \u2014 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f X-\u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043e\u043f\u0446\u0438\u0438 <code>-auth<\/code>. \u0422\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u044b, \u0438\u043c\u0435\u044e\u0449\u0438\u0435 \u0443 \u0441\u0435\u0431\u044f \u00ab\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e\u00bb \u0432\u0435\u0440\u0441\u0438\u044e \u044d\u0442\u043e\u0439 \u043a\u0443\u043a\u0438 \u0432 \u0441\u0432\u043e\u0451\u043c <code>~\/.Xauthority<\/code> \u0444\u0430\u0439\u043b\u0435 (\u043b\u0438\u0431\u043e \u0434\u0440\u0443\u0433\u043e\u043c \u2014 \u0432 \u0442\u043e\u043c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>XAUTHORITY<\/code>), \u043c\u043e\u0433\u0443\u0442 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c.<br \/> \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 X-\u0441\u0435\u0440\u0432\u0435\u0440 \u0431\u044b\u043b \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 TCP\/IP (\u043e\u043f\u0446\u0438\u044f <code>-listen inet<\/code>), \u043a\u043b\u0438\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u00ab\u0440\u0430\u0441\u0448\u0430\u0440\u0438\u0442\u044c\u00bb \u0441\u0432\u043e\u0439 X-\u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u043f\u043e \u0441\u0435\u0442\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b <code>xhost<\/code>. \u041e\u043d\u0430 (<code>xhost<\/code>) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0421\u043f\u0438\u0441\u043a\u043e\u043c \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0414\u043e\u0441\u0442\u0443\u043f\u0430 (ACL \u2014 Access Control List) \u043a X-\u0434\u0438\u0441\u043f\u043b\u0435\u044e \u0443\u0436\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 X-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430:<\/p>\n<pre><code class=\"bash\">$ xhost +&lt;Host Name or IP address> # \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u0432 ACL $ xhost -&lt;Host Name or IP address> # \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u0438\u0437 ACL <\/code><\/pre>\n<p>\u0425\u043e\u0441\u0442\u0430\u043c, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0432 \u044d\u0442\u043e\u0442 ACL, \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a X-\u0434\u0438\u0441\u043f\u043b\u0435\u044e \u00ab\u0432\u043e\u043b\u0448\u0435\u0431\u043d\u0430\u044f\u00bb \u043a\u0443\u043a\u0438 <strong>\u041d\u0415 \u0422\u0420\u0415\u0411\u0423\u0415\u0422\u0421\u042f \u0412\u041e\u041e\u0411\u0429\u0415<\/strong>: \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f, \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 IP-\u0430\u0434\u0440\u0435\u0441\u0430 (\u0418\u043c\u044f \u0445\u043e\u0441\u0442\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 IP \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 <code>xhost<\/code> \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 ACL.). \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f <code>xhost<\/code> \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441 \u0435\u0451 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c ACL \u043c\u043e\u0436\u0435\u0442 \u043b\u0438\u0448\u044c \u043a\u043b\u0438\u0435\u043d\u0442, \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u00ab\u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e\u0439\u00bb \u043a\u0443\u043a\u0438. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0435 X-\u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 <code>xhost<\/code> \u0441\u0430\u043c\u0438 <em>\u041d\u0415 \u041c\u041e\u0413\u0423\u0422<\/em> \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 ACL&#8217;\u044b <code>xhost<\/code>. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u2014 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u043a\u0443\u043a\u0438 \u2014 \u044d\u0442\u043e \u00ab\u0445\u043e\u0437\u044f\u0438\u043d\u00bb, \u0430 \u0445\u043e\u0441\u0442\u044b \u0438\u0437 ACL&#8217;\u0430 <code>xhost<\/code> \u2014 \u0435\u0433\u043e \u00ab\u0433\u043e\u0441\u0442\u0438\u00bb. \u041c\u0435\u043d\u044f\u0442\u044c ACL&#8217;\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 <code>xhost<\/code> \u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u00ab\u0445\u043e\u0437\u044f\u0438\u043d\u00bb.<br \/> \u0415\u0449\u0451 \u043e\u0434\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u043e TCP \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0439 X-\u043a\u043b\u0438\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f <em>\u0422\u041e\u041b\u042c\u041a\u041e<\/em> \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0435\u0433\u043e IP-\u0430\u0434\u0440\u0435\u0441 \u0438\u043b\u0438 \u0438\u043c\u044f<br \/> \u0445\u043e\u0441\u0442\u0430 \u0435\u0441\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 (ACL&#8217;\u0435) <code>xhost<\/code> (\u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 <code>xhost<\/code> \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u2014 \u0441\u043c. \u043d\u0438\u0436\u0435). \u0415\u0441\u043b\u0438 \u0436\u0435 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0435 \u0432\u043d\u0435\u0441\u0451\u043d \u0432 ACL, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0443 \u043d\u0435\u0433\u043e \u00ab\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439\u00bb \u043a\u043e\u043f\u0438\u0438 \u043a\u0443\u043a\u0438 (\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>XAUTHORITY<\/code>).<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 X-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u043c:<\/p>\n<ul>\n<li>\n<p>\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043a X-\u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0447\u0435\u0440\u0435\u0437 unix-socket, \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u00ab\u0432\u043e\u043b\u0448\u0435\u0431\u043d\u0443\u044e\u00bb \u043a\u0443\u043a\u0438, \u043c\u043e\u0433\u0443\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c ACL&#8217;\u0430\u043c\u0438 <code>xhost<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043a X-\u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0447\u0435\u0440\u0435\u0437 TCP, \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u043d\u0435\u0441\u0451\u043d\u043d\u044b\u043c\u0438 \u0432 <code>xhost<\/code> ACL, \u0441\u0430\u043c\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 <code>xhost<\/code> \u043e\u043d\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442.<\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0449\u0451 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>xhost<\/code> \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0432\u043e\u0435\u043c\u0443 X-\u0434\u0438\u0441\u043f\u043b\u0435\u044e:<\/p>\n<pre><code class=\"bash\">$ xhost + # \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 $ xhost - # \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0435\u0433\u043e \u043d\u0430\u0437\u0430\u0434. <\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0442\u043e \u0434\u043e\u0441\u0442\u0443\u043f \u043a X-\u0434\u0438\u0441\u043f\u043b\u0435\u044e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u0435\u043c: \u043a\u0430\u043a \u0441\u043e \u0432\u0441\u0435\u0445 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438, \u0442\u0430\u043a \u0438 \u0432\u0441\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. \u0422\u0430\u043a, \u0435\u0441\u043b\u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0438\u0437 <a href=\"#x-theory\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430<\/a>, \u0433\u0434\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u0434\u0432\u0443\u0445 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0442\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u043e\u0439. \u041f\u0443\u0441\u0442\u044c \u0434\u043b\u044f <code>user-1<\/code> \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d <code>DISPLAY=:0<\/code>, \u0430 \u0434\u043b\u044f <code>user-2<\/code> \u2014 <code>DISPLAY=:1<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 <code>user-2<\/code> \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 <code>xhost<\/code>:<\/p>\n<pre><code class=\"bash\">user-2@ThinkPad:~$ xhost + access control disabled, clients can connect from any host <\/code><\/pre>\n<p>\u0442\u043e <code>user-1<\/code> \u0441\u043c\u043e\u0436\u0435\u0442 \u00ab\u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u00bb \u0435\u043c\u0443 \u043d\u0430 \u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b \u0441\u0432\u043e\u0451 \u043e\u043a\u043e\u0448\u043a\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ DISPLAY=:1 xterm <\/code><\/pre>\n<p>\u0418 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0436\u043c\u0451\u043c <code>Ctrl + Alt + F8<\/code> (\u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f <code>user-2<\/code> \u2014 \u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u0435\u043c\u0443 \u043f\u043e\u0434 \u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b \u043e\u0442\u0432\u0435\u0434\u0451\u043d <code>tty8<\/code>) \u2014 \u0438 \u0432\u0438\u0434\u0438\u043c \u043e\u043a\u043e\u0448\u043a\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b xterm, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a: <code>user-1@ThinkPad:~$ <\/code>, \u0430 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043e\u043a\u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 \u043a\u043e\u043d\u0435\u0446 &#187; (\u043e\u0442 user-1)&#187;.<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 TCP\/IP \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 X-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e xorg \u043d\u0435\u043b\u044c\u0437\u044f \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0438\u0437 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430. \u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 TCP\/IP xorg \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b. \u0421\u0432\u043e\u044f \u0436\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 TCP-\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0443 xorg \u043f\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u0440\u043a\u0430\u043c, \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0443\u0436\u0430\u0441\u043d\u043e \u0441\u043b\u0430\u0431\u0430. \u041e\u043d\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u0432 \u0421\u043f\u0438\u0441\u043a\u0435 \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0414\u043e\u0441\u0442\u0443\u043f\u0430 (ACL), \u0438 \u0442\u043e \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043d\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0438 IP-\u0430\u0434\u0440\u0435\u0441 \u0438 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0434\u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441\u0430\u043c\u0438\u043c xorg-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e. \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0442\u0435\u0431\u0435 \u043b\u043e\u0433\u0438\u043d\u0430 \u0441 \u043f\u0430\u0440\u043e\u043b\u0435\u043c, \u043d\u0438 \u0434\u0430\u0436\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \/ \u043a\u0443\u043a\u0438, \u2014 \u0434\u0430 \u0438 \u0432\u0441\u0451 \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u0442.\u043a. \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb \u043d\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u0438 \u00ab\u0441\u0435\u043a\u0440\u0435\u0442\u044b\u00bb \u043d\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u043e \u0431\u044b \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0442\u0440\u0443\u0434\u0430.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 TCP\/IP \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u0438\u043c\u00bb xorg-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e, \u0440\u0435\u0448\u0438\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u00ab\u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438\u00bb \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a X-\u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u0435\u0440\u0432\u043e\u043b\u0430. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>iptables<\/code>, \u0430 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u043c\u0430\u043d\u0434 \u0432 \u0444\u0430\u0439\u043b\u0435 <code>\/etc\/rc.local<\/code>.<\/p>\n<hr\/>\n<h3>\u00ab\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c\u00bb<\/h3>\n<p><a class=\"anchor\" name=\"prac\" id=\"prac\"><\/a><\/p>\n<h4>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 Docker-\u0441\u0435\u0442\u0438<\/h4>\n<p><a class=\"anchor\" name=\"internal-docker-network\" id=\"internal-docker-network\"><\/a><\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u00ab\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e\u00bb \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e Docker-\u0441\u0435\u0442\u044c. \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u043b\u044f \u043d\u0435\u0435 \u0442\u0430\u043a\u043e\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432: 10.255.25.0\/24.<br \/> \u041a\u043b\u044e\u0447 <code>--internal<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0441\u0435\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 (\u043e\u0442 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0438 \u00ab\u043b\u043e\u043a\u0430\u043b\u043a\u0438\u00bb). \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <code>dcr_itl_25<\/code> \u2014 \u044d\u0442\u043e <em>\u0418\u041c\u042f<\/em> \u0441\u0435\u0442\u0438 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f Docker.<\/p>\n<pre><code class=\"bash\">$ docker network create --internal --subnet 10.255.25.0\/24 dcr_itl_25 aeb9dcd262b96db83953b1665d017c98eaa9dabb7cb392988ad8f0b2955c2bbf  <\/code><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u2014 64-\u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u2014 \u044d\u0442\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 ID \u0432\u043d\u043e\u0432\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 Docker-\u0441\u0435\u0442\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b Docker; \u043f\u0435\u0440\u0432\u044b\u0435 12 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (<code>aeb9dcd262b9<\/code>) \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u0432\u043d\u043e\u0432\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u0441\u0438\u0441\u0442\u0435\u043c\u0435: <code>br-aeb9dcd262b9<\/code>. \u0414\u0430-\u0434\u0430, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0442\u0430\u043a\u043e\u0435 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u00ab\u0441\u043a\u043b\u0430\u0434\u043d\u043e\u0435\u00bb \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u0430 \u043d\u0435 <code>dcr_itl_25<\/code>, \u043a\u0430\u043a \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b. <code>dcr_itl_25<\/code> \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u043a \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c 64-\u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e ID \u0432 \u0432\u044b\u0437\u043e\u0432\u0430\u0445 \u0442\u0438\u043f\u0430 <code>docker network &lt;command> &lt;...><\/code> \u0438 <code>docker inspect &lt;...><\/code> \u0438 \u0442.\u043f..<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre><code class=\"bash\">$ ifconfig  ... ... ... br-aeb9dcd262b9: flags=4099&lt;UP,BROADCAST,MULTICAST>  mtu 1500         inet 10.255.25.1  netmask 255.255.255.0  broadcast 10.255.25.255         ether 02:42:c6:0c:97:fe  txqueuelen 0  (Ethernet)         RX packets 0  bytes 0 (0.0 B)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 0  bytes 0 (0.0 B)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  ... ... ... <\/code><\/pre>\n<p><em>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/em><br \/> <code>dcr_itl_25<\/code> \u2014 \u044d\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0439 \u0432\u043d\u043e\u0432\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0431\u0430\u0437\u0435 Docker&#8217;\u0430, \u043a \u043d\u0435\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 <code>br-aeb9dcd262b9<\/code> \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 <code>docker0<\/code> \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 (\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a) Docker-\u0441\u0435\u0442\u0438 <code>bridge<\/code>. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0438\u043c\u044f \u043d\u0430\u0434\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a \u043d\u0435\u043c\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 \u0442\u0438\u043f\u0430 <code>docker network &lt;command> &lt;...><\/code>, \u0430 \u043d\u0435 <code>docker0<\/code>.<\/p>\n<pre><code class=\"bash\">$ docker network list NETWORK ID     NAME         DRIVER    SCOPE f997ac3adf33   bridge       bridge    local  # &lt;--- interface docker0 aeb9dcd262b9   dcr_itl_25   bridge    local  # &lt;--- interface br-aeb9dcd262b9 a39def0f1bd0   host         host      local 9f8789a408d6   none         null      local <\/code><\/pre>\n<h4>\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \/etc\/rc.local \u0432 systemd<\/h4>\n<p><a class=\"anchor\" name=\"rc-local-systemd\" id=\"rc-local-systemd\"><\/a><\/p>\n<p>\u0414\u0430-\u0434\u0430, \u0441\u0442\u0430\u0440\u044b\u0439 \u0434\u043e\u0431\u0440\u044b\u0439 \u0438 \u043b\u044e\u0431\u0438\u043c\u044b\u0439 \u043b\u0438\u043d\u0443\u043a\u0441\u043e\u0439\u0434\u0430\u043c\u0438-\u043e\u043b\u0434\u0444\u0430\u0433\u0430\u043c\u0438 <code>\/etc\/rc.local<\/code> \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u044c\u043a\u0443 \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 systemd \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u00ab\u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0430\u00bb \u0434\u043b\u044f \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430.<\/p>\n<p>\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0430\u043c \u0444\u0430\u0439\u043b <code>\/etc\/rc.local<\/code> \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c (\u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 <code>root:root 755<\/code>). \u041f\u0435\u0440\u0432\u043e\u0439 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0432 \u043d\u0435\u043c \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c:<\/p>\n<pre><code class=\"bash\">#!\/bin\/bash exit 0 <\/code><\/pre>\n<p>\u0412\u0441\u0451 \u00ab\u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e\u0435\u00bb \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u0438\u043c\u0438 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0438 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e <code>rc-local.service<\/code> \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u0430\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043e\u0448\u0438\u0431\u043a\u0443:<\/p>\n<pre><code class=\"bash\">$ sudo systemctl enable rc-local.service The unit files have no installation config (WantedBy=, RequiredBy=, Also=, Alias= settings in the [Install] section, and DefaultInstance= for template units). This means they are not meant to be enabled using systemctl.  ... ... ... <\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b: <code>\/etc\/systemd\/system\/rc-local.service<\/code> \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 <code>root:root 644<\/code> \u0438 \u043d\u0438\u0436\u0435\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c:<\/p>\n<pre><code>#  SPDX-License-Identifier: LGPL-2.1+ # #  This file is part of systemd. # #  systemd is free software; you can redistribute it and\/or modify it #  under the terms of the GNU Lesser General Public License as published by #  the Free Software Foundation; either version 2.1 of the License, or #  (at your option) any later version.   # This unit gets pulled automatically into multi-user.target by # systemd-rc-local-generator if \/etc\/rc.local is executable. [Unit] Description=\/etc\/rc.local Compatibility Documentation=man:systemd-rc-local-generator(8) ConditionFileIsExecutable=\/etc\/rc.local After=network.target   [Service] Type=forking ExecStart=\/etc\/rc.local start TimeoutSec=0 RemainAfterExit=yes GuessMainPID=no   [Install] WantedBy=multi-user.target <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a rc-local.service \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a:<\/p>\n<pre><code class=\"bash\">$ sudo systemctl enable rc-local.service $ sudo systemctl restart rc-local.service  $ sudo systemctl status rc-local.service \u25cf rc-local.service - \/etc\/rc.local Compatibility      Loaded: loaded (\/etc\/systemd\/system\/rc-local.service; enabled; vendor preset: enabled)     Drop-In: \/usr\/lib\/systemd\/system\/rc-local.service.d              \u2514\u2500debian.conf      Active: active (exited) since ... ... ...        Docs: man:systemd-rc-local-generator(8)     Process: 1720 ExecStart=\/etc\/rc.local start (code=exited, status=0\/SUCCESS) <\/code><\/pre>\n<p><em>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/em><br \/> \u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u0445 Ubuntu \u0435\u0441\u0442\u044c \u043f\u0430\u043a\u0435\u0442 <code>netfilter-persistent<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e <code>iptables<\/code>:<\/p>\n<pre><code class=\"bash\">Description-en: boot-time loader for netfilter configuration  This package provides a loader for netfilter configuration using a  plugin-based architecture. It can load, flush and save a running  configuration. Extending netfilter-persistent with plugins is trivial and can  be done in any language. <\/code><\/pre>\n<p>\u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u044f \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0435\u043b \u043c\u0435\u0442\u043e\u0434 \u0441 <code>\/etc\/rc.local<\/code> \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 \u0442\u0432\u0438\u043a\u0438, \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044f\u0441\u044c \u043e\u0434\u043d\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e <code>iptables<\/code>. \u0412 \u0431\u044b\u043b\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434 \u0432 <code>\/etc\/rc.local<\/code> \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b\u043e\u0441\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e.<\/p>\n<h4>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0430\u0439\u0435\u0440\u0432\u043e\u043b\u0430 iptables<\/h4>\n<p><a class=\"anchor\" name=\"iptables\" id=\"iptables\"><\/a><\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>iptables<\/code>, \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0444\u0430\u0439\u0435\u0440\u0432\u043e\u043b \u2014 <code>ufw<\/code> \u2014 \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u0435\u043d. \u0415\u0441\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u0435\u043d, \u0442\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0435\u0433\u043e:<\/p>\n<pre><code class=\"bash\">$ sudo ufw status  \u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435: \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u0435\u043d $ sudo ufw disable # \u0435\u0441\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u0435\u043d <\/code><\/pre>\n<p>\u042d\u0442\u043e \u0436\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0430\u0439\u0435\u0440\u0432\u043e\u043b\u043e\u0432: \u0444\u0430\u0439\u0435\u0440\u0432\u043e\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d! <code>;-)<\/code><\/p>\n<p>\u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a <code>iptables<\/code>, \u0442\u043e \u0431\u0443\u0434\u0435\u043c \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 <code>filter<\/code> \u0446\u0435\u043f\u043e\u0447\u043a\u0438 <code>INPUT<\/code>. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 <code>-j ACCEPT<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u043a\u0438\u0434\u0430\u043d\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u043c \u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0446\u0435\u043f\u043e\u0447\u043a\u0438, \u0438 \u0432\u0441\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u043a \u043d\u0435\u043c\u0443 \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u0436\u0435\u043d \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0440\u0430\u0432\u0438\u043b. \u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0439 \u043d\u0438\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043c\u044b \u0436\u0435\u043b\u0430\u0435\u043c:<\/p>\n<ol>\n<li>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u2014 \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u2014 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 TCP \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u043e\u0440\u0442\u044b 22, 80 \u0438 443 (ssh, http \u0438 https, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e) \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445. \u0422.\u0435. \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u0438 \u0436\u0434\u0443\u0442 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 <code>sshd<\/code> \u0438 <code>httpd<\/code>. \u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0443 \u0441\u0435\u0431\u044f \u044d\u0442\u0438 \u0441\u043b\u0443\u0436\u0431\u044b \u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u0440\u0442\u044b, \u0438 \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0432\u0430\u0441 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0445\u0430\u043a\u043d\u0443\u043b\u0438, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 \u0432\u0440\u043e\u0434\u0435 <code>fail2ban<\/code> (\u0441\u043c. \u0441\u0441\u044b\u043b\u043a\u0438 \u0432 \u043a\u043e\u043d\u0446\u0435). \u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f ssh \u00ab\u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e\u00bb \u043f\u043e\u0440\u0442\u0430 (\u0442\u0438\u043f\u0430 2222) \u043c\u0430\u043b\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u0438\u0431\u043e \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u044b\u0435 \u0431\u043e\u0442\u044b \u0441\u043a\u0430\u043d\u0438\u0440\u0443\u044e\u0442 \u0432\u0441\u0435 \u043f\u043e\u0440\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0432\u0441\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 <code>loopback<\/code> \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e \u0432\u0441\u0435\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 Docker&#8217;\u043e\u043c, \u0431\u0430\u043d\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0441\u0435 \u00ab\u0444\u044d\u0439\u043a\u043e\u0432\u044b\u0435\u00bb \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u2014 \u0442.\u0435. \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 IP-\u0430\u0434\u0440\u0435\u0441 \u0438\u0437 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0441 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u043f\u0438\u043d\u0433\u0438 \u043e\u0442\u043a\u0443\u0434\u0430 \u0443\u0433\u043e\u0434\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0432 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 (<code>ESTABLISHED<\/code>) (\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043d\u0438\u043c\u0438 (<code>RELATED<\/code>) \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0431\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u043f\u0430\u043b\u043e \u043f\u043e\u0434 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u0438\u0437 \u0432\u044b\u0448\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432.<\/p>\n<\/li>\n<\/ol>\n<p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0441\u0435\u0445 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0438\u0437 \u00ab\u0432\u043d\u0435\u0448\u043a\u0438\u00bb (\u043b\u043e\u043a\u0430\u043b\u043a\u0438 \u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430), \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u044f\u0432\u043d\u043e \u043e\u0433\u043e\u0432\u043e\u0440\u0435\u043d\u043d\u044b\u0445 \u0432 \u043f. 1. \u0422.\u0435. \u043f\u0440\u0438 \u0442\u0430\u043a\u0438\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 TCP\/IP-\u043f\u043e\u0440\u0442\u044b xorg \u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u0432\u043d\u0435.<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u0432 <code>\/etc\/rc.local<\/code> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\"># ------------------------------------------------------------------------------------------------- # iptables settings # ----------------- iptables --policy INPUT ACCEPT   # EXAMPLE: allow incoming ssh connections to port 22, http and https connections to ports 80 and 443 #iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT #iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT #iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT # ------------------------------------------------------------------  # allow all input traffic from loopback iface,  # and drop fake connections having src IP out of 127.0.0.0\/8 but NOT going from the lo iface iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT ! -i lo -s 127.0.0.0\/8 -j DROP  # allow all input traffic from docker0 iface, and drop fake connections (the same way as for the lo) iptables -A INPUT -i docker0 -j ACCEPT iptables -A INPUT ! -i docker0 -s 172.17.0.0\/16 -j DROP  # allow all input traffic from br-aeb9dcd262b9 iface, and drop fake connetions (the same way as for the lo) iptables -A INPUT -i br-aeb9dcd262b9 -j ACCEPT iptables -A INPUT ! -i br-aeb9dcd262b9 -s 10.255.25.0\/24 -j DROP  # allow pings from outside iptables -A INPUT -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT  # allow input traffic from already established connections iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  # drop all the other incoming packets iptables -A INPUT -j DROP # ------------------------------------------------------------------------------------------------- <\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u0441\u044f \u0438 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 <code>iptables<\/code> \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c:<\/p>\n<pre><code class=\"bash\">$ sudo iptables -t filter --list --line-numbers      Chain INPUT (policy ACCEPT) num  target     prot opt source               destination          1    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh state NEW 2    ACCEPT     all  --  anywhere             anywhere             3    DROP       all  --  localhost\/8          anywhere             4    ACCEPT     all  --  anywhere             anywhere             5    DROP       all  --  172.17.0.0\/16        anywhere             6    ACCEPT     all  --  anywhere             anywhere             7    DROP       all  --  10.255.25.0\/24       anywhere             8    ACCEPT     icmp --  anywhere             anywhere             state NEW icmp echo-request 9    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED 10   DROP       all  --  anywhere             anywhere              Chain FORWARD (policy DROP) num  target     prot opt source               destination  ... ... ...  # \u0414\u0440\u0443\u0433\u0438\u0435 \u0446\u0435\u043f\u043e\u0447\u043a\u0438: FORWARD, OUTPUT, DOCKER, DOCKER-ISOLATION-STAGE-1,   # DOCKER-ISOLATION-STAGE-2, DOCKER-USER \u0438 \u0434\u0440., - \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439,   # \u0442.\u043a. \u0432 \u044d\u0442\u0438\u0445 \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u044b filter \u043c\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u043b\u0438. <\/code><\/pre>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">$ sudo iptables -t nat --list --line-numbers $ sudo iptables -t raw --list --line-numbers $ sudo iptables -t mangle --list --line-numbers $ sudo iptables -t security --list --line-numbers <\/code><\/pre>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u044b\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>iptables -t &lt;TABLE-NAME> --list --line-numbers<\/code> \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u0440\u0435\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0442\u0438\u0432\u043d\u044b\u0439. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u043f\u0446\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041c\u043e\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0432\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0438\u043b\u0443:<\/p>\n<pre><code class=\"bash\">$ sudo iptables -S -P INPUT ACCEPT -P FORWARD DROP -P OUTPUT ACCEPT -N DOCKER -N DOCKER-ISOLATION-STAGE-1 -N DOCKER-ISOLATION-STAGE-2 -N DOCKER-USER -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -s 127.0.0.0\/8 ! -i lo -j DROP -A INPUT -i docker0 -j ACCEPT -A INPUT -s 172.17.0.0\/16 ! -i docker0 -j DROP -A INPUT -i br-aeb9dcd262b9 -j ACCEPT -A INPUT -s 10.255.25.0\/24 ! -i br-aeb9dcd262b9 -j DROP -A INPUT -p icmp -m state --state NEW -m icmp --icmp-type 8 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -j DROP -A FORWARD -j DOCKER-USER -A FORWARD -j DOCKER-ISOLATION-STAGE-1 -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -o docker0 -j DOCKER -A FORWARD -i docker0 ! -o docker0 -j ACCEPT -A FORWARD -i docker0 -o docker0 -j ACCEPT -A FORWARD -i br-aeb9dcd262b9 -o br-aeb9dcd262b9 -j ACCEPT -A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2 -A DOCKER-ISOLATION-STAGE-1 ! -s 10.255.25.0\/24 -o br-aeb9dcd262b9 -j DROP -A DOCKER-ISOLATION-STAGE-1 ! -d 10.255.25.0\/24 -i br-aeb9dcd262b9 -j DROP -A DOCKER-ISOLATION-STAGE-1 -j RETURN -A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP -A DOCKER-ISOLATION-STAGE-2 -j RETURN -A DOCKER-USER -j RETURN <\/code><\/pre>\n<p><em>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u2116 1<\/em><br \/> \u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u0447\u0442\u043e:<\/p>\n<ul>\n<li>\n<p><code>docker0: 172.17.0.1\/16<\/code> \u2014 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Docker; \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 Docker&#8217;\u0430 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a Docker-\u0441\u0435\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u00ab\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439\u00bb (<code>\"Internal\": false<\/code> \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 Docker), \u0442.\u0435. \u0438\u0437 \u044d\u0442\u043e\u0439 \u0441\u0435\u0442\u0438 \u0435\u0441\u0442\u044c \u00ab\u0432\u044b\u0445\u043e\u0434\u00bb (\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432) \u0432 \u043b\u043e\u043a\u0430\u043b\u043a\u0443 \u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442.<\/p>\n<\/li>\n<li>\n<p><code>br-aeb9dcd262b9: 10.255.25.1\/24<\/code> \u2014 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Docker, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043d\u043e\u0439 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 (<a href=\"#internal-docker-network\" rel=\"noopener noreferrer nofollow\">\u0441\u043c. \u0432\u044b\u0448\u0435<\/a>). \u0418\u043c\u044f \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e Docker&#8217;\u043e\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u00ab\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439\u00bb \u0441\u0435\u0442\u0438 (<code>\"Internal\": true<\/code>), \u0442.\u0435. \u0438\u0437 \u0435\u0433\u043e \u0441\u0435\u0442\u0438 \u043d\u0435\u0442 \u00ab\u0432\u044b\u0445\u043e\u0434\u0430\u00bb (\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432) \u0432 \u00ab\u043b\u043e\u043a\u0430\u043b\u043a\u0443\u00bb \u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442.<\/p>\n<\/li>\n<\/ul>\n<p><em>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u2116 2<\/em><br \/> \u0423 \u043c\u0435\u043d\u044f \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 Docker-\u0441\u0435\u0442\u0438. \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 Docker-\u0441\u0435\u0442\u0435\u0439 \u0434\u043b\u044f \u043d\u0438\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u044f\u0432\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430 <code>iptables<\/code> \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0443:<\/p>\n<pre><code class=\"bash\"># allow all input traffic from &lt;NEW-DOCKER-INTERFACE> iface, and drop fake connetions (the same way as for the lo) iptables -A INPUT -i &lt;NEW-DOCKER-INTERFACE> -j ACCEPT iptables -A INPUT ! -i &lt;NEW-DOCKER-INTERFACE> -s &lt;IT\\'S-NET-IP\/MASK-BIT-NUM> -j DROP <\/code><\/pre>\n<p>\u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u0442\u044c \u044d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0414\u041e \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439<\/p>\n<pre><code class=\"bash\"># drop all the other incoming packets iptables -A INPUT -j DROP <\/code><\/pre>\n<p>\u041b\u0443\u0447\u0448\u0435 \u2014 \u0432 \u043a\u043e\u043d\u0435\u0446 \u00ab\u0441\u043f\u0438\u0441\u043a\u0430\u00bb \u043a\u043e\u043c\u0430\u043d\u0434 \u0434\u043b\u044f \u0440\u0430\u043d\u0435\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0432\u0448\u0438\u0445 Docker-\u0441\u0435\u0442\u0435\u0439.<\/p>\n<h4>\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 TCP\/IP \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u0438\u043c\u00bb xorg-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c<\/h4>\n<p><a class=\"anchor\" name=\"xorg-tcp\" id=\"xorg-tcp\"><\/a><\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e xorg \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e unix-socket; \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 TCP-\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439. \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432 X-\u0441\u0435\u0440\u0432\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0438 \u043d\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u0430 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c Display Manager&#8217;\u0430. \u0418\u043c\u0435\u043d\u043d\u043e \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 Display Manager&#8217;\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 \u044d\u0442\u043e LightDM (<a href=\"https:\/\/lanforge.wordpress.com\/2018\/03\/30\/enabling-remote-x-connections\/\" rel=\"noopener noreferrer nofollow\">\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 Display Manager&#8217;\u043e\u0432 \u0442\u0443\u0442<\/a>; \u0441\u043c. \u0442\u0430\u043a\u0436\u0435 <a href=\"#refs\" rel=\"noopener noreferrer nofollow\">\u0421\u0441\u044b\u043b\u043a\u0438<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0432 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.), \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 LightDM \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b LightDM \u0441\u0442\u0430\u043b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u00ab\u0438\u043a\u0441\u044b\u00bb \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 TCP, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0444\u0430\u0439\u043b\u044b:<\/p>\n<ul>\n<li>\n<p><code>\/usr\/share\/lightdm\/lightdm.conf.d\/50-xserver-command.conf<\/code><\/p>\n<\/li>\n<li>\n<p><code>\/etc\/lightdm\/lightdm.conf<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u00ab\u0434\u0438\u0432\u0435\u0440\u0442\u00bb, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u043b \u0435\u0433\u043e \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430:<\/p>\n<pre><code class=\"bash\">$ sudo dpkg-divert --divert \/usr\/share\/lightdm\/lightdm.conf.d\/50-xserver-command.conf.orig --rename \/usr\/share\/lightdm\/lightdm.conf.d\/50-xserver-command.conf $ sudo cp -aT \/usr\/share\/lightdm\/lightdm.conf.d\/50-xserver-command.conf.orig \/usr\/share\/lightdm\/lightdm.conf.d\/50-xserver-command.conf <\/code><\/pre>\n<p>\u041f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 <code>\/usr\/share\/lightdm\/lightdm.conf.d\/50-xserver-command.conf<\/code> \u043a \u0432\u0438\u0434\u0443:<\/p>\n<pre><code>[Seat:*] # Dump core #xserver-command=X -core xserver-command=X -core -listen inet -listen unix <\/code><\/pre>\n<p>\u0412 \u0444\u0430\u0439\u043b <code>\/etc\/lightdm\/lightdm.conf<\/code> \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u043a\u043e\u043d\u0435\u0446:<\/p>\n<pre><code># this is to allow TCP connections xserver-allow-tcp=true xserver-command=X -core -listen inet -listen unix <\/code><\/pre>\n<p>\u042f \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0444\u0430\u0439\u043b <code>\/etc\/X11\/xinit\/xserverrc<\/code> \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0432 \u0434\u0438\u0432\u0435\u0440\u0442:<\/p>\n<pre><code class=\"bash\">$ sudo dpkg-divert --divert \/etc\/X11\/xinit\/xserverrc.orig --rename \/etc\/X11\/xinit\/xserverrc  $ sudo cp -aT \/etc\/X11\/xinit\/xserverrc.orig \/etc\/X11\/xinit\/xserverrc <\/code><\/pre>\n<p>\u0438 \u0432\u043d\u0451\u0441 \u0432 \u043d\u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435:<\/p>\n<pre><code>#exec \/usr\/bin\/X -nolisten tcp \"$@\" exec \/usr\/bin\/X -listen inet -listen unix \"$@\" <\/code><\/pre>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u043e\u0434\u043d\u0438\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0444\u0430\u0439\u043b\u0435 <code>\/etc\/X11\/xinit\/xserverrc<\/code> \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. LightDM \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 \u044d\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. \u0421\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb \u0447\u0435\u0440\u0435\u0437 <code>startx<\/code> \u0438 <code>xinit<\/code>.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f. \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448 xorg \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u043e TCP \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a unix-socket. \u0423\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>pgrep<\/code>:<\/p>\n<pre><code class=\"bash\">$ pgrep X | xargs ps -lfwwwp F S UID          PID    PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD 4 S root        1768    1739  4  80   0 - 217636 -     16:13 tty7     00:00:06 \/usr\/lib\/xorg\/Xorg -core -listen inet -listen unix :0 -seat seat0 -auth \/var\/run\/lightdm\/root\/:0 -listen tcp vt7 -novtswitch <\/code><\/pre>\n<p>\u0438 <code>nmap<\/code> (\u043e\u0436\u0438\u0434\u0430\u0435\u043c \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u043e\u0440\u0442 6000):<\/p>\n<pre><code class=\"bash\">$ sudo nmap -p6000 127.0.0.1 Nmap scan report for localhost (127.0.0.1) Host is up (0.000096s latency). PORT     STATE SERVICE 6000\/tcp open  X11        # &lt;--------------------------- open !!! Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds   $ sudo nmap -p6000 10.255.25.1 Nmap scan report for 10.255.25.1 # br-aeb9dcd262b9 \"Internal\" Docker interface Host is up (0.000076s latency). PORT     STATE SERVICE 6000\/tcp open  X11        # &lt;--------------------------- open !!! Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds   $ sudo nmap -p6000 172.17.0.1 Nmap scan report for 172.17.0.1 # docker0 default non-\"Internal\" Docker interface Host is up (0.000073s latency). PORT     STATE SERVICE 6000\/tcp open  X11        # &lt;--------------------------- open !!! Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds <\/code><\/pre>\n<p>\u0417\u0430\u043e\u0434\u043d\u043e \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0444\u0430\u0439\u0435\u0440\u0432\u043e\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c <code>nmap<\/code> \u0441 \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u0430 \u0432 \u0441\u0432\u043e\u0435\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0443\u043a\u0430\u0437\u0430\u0432 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 IP \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u0430 \u0432 \u044d\u0442\u043e\u0439 \u00ab\u043b\u043e\u043a\u0430\u043b\u043a\u0435\u00bb:<\/p>\n<pre><code class=\"bash\"># nmap -p6000 172.25.25.230 Nmap scan report for 172.25.25.230 Host is up (0.067s latency). PORT     STATE    SERVICE 6000\/tcp filtered X11        # &lt;--------------------------- filtered !!! Nmap done: 1 IP address (1 host up) scanned in 0.94 seconds <\/code><\/pre>\n<p>(<em>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/em> \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0441\u0432\u043e\u0439 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u00ab\u0438\u0437\u043d\u0443\u0442\u0440\u0438\u00bb, \u0442.\u0435. \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u0436\u0435 \u043c\u0430\u0448\u0438\u043d\u044b. <code>nmap<\/code> \u043f\u043e\u043a\u0430\u0436\u0435\u0442 <code>open<\/code>, \u0432\u0438\u0434\u0438\u043c\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 IP \u0432 \u00ab\u043b\u043e\u043a\u0430\u043b\u043a\u0435\u00bb \u043b\u0438\u0431\u043e \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043f\u043e\u0434 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0439 <code>INPUT<\/code> \u0434\u043b\u044f <code>iptables<\/code>, \u043b\u0438\u0431\u043e \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0442\u0441\u044f \u043d\u0430 <code>loopback<\/code>.)<\/p>\n<h4>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 Docker-\u043e\u0431\u0440\u0430\u0437\u0430: Dockerfile<\/h4>\n<p><a class=\"anchor\" name=\"dockerfile\" id=\"dockerfile\"><\/a><\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0437\u0434\u0435\u0441\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0432\u043e\u0435\u0433\u043e Dockerfile&#8217;\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044e \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435.<\/p>\n<pre><code>FROM ubuntu:20.04  # Define DISPLAY as ARG; set up DISPLAY for root user ARG DISPLAY=10.255.25.1:0 ENV DISPLAY=${DISPLAY}  # Define non-root user, it's UID, gecos string and password ARG user=bob ARG uid=1000 ARG password=${user}  # Prepare \"internal\" Docker volume for \/opt\/matlab VOLUME \/opt\/matlab  # Copy configs' tarball to \/configs.tar.bz2 COPY configs.tar.bz2 \/  # + Install most important packages # + Install basic fonts # + Install additional fonts # + Install libraries -- dependences of MatLab # + Unpack configs; remove configs' tarball # + Set up root password # + Add non-root user RUN &lt;&lt;EOT bash   apt-get update -y -qq   DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -qq   DEBIAN_FRONTEND=noninteractive apt-get install -y -qq sudo bash-completion net-tools vim iputils-ping nmap htop mc ssh xauth xterm mesa-utils   DEBIAN_FRONTEND=noninteractive apt-get install -y -qq ttf-mscorefonts-installer ttf-dejavu ttf-xfree86-nonfree fonts-dejavu-core fonts-freefont-ttf fonts-opensymbol fonts-urw-base35 fonts-symbola ttf-bitstream-vera    DEBIAN_FRONTEND=noninteractive apt-get install -y -qq ttf-unifont xfonts-unifont fonts-prociono ttf-ubuntu-font-family fonts-georgewilliams fonts-hack fonts-yanone-kaffeesatz ttf-aenigma ttf-anonymous-pro ttf-engadget ttf-sjfonts ttf-staypuft ttf-summersby    DEBIAN_FRONTEND=noninteractive apt-get install -y -qq libgtk2.0-0 libnss3 libatk-bridge2.0-0 libgbm1    tar xf \/configs.tar.bz2 --overwrite --directory=\/ &amp;&amp; rm -f \/configs.tar.bz2    echo \"root:${password}\" | chpasswd EOT # ----- \\begin{non-root-user-section} -------------------------- RUN &lt;&lt;EOT bash   adduser --quiet --home \/home\/${user} --shell \/bin\/bash --uid ${uid} --disabled-password --gecos \"${gecos}\" --add_extra_groups ${user}   echo \"${user}:${password}\" | chpasswd   echo -e \"\\necho \\\"Your password is: ${password}\\\" \\n\" >> \/home\/${user}\/.bashrc EOT   # Set up USER and WORKDIR; set up DISPLAY for that USER USER ${user} WORKDIR \/home\/${user} ENV DISPLAY=${DISPLAY} # ----- \\end{non-root-user-section} ----------------------------  # Run bash on the container's start CMD bash <\/code><\/pre>\n<p>\u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u041e\u0421 Ubuntu 20.04 Focal Fossa. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u0437\u043e\u0440\u0430 \u044d\u0442\u043e \u2014 \u043c\u043e\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u041e\u0421, \u0438 \u044f \u0435\u0451 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0437\u043d\u0430\u044e. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043b\u044e\u0431\u043e\u0439 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 Debian-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0434\u043e\u0439\u0442\u0438 \u0431\u0435\u0437 \u043e\u0441\u043e\u0431\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 (\u0438\u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439) \u0432\u043e \u0432\u0441\u0435\u0439 \u043e\u0441\u0442\u0430\u0432\u0448\u0435\u0439\u0441\u044f \u0447\u0430\u0441\u0442\u0438 Dockerfile&#8217;\u0430.<\/p>\n<p>\u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b <code>ARG<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f Docker&#8217;\u043e\u043c \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430, \u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b <code>ENV<\/code> \u0437\u0430\u0434\u0430\u044e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u0440\u0438 \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0435.<\/p>\n<p><code>10.255.25.1<\/code> \u2014 \u044d\u0442\u043e IP-\u0430\u0434\u0440\u0435\u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 <code>br-aeb9dcd262b9<\/code> \u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043a \u00ab\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439\u00bb Docker-\u0441\u0435\u0442\u0438 <code>dcr_itl_25<\/code>; \u044d\u0442\u043e\u0442 IP-\u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0435\u043c\u0443 \u043d\u0430 (\u0443\u0441\u043b\u043e\u0432\u043d\u043e) \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u0435: \u043e\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0441\u0432\u043e\u0435\u0439 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421, \u0442.\u043a. \u043e\u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u2014 \u0430, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 \u2014 \u043f\u0435\u0440\u0432\u043e\u0439. \u0414\u0430\u043b\u0435\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c \u043f\u043e \u043c\u0435\u0440\u0435 \u0438\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u0438\u0437 \u044d\u0442\u043e\u0439 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438, \u043f\u043e \u043c\u0435\u0440\u0435 \u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u044d\u0442\u043e\u0439 Docker-\u0441\u0435\u0442\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 <code>10.255.25.2<\/code>.<br \/> <code>DISPLAY=10.255.25.1:0<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u00ab\u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f\u00bb \u043d\u0430 \u043f\u043e\u0440\u0442 6000, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 <code>DISPLAY=:0<\/code> \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0422.\u0435. \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0430\u0448 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0431\u0443\u0434\u0443\u0447\u0438 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u0432\u0448\u0438\u043c\u0438\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c (\u0438, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c ;-)) \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c\u00bb. \u041a\u0430\u043a \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c, \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u043c\u0443 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f <code>DISPLAY=:0<\/code>. \u0414\u0430\u043b\u0435\u0435 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 <code>user-1<\/code>, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u00bb \u0447\u0430\u0441\u0442\u0438.<br \/> \u0414\u0443\u043c\u0430\u044e, \u0443\u0436\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0445 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u043d\u0430 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u043c\u00bb xorg \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 ACL&#8217;\u043e\u0432 <code>xhost<\/code>. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043d\u0430\u0448\u0435\u043c Dockerfile \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u0440\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>XAUTHORITY<\/code>, \u043a\u0430\u043a \u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u00ab\u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e\u0439\u00bb \u043a\u0443\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<\/p>\n<p>\u041f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 Ubuntu \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0432\u0441\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c (\u043d\u0435-\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c) \u0443\u0447\u0435\u0442\u043d\u044b\u043c \u0437\u0430\u043f\u0438\u0441\u044f\u043c \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u0441\u044f <code>UID<\/code>&#8216;\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 1000. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0432\u044b\u0439, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u044d\u0442\u043e\u0439 \u041e\u0421, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442 <code>UID=1000<\/code>. \u042d\u0442\u043e\u0442 \u044e\u0437\u0435\u0440 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u043c, \u043d\u043e \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c. \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u2014 \u044d\u0442\u043e <code>user-1<\/code> \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421. \u0427\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u0440\u0438 \u00ab\u0440\u0430\u0441\u0448\u0430\u0440\u0438\u0432\u0430\u043d\u0438\u0438\u00bb \u043f\u0430\u043f\u043e\u043a \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u0432\u043d\u0443\u0442\u0440\u044c \u043d\u0430\u0448\u0435\u0433\u043e Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u043c \u043d\u0430\u0448\u0435\u043c\u0443 \u043d\u0435-\u00ab\u0440\u0443\u0442\u043e\u0432\u043e\u043c\u0443\u00bb \u044e\u0437\u0435\u0440\u0443 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0442\u043e\u0442 \u0436\u0435 <code>UID<\/code>, \u0442.\u0435. \u0440\u0430\u0432\u043d\u044b\u0439 1000. \u041e\u0442\u0441\u044e\u0434\u0430 \u0438\u0434\u0451\u0442 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 <code>ARG uid=1000<\/code>. \u0410 \u043d\u0430\u0437\u043e\u0432\u0451\u043c \u043c\u044b \u044d\u0442\u043e\u0433\u043e \u044e\u0437\u0435\u0440\u0430 <code>bob<\/code>, \u043f\u0440\u043e\u0441\u0442\u043e <code>bob<\/code>, \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0442\u0438. \u0422\u0430\u043a \u0436\u0435 \u0438 \u0435\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044c, \u043a\u0430\u043a \u0438 \u043f\u0430\u0440\u043e\u043b\u044c root&#8217;\u0430 \u0442\u043e\u0436\u0435, \u2014 \u0431\u0443\u0434\u0443\u0442 <code>bob<\/code>.<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0430\u0448 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0432 \u0442.\u043d. &#171;root-mode&#187;. \u0412 \u0442\u0430\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 <code>UID<\/code>&#8216;\u044b \u044e\u0437\u0435\u0440\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 <code>UID<\/code>&#8216;\u0430\u043c \u044e\u0437\u0435\u0440\u043e\u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421. \u0415\u0441\u0442\u044c \u0435\u0449\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c Docker \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 &#171;rootless-mode&#187;. \u042d\u0442\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0438 \u044f\u0432\u043d\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c mapping \u044e\u0437\u0435\u0440\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0430 \u044e\u0437\u0435\u0440\u043e\u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0436\u0435 \u043d\u0435 \u0432\u0430\u0436\u043d\u043e, \u043a\u0430\u043a\u043e\u0439 \u0442\u0430\u043c <code>UID<\/code> \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u043d\u0435-\u00ab\u0440\u0443\u0442\u043e\u0432\u044b\u0439\u00bb \u044e\u0437\u0435\u0440 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430: \u0432\u0441\u0451 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 mapping&#8217;\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0440\u0430\u0437\u0431\u043e\u0440 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 &#171;rootless-mode&#187; \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0437\u043e\u0440\u0430.<\/p>\n<p>\u041d\u0430\u0437\u043d\u0430\u0447\u0438\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 Docker-\u0442\u043e\u043c (<code>VOLUME<\/code>), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043a \u0424\u0421 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043a\u0430\u043a <code>\/opt\/matlab<\/code>. \u0418\u043c\u0435\u043d\u043d\u043e \u0432 \u044d\u0442\u0443 \u043f\u0430\u043f\u043a\u0443 \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0441\u0442\u0430\u0432\u0438\u0442\u044c Matlab. \u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e Docker-\u0442\u043e\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u0440\u0430\u0437\u0443 \u00ab\u0443\u0431\u0438\u0442\u044c \u0434\u0432\u0443\u0445 \u0437\u0430\u0439\u0446\u0435\u0432\u00bb. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u044d\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u0442\u043e\u043c \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0434\u043f\u0430\u043f\u043a\u0430 \u00ab\u0432 \u043d\u0435\u0434\u0440\u0430\u0445\u00bb <code>\/var\/lib\/docker<\/code>, \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0430\u043f\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>docker-data-root<\/code> \u0432 \u0432\u0430\u0448\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 (\u043e\u043f\u0446\u0438\u044f <code>data-root<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435 <code>\/etc\/docker\/daemon.json<\/code> ; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 \u043a\u0430\u043a \u0440\u0430\u0437 <code>\/var\/lib\/docker<\/code>). \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u00ab\u043f\u043e\u043a\u043e\u0432\u044b\u0440\u044f\u0442\u044c\u0441\u044f \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445\u00bb Matlab&#8217;\u043e\u0432\u0441\u043a\u0438\u0445 Toolbox&#8217;\u043e\u0432, \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u043d\u043e \u0438 \u0434\u0430\u0436\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u044f. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0442\u043e\u043c\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u043a \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043a \u0434\u0440\u0443\u0433\u043e\u043c\u0443. \u042d\u0442\u043e (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e! \u042f \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u2014 \u043d\u043e \u0442\u0443\u0442 \u0432\u0441\u0451 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 Matlab&#8230;) \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u043c\u0443 \u0442\u043e\u043c \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c Matlab&#8217;\u043e\u043c, \u0438\u0437\u0431\u0435\u0436\u0430\u0432 \u0435\u0433\u043e, Matlab&#8217;\u0430, \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438.<\/p>\n<p>\u0424\u0430\u0439\u043b <code>configs.tar.bz2<\/code> \u2014 \u044d\u0442\u043e \u0430\u0440\u0445\u0438\u0432 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u0430\u0441\u0430\u044e\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u0435\u0430\u043d\u0441\u043e\u0432 <code>bash<\/code>, \u043a\u043e\u0435-\u043a\u0430\u043a\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 <code>\/etc\/inputrc<\/code> (\u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u0435\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 \u043a\u043b\u0430\u0432\u0438\u0448\u0430\u043c\u0438 <code>PgUp<\/code> \u0438 <code>PgDn<\/code>), \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0434\u043b\u044f <code>adduser<\/code> (\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 <code>\/etc\/skel\/<\/code>), \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>aliases<\/code> \u0434\u043b\u044f <code>bash<\/code> \u0438 \u0442.\u043f. \u041e\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c \u2014 \u044d\u0442\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0441\u0442\u0438 \u0438 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430, \u0431\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043b\u0438\u0447\u043d\u043e \u043c\u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u00ab\u0433\u0440\u0443\u0441\u0442\u043d\u043e\u00bb.<\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 \u0438\u0437 Dockerfile&#8217;\u0430 \u043d\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u044e\u0437\u0435\u0440\u043e\u043c-\u00ab\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c\u00bb, \u0432\u0441\u0435 \u0432\u044b\u0437\u043e\u0432\u044b <code>apt-get<\/code> \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0435-\u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438. \u041b\u044e\u0431\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u0434\u0438\u0430\u043b\u043e\u0433\u0438 \u043f\u043e\u0441\u043b\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 (\u043a\u0430\u043a \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 <code>mc<\/code>, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440) \u0438\u043b\u0438 \u0434\u0438\u0430\u043b\u043e\u0433\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f (\u043a\u0430\u043a \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 <code>ttf-mscorefonts-installer<\/code>) \u043f\u0440\u0438\u0432\u0435\u0434\u0443\u0442 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 \u043d\u0435\u043c\u0438\u043d\u0443\u0435\u043c\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u043e\u0439. \u041e\u0442\u0441\u044e\u0434\u0430 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 <code>apt-get<\/code>.<\/p>\n<p>\u0412\u0441\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u044f \u0440\u0430\u0437\u0431\u0438\u043b \u043d\u0430 4 \u0433\u0440\u0443\u043f\u043f\u044b, \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>apt-get install<\/code>.<\/p>\n<ol>\n<li>\n<p>\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u0441 \u043c\u043e\u0435\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u044b. \u042d\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 <code>xterm<\/code> \u2014 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442\u044c \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043f\u043b\u044e\u0441 <code>mesa-utils<\/code> \u2014 \u044d\u0442\u043e \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <code>glxheads<\/code>, <code>glxgears<\/code> \u0438 \u0442.\u0434., \u0438 \u043f\u043b\u044e\u0441 <code>xauth<\/code> \u2014 \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u043c \u043f\u043e\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0441 \u00ab\u0432\u043e\u043b\u0448\u0435\u0431\u043d\u044b\u043c\u0438\u00bb \u043a\u0443\u043a\u0438 \u0438 <code>XAUTHORITY<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0448\u0440\u0438\u0444\u0442\u044b \u0434\u043b\u044f GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0431\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0448\u0440\u0438\u0444\u0442\u044b \u0434\u043b\u044f GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0431\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043c\u043e\u0436\u043d\u043e \u0438 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438-\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u0431\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 Matlab.<\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u0430\u043a\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0439 Dockerfile \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0449\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0438\u0437 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430.<\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u044f \u0445\u043e\u0447\u0443, \u0447\u0442\u043e\u0431\u044b:<\/p>\n<ol>\n<li>\n<p>\u044f \u0431\u044b\u043b \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u043d \u044e\u0437\u0435\u0440\u043e\u043c <code>bob<\/code> (\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 <code>USER<\/code>),<\/p>\n<\/li>\n<li>\n<p>\u043c\u043e\u0435\u0439 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 \u0431\u044b\u043b\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u043f\u0430\u043f\u043a\u0430 <code>bob<\/code>&#8216;\u0430 (<code>WORKDIR<\/code>),<\/p>\n<\/li>\n<li>\n<p>\u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0438 \u0431\u044b\u043b \u0437\u0430\u043f\u0443\u0449\u0435\u043d <code>bash<\/code> (<code>CMD<\/code>).<\/p>\n<\/li>\n<\/ol>\n<p>\u042f \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043b\u0451\u0433\u043a\u043e\u0439 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043c\u043e\u0435\u0433\u043e Dockerfile&#8217;\u0430 \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442 \u043e\u0431\u0440\u0430\u0437, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e root \u0438 \u043d\u0435\u0442 bob&#8217;\u0430 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043d\u0435-\u00ab\u0440\u0443\u0442\u043e\u0432\u043e\u0433\u043e\u00bb \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c (\u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c) \u0441\u0442\u0440\u043e\u043a\u0438 \u043e\u0442 <code># ----- \\begin{non-root-user-section}<\/code> \u0434\u043e <code># ----- \\end{non-root-user-section}<\/code>. \u041a\u0441\u0442\u0430\u0442\u0438, \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 <code>ENV DISPLAY=${DISPLAY}<\/code> \u0432 \u043c\u043e\u0435\u043c Dockerfile \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0430\u0436\u0434\u044b.<\/p>\n<h4>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438 \u0435\u0433\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a<\/h4>\n<p><a class=\"anchor\" name=\"docker-create\" id=\"docker-create\"><\/a><\/p>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0447\u0442\u043e \u043c\u044b \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u043b\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 Dockerfile (\u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438) \u0432 \u043f\u0430\u043f\u043a\u0435:<br \/> <code>~\/GIT\/focal-gui-xclient\/<\/code><br \/> \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437 \u0438\u0437 Dockerfile&#8217;\u0430:<\/p>\n<pre><code class=\"bash\">$ docker build ~\/GIT\/focal-gui-xclient\/ -t focal-gui-xclient <\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430 \u0437\u0430\u0439\u043c\u0451\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u0411\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430. \u0423\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u043a\u0430\u044f:<\/p>\n<pre><code class=\"bash\"> => => naming to docker.io\/library\/focal-gui-xclient <\/code><\/pre>\n<p>\u0410 \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u2014 \u043d\u043e\u043b\u044c:<\/p>\n<pre><code class=\"bash\">$ echo $? 0 <\/code><\/pre>\n<p>\u041e\u043f\u0446\u0438\u044f <code>-t focal-gui-xclient<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0434\u0430\u0442\u044c &#171;tag&#187;, \u0442.\u0435. \u0438\u043c\u044f \u043e\u0431\u0440\u0430\u0437\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0435\u0433\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c.<\/p>\n<pre><code class=\"bash\">$ docker images REPOSITORY          TAG       IMAGE ID       CREATED         SIZE focal-gui-xclient   latest    bbd4caed2232   5 minutes ago   738MB  # &lt;----- \u0412\u043e\u0442 \u043e\u043d. focal_gui_02        latest    d8e84032f5ae   6 months ago    546MB focal_gui_01        latest    d75b3ba00feb   8 months ago    299MB ubuntu              20.04     f32fe8df6a4c   9 months ago    72.8MB <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 Matlab.<br \/> \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440:<\/p>\n<pre><code class=\"bash\">$ docker create --name ml_r2022b -ti -h ml_r2022b -v \/home\/user-1\/DOCKER_SHARE\/MatLab:\/data -v \/etc\/localtime:\/etc\/localtime focal-gui-xclient 2aea7ff34db0196cc0c9f40f5baa17cff9f1a0f0677567b69589b377b91fe4cd <\/code><\/pre>\n<p>\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043e\u0431\u0440\u0430\u0437\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u0447\u0442\u0438 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e. \u0412\u044b\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u2014 \u044d\u0442\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 ID \u0432\u043d\u043e\u0432\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0431\u0430\u0437\u0435 Docker&#8217;\u0430.<br \/> \u041e\u043f\u0446\u0438\u044f <code>-v<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 &#171;volume&#187;, \u043e\u043d\u0430 \u043d\u0443\u0436\u043d\u0430 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 &#171;bind&#187; \u043f\u0430\u043f\u043a\u0443 <code>\/home\/user-1\/DOCKER_SHARE\/MatLab<\/code> \u0438\u0437 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u0432 \u043f\u0430\u043f\u043a\u0443 <code>\/data<\/code> \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u0422\u0430\u043a\u043e\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u043b\u0430\u0434\u0438\u0442\u044c \u043e\u0431\u043c\u0435\u043d \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c; \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u0424\u0421 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043e\u0442 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u0424\u0421. \u041e\u043f\u0446\u0438\u0438 <code>-t<\/code> \u0438 <code>-i<\/code> \u2014 &#171;tty&#187; \u0438 &#171;interactive&#187; \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u2014 \u043d\u0443\u0436\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c. \u041e\u043f\u0446\u0438\u044f <code>-h ml_r2022b<\/code> \u0437\u0430\u0434\u0430\u0435\u0442 \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 (hostname), \u043e\u043d\u043e, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <code>user@hostname<\/code>. <code>--name ml_r2022b<\/code> \u2014 \u044d\u0442\u043e \u0443\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0435 \u0438\u043c\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0439\u0442\u0438 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u042f \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u043e\u043f\u0446\u0438\u0439 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<pre><code class=\"bash\">$ docker ps -a CONTAINER ID   IMAGE               COMMAND             CREATED          STATUS                         PORTS     NAMES 2aea7ff34db0   focal-gui-xclient   \"\/bin\/sh -c bash\"   29 minutes ago   Created                                  ml_r2022b  # &lt;--- \u0412\u043e\u0442 \u043e\u043d, \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440. 132ee3c699ce   focal_gui_02        \"\/bin\/sh -c bash\"   6 months ago     Exited (0) About an hour ago             focal_02 5cd450dc1260   f32fe8df6a4c        \"\/bin\/bash\"         8 months ago     Exited (0) 5 hours ago                   focal_01 <\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0432\u043d\u043e\u0432\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ docker start -ai ml_r2022b To run a command as administrator (user \"root\"), use \"sudo &lt;command>\". See \"man sudo_root\" for details.  Your password is: bob bob@ml_r2022b:~$  <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043e\u043f\u0446\u0438\u044f <code>-a<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 &#171;attach&#187;, \u0442.\u0435. \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043a <code>STDOUT<\/code>\/<code>STDERR<\/code> \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421, \u0430 \u043e\u043f\u0446\u0438\u044f <code>-i<\/code>, \u0442.\u0435. &#171;interactive&#187; \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c <code>STDIN<\/code> \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043a \u00ab\u0445\u043e\u0437\u044f\u0438\u043d\u0443\u00bb.<\/p>\n<p>\u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 \u0432\u044b\u0432\u043e\u0434\u0435 <code>docker ps<\/code>:<\/p>\n<pre><code class=\"bash\">$ docker ps CONTAINER ID   IMAGE               COMMAND             CREATED             STATUS          PORTS     NAMES 2aea7ff34db0   focal-gui-xclient   \"\/bin\/sh -c bash\"   About an hour ago   Up 41 seconds             ml_r2022b <\/code><\/pre>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043a Docker-\u0441\u0435\u0442\u0438 <code>bridge<\/code> \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 <code>docker0<\/code> \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 (<code>IP 172.17.0.1\/16<\/code>) \u0438 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u043c\u0435\u0435\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u043e \u0432\u043d\u0435.<\/p>\n<pre><code class=\"bash\">bob@ml_r2022b:~$ ifconfig  eth0: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500         inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255  # &lt;---- \u0441\u0440. \u0441 172.17.0.1\/16 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 docker0         ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)         RX packets 14  bytes 2204 (2.2 KB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 0  bytes 0 (0.0 B)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  lo: flags=73&lt;UP,LOOPBACK,RUNNING>  mtu 65536         inet 127.0.0.1  netmask 255.0.0.0         loop  txqueuelen 1000  (Local Loopback)         RX packets 0  bytes 0 (0.0 B)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 0  bytes 0 (0.0 B)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  bob@ml_r2022b:~$ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=110 time=50.0 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=110 time=36.7 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=110 time=55.6 ms ^C --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2004ms rtt min\/avg\/max\/mdev = 36.681\/47.435\/55.607\/7.939 ms  bob@ml_r2022b:~$ ping www.google.com PING www.google.com (142.250.201.196) 56(84) bytes of data. 64 bytes from bud02s35-in-f4.1e100.net (142.250.201.196): icmp_seq=1 ttl=110 time=44.6 ms 64 bytes from bud02s35-in-f4.1e100.net (142.250.201.196): icmp_seq=2 ttl=110 time=62.3 ms 64 bytes from bud02s35-in-f4.1e100.net (142.250.201.196): icmp_seq=3 ttl=110 time=61.8 ms ^C --- www.google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min\/avg\/max\/mdev = 44.620\/56.250\/62.338\/8.227 ms <\/code><\/pre>\n<p>\u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u043b\u0438\u0431\u043e GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f:<\/p>\n<pre><code class=\"bash\">bob@ml_r2022b:~$ xterm  No protocol specified xterm: Xt error: Can\\'t open display: 10.255.25.1:0  bob@ml_r2022b:~$ echo $DISPLAY 10.255.25.1:0 <\/code><\/pre>\n<p>(10.255.25.1 \u2014 \u044d\u0442\u043e IP-\u0430\u0434\u0440\u0435\u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 <code>br-aeb9dcd262b9<\/code> \u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421, \u043e\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 Docker-\u0441\u0435\u0442\u0438 <code>dcr_itl_25<\/code>)<\/p>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, \u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u00ab\u0438\u043a\u0441\u0430\u043c\u00bb \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ xhost  access control enabled, only authorized clients can connect SI:localuser:user-1 <\/code><\/pre>\n<p>\u0418\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u044d\u0442\u043e. \u0421\u043f\u0435\u0440\u0432\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043a Docker-\u0441\u0435\u0442\u0438 <code>dcr_itl_25<\/code> (<code>IP 10.255.25.0\/24<\/code>):<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ docker network connect dcr_itl_25 ml_r2022b <\/code><\/pre>\n<p>\u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u0438 \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a IP, \u0433\u0434\u0435 \u00ab\u043b\u0435\u0436\u0438\u0442\u00bb x-\u0434\u0438\u0441\u043f\u043b\u0435\u0439:<\/p>\n<pre><code class=\"bash\">bob@ml_r2022b:~$ ifconfig  eth0: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500         inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255         ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)         RX packets 85  bytes 14888 (14.8 KB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 21  bytes 1553 (1.5 KB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  eth1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500         inet 10.255.25.2  netmask 255.255.255.0  broadcast 10.255.25.255  # &lt;------- \u0412\u043e\u0442 \u043e\u043d.         ether 02:42:0a:ff:19:02  txqueuelen 0  (Ethernet)         RX packets 11  bytes 1310 (1.3 KB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 9  bytes 566 (566.0 B)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  lo: flags=73&lt;UP,LOOPBACK,RUNNING>  mtu 65536         inet 127.0.0.1  netmask 255.0.0.0         loop  txqueuelen 1000  (Local Loopback)         RX packets 0  bytes 0 (0.0 B)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 0  bytes 0 (0.0 B)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  bob@ml_r2022b:~$ ping 10.255.25.1 PING 10.255.25.1 (10.255.25.1) 56(84) bytes of data. 64 bytes from 10.255.25.1: icmp_seq=1 ttl=64 time=0.088 ms 64 bytes from 10.255.25.1: icmp_seq=2 ttl=64 time=0.111 ms 64 bytes from 10.255.25.1: icmp_seq=3 ttl=64 time=0.097 ms ^C --- 10.255.25.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2054ms rtt min\/avg\/max\/mdev = 0.088\/0.098\/0.111\/0.009 ms <\/code><\/pre>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e\u0433\u043e \u0432\u0441\u0451 \u0435\u0449\u0451 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0432 \u0447\u0435\u043c \u043b\u0435\u0433\u043a\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u043f\u043e\u043f\u044b\u0442\u0430\u0432\u0448\u0438\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c <code>xterm<\/code>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u00ab\u0438\u043a\u0441\u0430\u043c\u00bb \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043b\u0438\u0431\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432 \u0421\u043f\u0438\u0441\u043e\u043a \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0414\u043e\u0441\u0442\u0443\u043f\u0430 <code>xhost<\/code>:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ xhost +10.255.25.2 10.255.25.2 being added to access control list  user-1@ThinkPad:~$ xhost  access control enabled, only authorized clients can connect INET:10.255.25.2 SI:localuser:user-1 <\/code><\/pre>\n<p>\u043b\u0438\u0431\u043e (\u043d\u0430 \u0432\u0440\u0435\u043c\u044f) \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0414\u043e\u0441\u0442\u0443\u043f\u0430 <code>xhost<\/code>:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ xhost + access control disabled, clients can connect from any host <\/code><\/pre>\n<p>(\u0447\u0442\u043e \u043a\u0440\u0430\u0439\u043d\u0435 <em>\u041d\u0415 \u0420\u0415\u041a\u041e\u041c\u0415\u041d\u0414\u0423\u0415\u0422\u0421\u042f!<\/em> \u0425\u043e\u0442\u044f \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e: \u043e\u0442 \u0432\u0441\u0435\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0442\u0435\u0439 \u043c\u044b \u043f\u0440\u0438\u043a\u0440\u044b\u0442\u044b \u0444\u0430\u0439\u0435\u0440\u0432\u043e\u043b\u043e\u043c. \u041e\u043f\u0430\u0441\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u00ab\u043f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u043e\u0432\u00bb \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u00ab\u0433\u043e\u0441\u0442\u0435\u0439\u00bb \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0435\u0430\u043d\u0441\u043e\u0432, \u0435\u0441\u043b\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u00bb.)<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c <code>xterm<\/code>, \u043a\u0430\u043a \u0438 \u043b\u044e\u0431\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0443 \u043d\u0430\u0441 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432\u043e \u0432\u043d\u0435, \u0432 \u0447\u0451\u043c \u043b\u0435\u0433\u043a\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b <code>ping<\/code>. \u0427\u0442\u043e\u0431\u044b \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0433\u043e \u043e\u0442 Docker-\u0441\u0435\u0442\u0438 <code>bridge<\/code>:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ docker network disconnect bridge ml_r2022b <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0438\u0437\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0435\u0442:<\/p>\n<pre><code class=\"bash\">bob@ml_r2022b:~$ ifconfig  eth1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500         inet 10.255.25.2  netmask 255.255.255.0  broadcast 10.255.25.255  # &lt;--- \u0441\u0435\u0442\u044c dcr_itl_25         ether 02:42:0a:ff:19:02  txqueuelen 0  (Ethernet)         RX packets 1687  bytes 464087 (464.0 KB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 1553  bytes 182498 (182.4 KB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  lo: flags=73&lt;UP,LOOPBACK,RUNNING>  mtu 65536         inet 127.0.0.1  netmask 255.0.0.0         loop  txqueuelen 1000  (Local Loopback)         RX packets 6  bytes 465 (465.0 B)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 6  bytes 465 (465.0 B)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  bob@ml_r2022b:~$ ping www.google.com ping: www.google.com: Temporary failure in name resolution  bob@ml_r2022b:~$ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. ^C --- 8.8.8.8 ping statistics --- 571 packets transmitted, 0 received, 100% packet loss, time 583666ms <\/code><\/pre>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0435\u0442\u0435\u0432\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u0438. \u0422.\u0435. \u0435\u0441\u043b\u0438 \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u2014 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0441\u044f \u0432 \u0432\u044b\u0432\u043e\u0434\u0435 <code>docker ps<\/code> \u2014 \u0430 \u043f\u043e\u0442\u043e\u043c \u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u0442\u043e \u043e\u043d \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u043e\u0434\u043d\u043e\u0439 Docker-\u0441\u0435\u0442\u0438 \u2014 <code>dcr_itl_25<\/code>, \u043a\u0430\u043a \u044d\u0442\u043e \u0438 \u0431\u044b\u043b\u043e \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u0435\u0433\u043e \u00ab\u0437\u0430\u0433\u043b\u0443\u0448\u0438\u043b\u0438\u00bb.<\/p>\n<p>\u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u0432\u0435\u0441\u044c\u043c\u0430 \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u2014 \u044d\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0439\u043c-\u0437\u043e\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u0447\u0430\u0441\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f, \u0447\u0442\u043e \u0438 \u0447\u0430\u0441\u044b \u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0447\u0430\u0441\u044b \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f UTC. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u043e, \u043d\u0430\u0434\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0446\u0435\u043b\u044c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0438\u043c\u043b\u0438\u043d\u043a <code>\/etc\/localtime<\/code>. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u043d \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 <code>\/usr\/share\/zoneinfo\/Etc\/UTC<\/code>. \u041d\u0430\u0434\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0443\u0434\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 <code>\/etc\/localtime<\/code> \u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u0438 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u043d\u0430 \u0442\u043e\u0442 \u0436\u0435 \u0444\u0430\u0439\u043b (\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0424\u0421 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430). \u041f\u0443\u0441\u0442\u044c \u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u043e\u043d \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 <code>\/usr\/share\/zoneinfo\/Europe\/Podgorica<\/code>, \u0442\u043e\u0433\u0434\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">bob@ml_r2022b:~$ sudo rm -f \/etc\/localtime bob@ml_r2022b:~$ sudo ln -s \/usr\/share\/zoneinfo\/Europe\/Podgorica \/etc\/localtime <\/code><\/pre>\n<p>\u0412\u0441\u0451, \u0442\u0435\u043f\u0435\u0440\u044c \u0432 \u00ab\u0445\u043e\u0437\u044f\u0438\u043d\u0435\u00bb \u0438 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435.<\/p>\n<p><em>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u21161:<\/em> \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u2014 \u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u2014 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u0442\u0430\u0439\u043c-\u0437\u043e\u043d\u043e\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0442\u0430\u043a\u043e\u0435. \u041f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e <code>-v \/etc\/localtime:\/etc\/localtime<\/code> \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 <code>docker create<\/code>.<br \/> <em>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u21162:<\/em> \u0412\u043d\u0451\u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0432 <a href=\"#docker-create\" rel=\"noopener noreferrer nofollow\">\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435<\/a>.<\/p>\n<h4>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c<\/h4>\n<p><a class=\"anchor\" name=\"using-container\" id=\"using-container\"><\/a><\/p>\n<p>\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ docker start -ai ml_r2022b To run a command as administrator (user \"root\"), use \"sudo &lt;command>\". See \"man sudo_root\" for details.  Your password is: bob bob@ml_r2022b:~$  <\/code><\/pre>\n<p>\u0410 \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0432\u0435\u0441\u0442\u0438 <code>exit<\/code> \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430:<\/p>\n<pre><code class=\"bash\">bob@ml_r2022b:~$ exit exit user-1@ThinkPad:~$ <\/code><\/pre>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043c\u044b \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432 <code>x\u042bhost<\/code> ACL:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ xhost +10.255.25.2 10.255.25.2 being added to access control list <\/code><\/pre>\n<p>\u0410 \u043f\u043e\u0441\u043b\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0435\u0433\u043e \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0437 ACL:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ xhost -10.255.25.2 10.255.25.2 being removed from access control list <\/code><\/pre>\n<p>\u0423\u0437\u043d\u0430\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043c\u043e\u0436\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>ifconfig<\/code> \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<br \/> \u0422\u0430\u043a\u0430\u044f \u00ab\u0432\u043e\u0437\u043d\u044f\u00bb \u0441 ACL&#8217;\u0430\u043c\u0438 <code>xhost<\/code> \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u0430. \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, <code>xhost +&lt;Host Name or IP address><\/code> \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d \u0438\u043c\u0435\u043d\u0438 \u0445\u043e\u0441\u0442\u043e\u0432: \u0445\u043e\u0441\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0432\u043d\u043e\u0441\u0438\u0442\u044c\/\u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0437\u0430 \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043d\u0430\u043f\u0438\u0441\u0430\u0432 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 (\u044f \u043d\u0430\u0437\u0432\u0430\u043b \u0435\u0433\u043e <code>xhosts4dockernet_keeper.sh<\/code>):<\/p>\n<pre><code class=\"bash\">#\/bin\/bash # xhosts4dockernet_keeper.sh [DockerNetworkName | INET:]  # docker-network to be inspected, if no input passed: NetworkName=\"dcr_itl_25\" #NetworkName=\"INET:\" # --------------------------------------------------- # \"default\" net mask size, if unsupported value was met; # supported values are: 8, 16 and 24 [bits] only. defNetMaskSz=24 # ---------------------------------------------------  if [[ $1 ]] ; then   NetworkName=\"$1\" fi  # Force enable xhost's ACL support xhost -  # If special \"INET:\" DockerNetworkName is met, remove all  # the records of \"inet\" family from the ACL and exit. if [[ \"${NetworkName}\" = \"INET:\" ]] ; then   xhostIPs=$(xhost | sed -n 's\/INET:\/\/p')   for xip in $xhostIPs ; do     xhost -${xip}   done   exit $? fi  # Obtain address and mask size of the given docker-network. dn=$(docker network inspect -f '{{json .IPAM.Config}}' ${NetworkName} | sed 's\/\\[\/\/' | sed 's\/\\]\/\/' | jq '.Subnet' | sed 's\/\"\/\/g') netMaskSz=${dn#*\/} netAddr=${dn%\/*}  # Check whether the net mask size is supported. If not -- # fall back to its \"default\" value and print Warning message. if [[ -z \"$(echo '8 16 24' | grep ${netMaskSz})\" ]] ; then   echo \"Warning!\"   echo \"Unsupported net mask size: ${netMaskSz} bits\"   echo \"Supported values are: 8, 16 and 24 bits only.\"   echo \"Will treat your xhost's ACL as if the mask size was ${defNetMaskSz} bits.\"   echo \"This could lead to some unexpected results!\"   netMaskSz=${defNetMaskSz} fi  # Set up the IP address filter from the address and mask size.  case \"${netMaskSz}\" in   8)     recFltr=INET:$(echo ${netAddr} | awk 'BEGIN { FS = \".\"; OFS=\".\" } ; { print $1 }').     ;;   16)     recFltr=INET:$(echo ${netAddr} | awk 'BEGIN { FS = \".\"; OFS=\".\" } ; { print $1,$2 }').     ;;   24)     recFltr=INET:$(echo ${netAddr} | awk 'BEGIN { FS = \".\"; OFS=\".\" } ; { print $1,$2,$3 }').     ;; esac   # It's time to treat xhost's ACL: # ------------------------------- # 1. Add to xhost's ACL all the found IPs of all running  # containers - members of the given docker-network. # xhost is smart enough to not add the already added IP.  dockerIPs=$(docker network inspect -f '{{json .Containers}}' ${NetworkName} | jq '.. | if type==\"object\" and has(\"Name\") then .IPv4Address else empty end' | sed  's\/\"\/\/g' | sed 's\/\\\/[0-9]*\/\/')  for ip in $dockerIPs ; do   xhost +${ip} done  # 2. Clear xhost ACL records that do not correspond to any running container # of the given docker-network. xhostIPs=$(xhost | grep ${recFltr} | sed 's\/INET:\/\/') for xip in $xhostIPs ; do   if [[ -z \"$(echo $dockerIPs | grep ${xip})\" ]] ; then     xhost -${xip}   fi done <\/code><\/pre>\n<p><code>xhosts4dockernet_keeper.sh<\/code> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0438\u043c\u044f Docker-\u0441\u0435\u0442\u0438 (\u0442\u0430\u043a\u043e\u0435 \u043a\u0430\u043a <code>dcr_itl_25<\/code>), \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0442\u044c. \u042d\u0442\u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 Docker-\u0441\u0435\u0442\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043a\u0430\u043a\u0438\u0435 \u0443 \u043d\u0438\u0445 IP-\u0430\u0434\u0440\u0435\u0441\u0430. \u041f\u043e\u0442\u043e\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u044d\u0442\u0438 IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u0432 <code>xhost<\/code> ACL. \u0417\u0430\u0442\u0435\u043c \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0438\u0437 ACL IP-\u0430\u0434\u0440\u0435\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u0434\u0430\u043d\u043d\u043e\u0439 Docker-\u0441\u0435\u0442\u0438, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u0412\u0441\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u2014 <em>\u041d\u0415 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 Docker-\u0441\u0435\u0442\u0438<\/em> \u2014 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0442\u0440\u043e\u043d\u0443\u0442\u044b\u043c\u0438.  \u0415\u0441\u043b\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0438\u043c\u0435\u043d\u0438 Docker-\u0441\u0435\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>INET:<\/code>, \u0442\u043e \u044d\u0442\u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 \u0443\u0434\u0430\u043b\u0438\u0442 \u0438\u0437 <code>xhost<\/code> ACL \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0435\u0441\u044f \u043a \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c (\u0442\u043e\u043b\u044c\u043a\u043e IPv4. IPv6 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 IPv6 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f!).<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043a\u0430\u043a\u043e\u0433\u043e \u043b\u0438\u0431\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0433\u043e, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043a Docker-\u0441\u0435\u0442\u0438 <code>dcr_itl_25<\/code> \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f <code>xhost<\/code> ACL \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ xhosts4dockernet_keeper.sh dcr_itl_25 <\/code><\/pre>\n<p>(\u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 \u043b\u0435\u0436\u0438\u0442 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0430\u043f\u043e\u043a, \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>PATH<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 <code>~\/bin\/<\/code>).<\/p>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043a \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 Docker-\u0441\u0435\u0442\u0438 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>dcr_itl_25<\/code> \u2014 \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043e\u0442 \u043d\u0435-\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>bridge<\/code> \u2014 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u041a\u0430\u043a \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c, \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u00ab\u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u00bb \u0441\u0432\u043e\u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043d\u0430\u043c \u0432\u0441\u0451 \u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043a \u043d\u0435-\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 Docker-\u0441\u0435\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0438\u043b\u0438 \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u0434\u043e\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043f\u0435\u0440\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c <code>htop<\/code> \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 root&#8217;\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430:<\/p>\n<pre><code class=\"bash\">bob@ml_r2022b:~$ sudo htop <\/code><\/pre>\n<p>(\u0438\u043b\u0438 \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0437\u0430\u0434\u0430\u0447) \u0438 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0435\u043b\u044c\u0437\u044f \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442, \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b. \u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u2014 \u0433\u043b\u0443\u0448\u0438\u043c \u0438\u0437 \u043f\u0440\u044f\u043c\u043e \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 <code>htop<\/code>&#8216;\u0430. \u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u043d\u0435-\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 Docker-\u0441\u0435\u0442\u0438:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ docker network connect bridge ml_r2022b <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043e\u043c, \u0440\u0430\u0431\u043e\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043e\u0442 \u043d\u0435-\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ docker network disconnect bridge ml_r2022b <\/code><\/pre>\n<p>\u0418 \u0432 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u043e\u0442\u043c\u0435\u0447\u0443 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442. \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0437\u0430\u043d\u044f\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0442\u043e \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u00ab\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e\u00bb \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ docker exec -ti ml_r2022b \/bin\/bash Your password is: bob bob@ml_r2022b:~$ <\/code><\/pre>\n<p>\u0418 \u0443 \u043d\u0430\u0441 \u0441\u043d\u043e\u0432\u0430 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430.<\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Matlab<\/h4>\n<p><a class=\"anchor\" name=\"matlab\" id=\"matlab\"><\/a><\/p>\n<p>\u0411\u0443\u0434\u0435\u043c \u0441\u0442\u0430\u0432\u0438\u0442\u044c Matlab \u0438\u0437 iso-\u043e\u0431\u0440\u0430\u0437\u0430. \u041f\u043e\u043c\u0435\u0441\u0442\u0438\u043c <code>MatlabLin64.iso<\/code> (\u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Matlab) \u0432 \u043f\u0430\u043f\u043a\u0443 <code>\/home\/user-1\/DOCKER_SHARE\/MatLab\/_install<\/code> \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0441\u044f \u043a\u0430\u043a <code>\/data\/_install<\/code>. \u041f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c iso-\u043e\u0431\u0440\u0430\u0437 \u0438\u0437\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u041f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0441\u043a\u043e\u0447\u0438\u0442 \u0442\u0430\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430:<\/p>\n<pre><code class=\"bash\">root@ml_r2022b:\/home\/bob# mount -o loop \/data\/_install\/MatlabLin64.iso \/mnt mount: \/mnt: mount failed: Operation not permitted. <\/code><\/pre>\n<p>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u044b. \u041e\u043d\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0441 \u043e\u043f\u0446\u0438\u0435\u0439 <code>--privileged<\/code>. \u0422.\u0435. \u044d\u0442\u0430 \u043e\u043f\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u043b\u0430 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 <code>docker create<\/code> \u0435\u0449\u0451 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u041f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c. \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043e\u043f\u0446\u0438\u044f <code>--privileged<\/code> \u0432\u0435\u0441\u044c\u043c\u0430 \u043e\u043f\u0430\u0441\u043d\u0430: \u043f\u043e\u043c\u0438\u043c\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0447\u0435\u0433\u043e \u0435\u0449\u0435. \u0410 \u043d\u0430\u0448\u0430 \u0446\u0435\u043b\u044c \u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u043f\u0440\u0430\u0432\u0430\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043c \u0442\u0430\u043a. \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440. \u0417\u0430\u0442\u0435\u043c \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u0434\u043f\u0430\u043f\u043a\u0443 <code>mnt\/<\/code> \u0432 \u043f\u0430\u043f\u043a\u0435 <code>\/home\/user-1\/DOCKER_SHARE\/MatLab\/_install<\/code> \u0438 \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0432 \u043d\u0435\u0451 \u043d\u0430\u0448 iso-\u043e\u0431\u0440\u0430\u0437:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ cd ~\/DOCKER_SHARE\/MatLab\/_install user-1@ThinkPad:~\/DOCKER_SHARE\/MatLab\/_install$ sudo mount -o loop MatlabLin64.iso mnt <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440. \u0415\u0441\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 iso-\u043e\u0431\u0440\u0430\u0437\u0430 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435, \u0442\u043e \u0438\u0437\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u0430\u043f\u043a\u0430 <code>\/data\/_install\/mnt\/<\/code> \u0442\u0430\u043a \u0438 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u043e\u0439: \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 iso-\u043e\u0431\u0440\u0430\u0437 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 <code>\/data\/_install\/mnt\/<\/code> . \u0418\u0437\u0443\u0447\u0438\u043c \u0435\u0451 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435. \u0421\u0440\u0435\u0434\u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u0444\u0430\u0439\u043b <code>installer_input.txt<\/code>. \u041e\u043d \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0435-\u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Matlab. \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e, \u0442.\u043a. \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 \u043e\u043f\u0446\u0438\u0438 \u043c\u043e\u0435\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u0438 \u043d\u0435 \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\u0445 Matlab, \u043a\u0430\u043a \u0442\u0430\u043c \u043e\u043d\u043e \u0431\u044b\u043b\u043e \u0443 \u043c\u0435\u043d\u044f \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u043a\u0443\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u0438 \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u043f\u043e\u0434 \u0441\u0435\u0431\u044f. \u0414\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0435\u0433\u043e \u0432 <code>\/data\/_install\/installer_input.txt<\/code>.<\/p>\n<p>\u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0432\u043e\u0435\u0433\u043e <code>installer_input.txt<\/code>, \u043e\u0442\u043c\u0435\u0447\u0443 \u043b\u0438\u0448\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u0438\u0445 \u043d\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u044f\u0432\u043d\u043e, \u0442\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0451\u0442. \u0418\u0445 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0440\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043d\u0438\u0445 \u0436\u0435\u043b\u0430\u0435\u043c\u044b\u0435 \/ \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<pre><code>destinationFolder=\/opt\/matlab\/RXXXX    # \u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0435\u043c \u0441\u0442\u0430\u0432\u0438\u0442\u044c fileInstallationKey=xxxxx-xxxxx-xxxxx-xxxxx.....  agreeToLicense=yes outputFile=\/data\/_install\/install.log  # \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0439\u0434\u0451\u0442 \u043d\u0435 \u0442\u0430\u043a enableLNU=no       # \u0437\u0434\u0435\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e no, \u043c\u044b \u0436\u0435 \u0438\u0437\u043e\u043b\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u043e\u0442 \u0441\u0435\u0442\u0438 improveMATLAB=no   # \u0438 \u0437\u0434\u0435\u0441\u044c \u0442\u043e\u0436\u0435 \u043f\u043e \u0442\u043e\u0439 \u0436\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 licensePath=\/path\/to\/license.file <\/code><\/pre>\n<p>\u0412 \u043a\u043e\u043d\u0446\u0435 \u0438\u0434\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0422\u0443\u043b\u0431\u043e\u043a\u0441\u043e\u0432. \u0420\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0442\u0435 \u0438\u0437 \u043d\u0438\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0436\u0435\u043b\u0430\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c (\u0438 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f!).<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u043e\u0436\u0438\u0434\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u00ab\u0441\u044e\u0440\u043f\u0440\u0438\u0437\u00bb \u2014 \u043d\u0435 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043b\u044f Matlab, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u0442\u0430\u043a \u044d\u0442\u043e \u0438\u043b\u0438 \u043d\u0435\u0442, \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a Matlab \u0432 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435:<\/p>\n<pre><code class=\"bash\">bob@ml_r2022b:~$ su root@ml_r2022b:\/home\/bob# cd \/data\/_install\/mnt\/ root@ml_r2022b:\/data\/_install\/mnt# .\/install <\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u044b, \u0442\u043e \u0432\u0441\u043a\u043e\u0440\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f GUI-\u043e\u043a\u043e\u0448\u043a\u043e \u00abMathWorks Product Installer\u00bb \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0435\u0433\u043e. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u0435\u043b\u043e \u0436\u0430\u0442\u044c \u00abCancel\u00bb \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 (\u043d\u0443, \u0438\u043b\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443, \u0435\u0441\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f). \u0415\u0441\u043b\u0438 \u0436\u0435 \u0447\u0435\u0433\u043e-\u0442\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442, \u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e GUI-\u043e\u043a\u043e\u0448\u043a\u0430 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435:<\/p>\n<pre><code class=\"bash\">terminate called after throwing an instance of 'std::runtime_error'   what():  Failed to launch web window with error: Unable to launch the MATLABWindow application. The exit code was: 127 Aborted (core dumped) <\/code><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u0447\u0435\u0433\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442, \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0430\u043c\u0443\u044e <code>MATLABWindow<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 \u043f\u043e \u043f\u0443\u0442\u0438 <code>.\/bin\/glnxa64\/MATLABWindow<\/code> \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u043e\u0447\u043a\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f iso-\u043e\u0431\u0440\u0430\u0437\u0430:<\/p>\n<pre><code class=\"bash\">root@ml_r2022b:\/data\/_install\/mnt# .\/bin\/glnxa64\/MATLABWindow .\/bin\/glnxa64\/MATLABWindow: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory <\/code><\/pre>\n<p>\u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u0430 <code>libgtk-x11-2.0.so.0<\/code>. \u0418\u0449\u0435\u043c, \u043a \u043a\u0430\u043a\u043e\u043c\u0443 \u043f\u0430\u043a\u0435\u0442\u0443 \u043e\u043d \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"https:\/\/packages.ubuntu.com\/\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0438\u0441\u043a\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u0432 Ubuntu<\/a> (<a href=\"https:\/\/www.debian.org\/distrib\/packages\" rel=\"noopener noreferrer nofollow\">\u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f Debian<\/a>) \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u0432 Google, \u0432\u0431\u0438\u0432 \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u043e\u0438\u0441\u043a\u0430 \u044d\u0442\u043e \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430. \u041d\u0430\u0445\u043e\u0434\u0438\u043c: \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0444\u0430\u0439\u043b \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 <code>libgtk2.0-0<\/code>. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043a Docker-\u0441\u0435\u0442\u0438 <code>bridge<\/code> (\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u043c\u0435\u0435\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442) \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u044d\u0442\u043e\u0442 \u043f\u0430\u043a\u0435\u0442:<\/p>\n<pre><code class=\"bash\">root@ml_r2022b:\/data\/_install\/mnt# apt-get install libgtk2.0-0 <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043e\u0442 \u0441\u0435\u0442\u0438 <code>bridge<\/code> \u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c <code>MATLABWindow<\/code>. \u0422\u0430\u043a \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u043e\u0431 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0435\u043c \u0444\u0430\u0439\u043b\u0435 \u043d\u0435 \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f GUI-\u043e\u043a\u043e\u0448\u043a\u043e \u044d\u0442\u043e\u0439 \u0441\u0430\u043c\u043e\u0439 MATLABWindow. \u041d\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u0443\u0433\u0430\u0442\u044c\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044e \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0432 \u044d\u0442\u043e\u043c \u043e\u043a\u043e\u0448\u043a\u0435:<\/p>\n<pre><code>==========================================     Unable to open the requested feature. ==========================================  Check your internet connection and proxy  settings in MATLAB Web preferences and   then try starting the feature again. ==========================================  Detailed information:  Error code: -105 Error message: ERR_NAME_NOT_RESOLVED ========================================== <\/code><\/pre>\n<p><code>MATLABWindow<\/code> \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u00ab\u0440\u0443\u0433\u0430\u0435\u0442\u0441\u044f\u00bb, \u0447\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u00ab\u0434\u043e\u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f\u00bb \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 MathWorks. \u0412\u0435\u0434\u044c \u044d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e, \u0440\u0430\u0434\u0438 \u0447\u0435\u0433\u043e \u0432\u0441\u0451 \u044d\u0442\u043e \u0438 \u0431\u044b\u043b\u043e \u0437\u0430\u0442\u0435\u044f\u043d\u043e! \u0410 \u0432\u043e\u0442 \u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043f\u0440\u043e\u0448\u0435\u043b \u2014 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u0437\u0430\u0431\u044b\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043e\u0442 Docker-\u0441\u0435\u0442\u0438 <code>bridge<\/code>. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0430\u043a \u0440\u0430\u0437 \u0441\u0442\u043e\u0438\u0442 \u043d\u0430\u043f\u0440\u044f\u0447\u044c\u0441\u044f.<\/p>\n<p>\u0415\u0449\u0435 \u0440\u0430\u0437 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0451 \u041e\u041a, \u0435\u0449\u0435 \u0440\u0430\u0437 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a Matlab \u0432 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. \u0415\u0441\u043b\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0441\u0451 \u041e\u041a \u2014 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c <code>install<\/code> \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <code>-inputFile<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 <code>installer_input.txt<\/code> (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438):<\/p>\n<pre><code class=\"bash\">root@ml_r2022b:\/data\/_install\/mnt# .\/install -inputFile \/data\/_install\/installer_input.txt <\/code><\/pre>\n<p>\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u0430\u0439\u043c\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c \u0432 <code>installer_input.txt<\/code> \u043c\u044b \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u0438 \u043b\u043e\u0433 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b <code>\/data\/_install\/install.log<\/code>. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0448\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u044d\u0442\u043e\u0433\u043e \u043b\u043e\u0433\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code>(Oct 26, 2023 14:55:30) Exiting with status 0 (Oct 26, 2023 14:55:30) End - Successful <\/code><\/pre>\n<p>\u041e\u0441\u0442\u0430\u043b\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0448\u0442\u0440\u0438\u0445 \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044e \u043d\u0430\u0448\u0435\u0433\u043e Matlab. \u042d\u0442\u043e \u2014 \u00ab\u0432\u044b\u0441\u043e\u043a\u043e\u0435 \u043a\u043e\u043b\u0434\u0443\u043d\u0441\u0442\u0432\u043e\u00bb 80-\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \ud83d\ude09 \u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0451 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0438 \u043a\u0430\u043a\u0443\u044e \u0438\u043c\u0435\u043d\u043d\u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044e \u0432\u044b \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u043b\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u044f \u043d\u0435 \u0432\u0438\u0436\u0443 \u0441\u043c\u044b\u0441\u043b\u0430. \u041f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0448\u0430\u0433\u0435.<\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u0448 \u0441\u0432\u0435\u0436\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 Matlab:<\/p>\n<pre><code class=\"bash\">bob@ml_r2022b:\/data\/_install\/mnt$ \/opt\/matlab\/RXXXX\/bin\/matlab <\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0438 Matlab \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 <code>root<\/code>&#8216;\u0430, \u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0443\u0434\u0435\u043c \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 <code>bob<\/code>&#8216;\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Matlab \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0438\u043c\u043b\u0438\u043d\u043a \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <code>matlab<\/code> \u0432 \u043f\u0430\u043f\u043a\u0435 <code>\/home\/bob\/bin<\/code>:<\/p>\n<pre><code class=\"bash\">bob@ml_r2022b:~$ mkdir bin bob@ml_r2022b:~$ ln -s \/opt\/matlab\/RXXXXx\/bin\/matlab ~\/bin\/matlab <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u0430\u043f\u043a\u0438 <code>\/home\/bob\/bin<\/code> (\u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e) \u043d\u0435 \u0431\u044b\u043b\u043e, \u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <code>matlab<\/code> \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0438\u043d\u0430 <code>bob<\/code>&#8216;\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u043e\u0442\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c iso-\u043e\u0431\u0440\u0430\u0437 \u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~\/DOCKER_SHARE\/MatLab\/_install$ sudo umount mnt <\/code><\/pre>\n<p>\u0412\u043e\u0442 \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 Matlab \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u0438\u0437 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0430 \u0444\u043e\u043d\u0435 \u043e\u043a\u043e\u043d \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u043e\u043a\u043e\u043d. \u0415\u0441\u043b\u0438 \u043e\u043a\u043e\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0442\u043e \u0432 \u043a\u043e\u043d\u0446\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0435\u0433\u043e \u043e\u043a\u043d\u0430 \u0432 \u0441\u043a\u043e\u0431\u043a\u0430\u0445 \u044d\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u2014 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/t6\/ev\/-f\/t6ev-fyarlgsaot1-oexwqqfsly.png\" alt=\"Matlab \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u0438\u0437 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\" data-src=\"https:\/\/habrastorage.org\/webt\/t6\/ev\/-f\/t6ev-fyarlgsaot1-oexwqqfsly.png\"\/><\/p>\n<div><figcaption>Matlab \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u0438\u0437 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0451. \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/p>\n<hr\/>\n<h3>P.S. \u0438\u043b\u0438 \u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/h3>\n<p><a class=\"anchor\" name=\"anneces\" id=\"anneces\"><\/a><\/p>\n<h4>\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 1: Xwayland \u0438 socat<\/h4>\n<p><a class=\"anchor\" name=\"annex-xwayland-socat\" id=\"annex-xwayland-socat\"><\/a><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u044b\u0439 \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u0435\u043b\u044c \u0441\u0438\u0441\u0442\u0435\u043c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Xwayland&#8230;<\/p>\n<p>&#8230; \u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0441\u043f\u043e\u0441\u043e\u0431 \u00ab\u0440\u0430\u0441\u0448\u0430\u0440\u0438\u0442\u044c\u00bb X-\u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u00ab\u043d\u0435 \u043f\u0440\u043e \u0432\u0430\u0441\u00bb. Xwayland \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u043e TCP\/IP. \u041e\u0434\u043d\u0430\u043a\u043e, \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043c\u043d\u043e\u044e \u0431\u044b\u043b \u043d\u0430\u0439\u0434\u0435\u043d <a href=\"https:\/\/askubuntu.com\/questions\/34657\/how-to-make-x-org-listen-to-remote-connections-on-port-6000\" rel=\"noopener noreferrer nofollow\">\u0441\u043f\u043e\u0441\u043e\u0431<\/a> \u043e\u0431\u0445\u043e\u0434\u0430 \u044d\u0442\u043e\u0433\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b socat, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u00ab\u043f\u043e\u0434\u043d\u044f\u0442\u044c\u00bb \u0434\u0432\u0443\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0442\u0443\u043d\u043d\u0435\u043b\u044c \u043c\u0435\u0436\u0434\u0443 \u043b\u044e\u0431\u044b\u043c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c TCP \u043f\u043e\u0440\u0442\u043e\u043c \u0438 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u043e\u043c. \u042d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 xorg. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0431\u0435\u0437 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0444\u0430\u0439\u043b\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb \u0438 Display Manager&#8217;\u0430 \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u044f\u0432\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c, \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442 TCP\/IP \u043f\u043e\u0440\u0442, \u0447\u0442\u043e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0432\u043e\u0437\u043d\u0438 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 iptables (\u0445\u043e\u0442\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c iptables \u0432 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e). \u0418 \u044d\u0442\u043e \u2014 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430.<\/p>\n<p>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e X-\u0441\u0435\u0440\u0432\u0435\u0440 \u00ab\u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u0435\u0442\u00bb \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043a \u043d\u0435\u043c\u0443 \u043e\u0442\u043a\u0440\u044b\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e TCP\/IP. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e TCP, \u0435\u0433\u043e TCP-\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442 \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043a X-\u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u043a\u043b\u0438\u0435\u043d\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a\u0430\u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439.<br \/> \u0412\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u044d\u0442\u043e\u0433\u043e:<\/p>\n<ol>\n<li>\n<p>ACL&#8217;\u044b <code>xhost<\/code> \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442;<\/p>\n<\/li>\n<li>\n<p>\u0423\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u043c TCP-\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0430\u044f \u0436\u0435 \u00ab\u0432\u043e\u043b\u0448\u0435\u0431\u043d\u0430\u044f\u00bb \u043a\u0443\u043a\u0438, \u043a\u0430\u043a \u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c, \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>XAUTHORITY<\/code>.<\/p>\n<\/li>\n<\/ol>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438, \u2014 \u0435\u0441\u043b\u0438 \u0432\u0435\u0440\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c \u0434\u0430\u043b\u0435\u0435 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439 <code>~\/.Xauthority<\/code> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u0433\u043e \u00ab\u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u043c\u0443\u00bb \u043a\u043b\u0438\u0435\u043d\u0442\u0443 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 \u0432\u043d\u0443\u0442\u0440\u044c Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430) <em>\u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f<\/em>. \u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \/ Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u0443\u044e\u00bb \u043a\u0443\u043a\u0438 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e <a href=\"https:\/\/github.com\/mviereck\/x11docker\/wiki\/How-to-access-X-over-TCP-IP-network\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>. \u0418\u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u044b\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e, \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0443\u044e, &#171;untrusted cookie&#187;, \u043a\u0430\u043a \u044d\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e <a href=\"https:\/\/github.com\/mviereck\/x11docker\/wiki\/X-authentication-with-cookies-and-xhost-(%22No-protocol-specified%22-error)\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>\u0414\u0430, \u00ab\u0432\u043e\u043b\u0448\u0435\u0431\u043d\u044b\u0435\u00bb \u043a\u0443\u043a\u0438 \u0431\u044b\u0432\u0430\u044e\u0442 \u0434\u0432\u0443\u0445 \u0432\u0438\u0434\u043e\u0432: \u00ab\u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435\u00bb (&#171;trusted cookie&#187;) \u0438 \u00ab\u043d\u0435\u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435\u00bb (&#171;untrusted cookie&#187;). \u041f\u0435\u0440\u0432\u044b\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0442\u0435 \u0436\u0435 \u043f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0438\u044f, \u0447\u0442\u043e \u0438 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0445\u043e\u0437\u044f\u0438\u043d\u0430. \u041e\u043d\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043a\u043e\u043f\u0438\u044e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0439 (\u043f\u0441\u0435\u0432\u0434\u043e-)\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 16-\u0440\u0438\u0447\u043d\u044b\u0445 \u0446\u0438\u0444\u0440 \u0438\u0437 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u043a\u0443\u043a\u0438 \u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043f\u043e\u043b\u044f\u043c\u0438 <code>DISPLAY<\/code> \u0438 <code>hostname<\/code>. \u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u0442\u0430\u043a\u0438\u0445 \u043a\u0443\u043a\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0445 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c. \u041e\u043d\u0438 \u043d\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438\u0437 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \/ \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442:<\/p>\n<blockquote>\n<p>For example, keylogging with <code>xev<\/code> or <code>xinput<\/code> is possible, and remote control of host applications with <code>xdotool<\/code>. [<a href=\"https:\/\/stackoverflow.com\/questions\/16296753\/can-you-run-gui-applications-in-a-linux-docker-container\/39681017#39681017\" rel=\"noopener noreferrer nofollow\">\u0441\u043c. \u0442\u0443\u0442<\/a>]<\/p>\n<\/blockquote>\n<p>\u00ab\u041d\u0435\u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435\u00bb (&#171;untrusted cookie&#187;) \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u0432\u043e\u044e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u0445\u044d\u0448-\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c 16-\u0440\u0438\u0447\u043d\u044b\u0445 \u0446\u0438\u0444\u0440 \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u0431\u041e\u043b\u044c\u0448\u0443\u044e \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438\u0437 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \/ \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u043e\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439:<\/p>\n<blockquote>\n<p>The X server will deny some security sensitive features to applications that use this cookie. [<a href=\"https:\/\/github.com\/mviereck\/x11docker\/wiki\/X-authentication-with-cookies-and-xhost-(%22No-protocol-specified%22-error)\" rel=\"noopener noreferrer nofollow\">\u0441\u043c. \u0442\u0443\u0442<\/a>]<\/p>\n<\/blockquote>\n<p>\u0418\u0442\u0430\u043a, \u0447\u0442\u043e\u0431 \u00ab\u0440\u0430\u0441\u0448\u0430\u0440\u0438\u0442\u044c\u00bb \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442 \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>socat<\/code>, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435:<\/p>\n<pre><code class=\"bash\">$ sudo su # socat -d -d TCP-LISTEN:$((6000+111)),fork,bind=10.255.25.1 UNIX-CONNECT:\/tmp\/.X11-unix\/X0 &amp; <\/code><\/pre>\n<p>\u042d\u0442\u043e \u043e\u0442\u043a\u0440\u043e\u0435\u0442 \u043f\u043e\u0440\u0442 6111 \u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 10.255.25.1 (\u0442.\u0435. <code>br-aeb9dcd262b9<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 Docker-\u0441\u0435\u0442\u0438 <code>dcr_itl_25<\/code>) \u043a\u0430\u043a \u0434\u0432\u0443\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u043e\u043c <code>\/tmp\/.X11-unix\/X0<\/code> X-\u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0415\u0441\u043b\u0438 \u0432\u043c\u0435\u0441\u0442\u043e 10.255.25.1 \u0443\u043a\u0430\u0437\u0430\u0442\u044c 0.0.0.0 , \u0442\u043e \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442 \u0431\u0443\u0434\u0435\u0442 \u00ab\u0440\u0430\u0441\u0448\u0430\u0440\u0435\u043d\u00bb<br \/> \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421. <code>-d -d<\/code> \u2014 \u044d\u0442\u043e \u043d\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e <a href=\"http:\/\/www.dest-unreach.org\/socat\/doc\/socat.html#OPTIONS\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>:<\/p>\n<blockquote>\n<p>-d -d<br \/> Prints fatal, error, warning, and notice messages.<\/p>\n<\/blockquote>\n<p>\u042d\u0442\u043e\u0442 <code>socat<\/code>-\u043a\u0430\u043d\u0430\u043b \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043c\u044b \u043d\u0435 \u0437\u0430\u043a\u0440\u043e\u0435\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u2014 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u2014 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 <code>socat<\/code> \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e. \u0415\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430, <code>socat<\/code> \u043c\u043e\u0436\u043d\u043e \u00ab\u0434\u0435\u0439\u043c\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u00bb, \u0441\u043e\u0437\u0434\u0430\u0432 <code>systemd<\/code>-\u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u043e <a href=\"https:\/\/medium.com\/@benmorel\/creating-a-linux-service-with-systemd-611b5c8b91d6\" rel=\"noopener noreferrer nofollow\">\u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/a>.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u043c\u0443\u00bb X-\u0441\u0435\u0440\u0432\u0435\u0440\u0443, \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0430\u0434\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>DISPLAY<\/code>:<\/p>\n<pre><code class=\"bash\">$ export DISPLAY=127.0.0.1:111  <\/code><\/pre>\n<p>\u0415\u0434\u0438\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u043d\u0438\u0431\u0443\u0434\u044c GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>DISPLAY<\/code>, \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">$ DISPLAY=127.0.0.1:111 xterm <\/code><\/pre>\n<p>\u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c, \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u00ab\u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e\u0439\u00bb \u043a\u0443\u043a\u0438 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>XAUTHORITY<\/code>.<\/p>\n<p>\u0421\u0430\u043c <code>socat<\/code> \u0435\u0441\u0442\u044c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u0445 Ubuntu 20.04, \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"bash\">$ sudo apt install socat <\/code><\/pre>\n<p>\u0414\u0430, \u043b\u0438\u0447\u043d\u043e \u044f \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 \u044d\u0442\u043e\u043c \u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0441\u043f\u043e\u0441\u043e\u0431 <em>\u043d\u0435 \u0442\u0435\u0441\u0442\u0438\u043b<\/em> \u2014 \u043f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u00ab\u0434\u043e\u043c\u0430\u0448\u043d\u0438\u043c \u0437\u0430\u0434\u0430\u043d\u0438\u0435\u043c\u00bb \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f.<\/p>\n<h4>\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 2: \u041c\u0435\u0442\u043e\u0434 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f TCP\/IP-\u0441\u0435\u0442\u0438<\/h4>\n<p><a class=\"anchor\" name=\"annex-unix-socket-to-docker-volume\" id=\"annex-unix-socket-to-docker-volume\"><\/a><\/p>\n<p>\u0414\u0430, \u0435\u0441\u0442\u044c \u0438 \u0442\u0430\u043a\u043e\u0439. \u041e\u043d \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 &#171;bind&#187; \u0444\u0430\u0439\u043b\u043e\u0432 XAUTHORITY-\u043a\u0443\u043a\u0438 \u0438 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u0430 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u0432\u043d\u0443\u0442\u0440\u044c Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u0443\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043e\u043f\u0446\u0438\u0438 <code>-v<\/code> (<code>--volume <\/code>) \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430:<\/p>\n<pre><code class=\"bash\">docker create -ti \\               --env XAUTHORITY=\/cookie \\               --volume ~\/cookie4container:\/cookie \\               --env DISPLAY=$DISPLAY \\               --volume \/tmp\/.X11-unix\/X0:\/tmp\/.X11-unix\/X0 \\               --ipc=host \\               [--&lt;other-options> ...] \\               &lt;docker-image-name> <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c <code>~\/cookie4container<\/code> \u2014 \u0444\u0430\u0439\u043b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u00ab\u0432\u043e\u043b\u0448\u0435\u0431\u043d\u0443\u044e\u00bb \u043a\u0443\u043a\u0438 \u2014 &#171;trusted&#187; \u0438\u043b\u0438 &#171;untrusted&#187; \u2014 \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e \u0432 <a href=\"#annex-xwayland-socat\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435<\/a>. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u0438\u0439\u00bb \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0442\u043e \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>DISPLAY<\/code> \u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 \u0438 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438.<\/p>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e \u043e\u043f\u0446\u0438\u044e <code>--ipc=host<\/code>. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u00ab\u0438\u043a\u0441\u044b\u00bb \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 shared memory \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0438\u0437\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u0412 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0434\u043b\u044f GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432\u0441\u0451 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a, \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u043e\u043d\u0438 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421. \u0412 \u0438\u0442\u043e\u0433\u0435 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043e\u0448\u0438\u0431\u043a\u0430\u043c \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 shared memory. \u041e\u043f\u0446\u0438\u044f <code>--ipc=host<\/code> \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u0443\u044e\u00bb shared memory. \u042d\u0442\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<br \/> \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 shared memory \u0432 \u00ab\u0438\u043a\u0441\u0430\u0445\u00bb \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>MIT-SHM<\/code> extension. \u0415\u0441\u043b\u0438 \u043e\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u2014 \u0437\u043d\u0430\u0447\u0438\u0442 shared memory \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0432\u0435\u0440\u043d\u0435\u0435 \u2014 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0435\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c. \u0423\u0437\u043d\u0430\u0442\u044c, \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 <code>MIT-SHM<\/code> \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">xdpyinfo | grep MIT-SHM     MIT-SHM  # &lt;--------- \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e <\/code><\/pre>\n<p>\u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0442.\u0435. \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043f\u0446\u0438\u0438 <code>--ipc=host<\/code>.<br \/> \u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 <code>MIT-SHM<\/code> X-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b <code>\/etc\/X11\/xorg.conf.d\/disable-MIT-SHM.conf<\/code> \u0441 \u0442\u0430\u043a\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c:<\/p>\n<pre><code>Section \"Extensions\"     Option \"MIT-SHM\" \"Disable\" EndSection <\/code><\/pre>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb, \u0432\u0435\u0440\u043d\u0435\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421.<\/p>\n<p>\u0414\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 &#171;untrusted cookies&#187;. <a href=\"https:\/\/github.com\/mviereck\/x11docker\/wiki\/X-authentication-with-cookies-and-xhost-(%22No-protocol-specified%22-error)\" rel=\"noopener noreferrer nofollow\">\u041f\u0438\u0448\u0443\u0442<\/a>, \u0447\u0442\u043e X-\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0441 &#171;untrusted cookies&#187; \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>MIT-SHM<\/code>. \u0422.\u0435. \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c shared memory. \u041f\u0440\u0430\u0432\u0434\u0430 \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u043c\u0438\u043d\u0443\u0441: \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 &#171;untrusted cookies&#187;.<\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u00ab\u043f\u0430\u0442\u0447\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0433\u043e <code>MIT-SHM<\/code> extension \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u044d\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e. \u0414\u0430\u043b\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c <code>LD_PRELOAD<\/code> \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 GUI-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b:<\/p>\n<pre><code class=\"bash\">env LD_PRELOAD=\/path\/to\/XlibNoSHM.so &lt;GUI-APP-COMMAND> <\/code><\/pre>\n<p>\u0418\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u00ab\u043f\u0430\u0442\u0447\u0438\u0442\u044c\u00bb \u0432\u0441\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b:<\/p>\n<pre><code class=\"bash\">export LD_PRELOAD=\/path\/to\/XlibNoSHM.so  <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c <code>XlibNoSHM.so<\/code> \u2014 \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u00ab\u043f\u0430\u0442\u0447\u00bb. \u041a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430\u0434\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u00ab\u043f\u0430\u0442\u0447\u0430\u00bb \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d <a href=\"https:\/\/github.com\/mviereck\/dockerfile-x11docker-xserver\/blob\/main\/XlibNoSHM.c\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0421\u0430\u043c\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 <code>MIT-SHM<\/code> \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/github.com\/jessfraz\/dockerfiles\/issues\/359\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e, \u043f\u043e-\u0432\u0438\u0434\u0438\u043c\u043e\u043c\u0443, \u00ab\u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0432\u0430\u044f\u00bb (\u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0438\u0437 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0439) \u043f\u043e\u043f\u044b\u0442\u043a\u0430 <em>\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438<\/em> \u00ab\u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c\u00bb GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 Docker&#8217;\u043e\u043c \u0432 \u041e\u0421 GNU\/Linux \u043a\u0430\u043a \u0440\u0430\u0437 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 X-\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432,  \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c \u0432 \u044d\u0442\u043e\u043c \u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438. \u042f \u043d\u0430\u0448\u0435\u043b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0432 <a href=\"https:\/\/blog.jessfraz.com\/post\/docker-containers-on-the-desktop\/\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0441\u0442\u0435<\/a> \u043d\u0435\u043a\u043e\u0439 Jess Frazelle \u043e\u0442 21 \u0444\u0435\u0432\u0440\u0430\u043b\u044f 2015 \u0433\u043e\u0434\u0430. \u0412\u043e\u0442 \u0446\u0438\u0442\u0430\u0442\u0430 \u043e\u0442\u0442\u0443\u0434\u0430:<\/p>\n<blockquote>\n<p>The images work by mounting the X11 socket into the container! Yippeeeee!<\/p>\n<\/blockquote>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u0435\u0451 \u0434\u043e\u043a\u0435\u0440-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043e\u043f\u0446\u0438\u044f\u043c\u0438:<\/p>\n<pre><code>-v \/tmp\/.X11-unix:\/tmp\/.X11-unix \\ # mount the X11 socket -e DISPLAY=unix$DISPLAY \\ # pass the display <\/code><\/pre>\n<p>\u0422.\u0435. \u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u043e\u0442 \u0436\u0435 \u043c\u0435\u0442\u043e\u0434 \u00ab\u0440\u0430\u0441\u0448\u0430\u0440\u0438\u0432\u0430\u043d\u0438\u044f\u00bb unix-socket&#8217;\u0430 \u0447\u0435\u0440\u0435\u0437 \u043e\u043f\u0446\u0438\u044e <code>-v<\/code> \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<\/p>\n<p>\u041e\u043d\u0430 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u043b\u0430 \u00ab\u043a\u0438\u043f\u0443\u0447\u0443\u044e \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u00bb \u043f\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 (Matlab&#8217;\u0430 \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u043d\u0435\u0442). \u0421 \u0435\u0451 Dockerfile&#8217;\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0435\u0451 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0435 \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431\u0435: <a href=\"https:\/\/github.com\/jessfraz\/dockerfiles\" rel=\"noopener noreferrer nofollow\">github.com\/jessfraz\/dockerfiles<\/a>, \u0430 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 Docker-\u043e\u0431\u0440\u0430\u0437\u044b  \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043d\u0430 \u0434\u043e\u043a\u0435\u0440-\u0445\u0430\u0431\u0435: <a href=\"https:\/\/hub.docker.com\/u\/jess\/\" rel=\"noopener noreferrer nofollow\">hub.docker.com\/u\/jess<\/a><\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0435\u0451 \u0434\u043e\u043a\u0435\u0440-\u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438 \u044d\u0442\u0443 \u0441\u0430\u043c\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441 MIT-SHM. \u0422.\u043a. \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0431\u0430\u0433\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e \u043d\u0430 \u0435\u0451 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0435 \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431\u0435: MIT-SHM error solutions \u2014 <a href=\"https:\/\/github.com\/jessfraz\/dockerfiles\/issues\/359\" rel=\"noopener noreferrer nofollow\"><strong>github.com\/jessfraz\/dockerfiles<\/strong>\/issues\/359<\/a>.<\/p>\n<h4>\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 3: x11docker<\/h4>\n<p><a class=\"anchor\" name=\"annex-x11docker\" id=\"annex-x11docker\"><\/a><\/p>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u044f \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/github.com\/mviereck\/x11docker\" rel=\"noopener noreferrer nofollow\"><code>x11docker<\/code><\/a>. \u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u043c\u0435\u0442\u0438\u0442, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 \u043a\u0430\u043a \u0440\u0430\u0437 \u0432\u0435\u0434\u0435\u0442 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/mviereck\/x11docker\/wiki\" rel=\"noopener noreferrer nofollow\">wiki<\/a> \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. <code>x11docker<\/code> \u0440\u0435\u0448\u0430\u0435\u0442 \u0442\u0443 \u0436\u0435 \u0437\u0430\u0434\u0430\u0447\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u2013 X-\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0447\u0442\u043e \u0438 \u044f \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u00ab\u0440\u0430\u0437\u043c\u0430\u0445\u043e\u043c\u00bb. \u0422\u0430\u043a, \u0441\u0440\u0435\u0434\u0438 \u0435\u0433\u043e \u00ab\u0444\u0438\u0448\u0435\u0447\u0435\u043a\u00bb:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043a \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438. \u041f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u00ab\u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e\u00bb (nested) X-\u0441\u0435\u0440\u0432\u0435\u0440\u0430. (\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u00ab\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u00bb: \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u0438\u043d X-\u0441\u0435\u0440\u0432\u0435\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f X-\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u0434\u0440\u0443\u0433\u043e\u0433\u043e X-\u0441\u0435\u0440\u0432\u0435\u0440\u0430.) \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0434\u0430\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/github.com\/mviereck\/dockerfile-x11docker-xserver\/tree\/main\" rel=\"noopener noreferrer nofollow\">Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440<\/a> \u0441 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u043c \u00ab\u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u00bb X-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0434\u043b\u044f \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438. \u041a\u0441\u0442\u0430\u0442\u0438, \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u00ab\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u00bb \u0441\u0430\u043c\u043e \u043f\u043e \u0441\u0435\u0431\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441 <code>MIT_SHM<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u0430 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 X-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0446\u0438\u0439 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u044f\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u00ab\u0440\u0430\u0441\u0448\u0430\u0440\u0438\u0432\u0430\u0442\u044c\u00bb \u0432\u043d\u0443\u0442\u0440\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u044b, \u0432\u0435\u0431-\u043a\u0430\u043c\u0435\u0440\u044b \u0438 \u0442.\u0434.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418 \u044d\u0442\u043e \u2014 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435\u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a.<\/p>\n<p>\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u00ab\u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a\u00bb \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0430\u043c <code>x11docker<\/code> \u2014 \u044d\u0442\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u0435\u043d\u043d\u044b\u0439 bash-\u0441\u043a\u0440\u0438\u043f\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 11640 (sic!) \u0441\u0442\u0440\u043e\u043a, \u0438 \u043e\u043d \u043f\u043e \u0441\u0443\u0442\u0438 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 (\u0435\u0441\u0442\u044c \u0435\u0449\u0435 Dockerfile \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0437\u0430 \u0441 \u00ab\u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u00bb X-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c). \u0422\u0430\u043a \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u00ab\u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0439\u0434\u0451\u0442 \u043d\u0435 \u0442\u0430\u043a\u00bb \u2014 \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c-\u0440\u0435\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043d\u0443\u0434\u043d\u043e \u0438 \u0433\u0440\u0443\u0441\u0442\u043d\u043e.<\/p>\n<p>\u0412 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f, \u043c\u043e\u0451 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2014 \u0431\u044b\u0441\u0442\u0440\u043e\u0435 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0435. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043e\u043d\u043e \u043d\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u0438 \u0442\u0430\u043a\u043e\u0439 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438, \u043a\u0430\u043a <code>x11docker<\/code> \u2014 \u043e\u043d\u043e \u0441 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f. \u0412 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432, Matlab \u2014 \u043d\u0435 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u00ab\u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0437\u043b\u043e\u0432\u0440\u0435\u0434\u00bb, \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0442 \u043e\u043a\u043e\u0448\u0435\u043a \u043c\u043e\u0438\u0445 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u043c\u043e\u0435\u0439 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 (\u044f \u043d\u0430\u0434\u0435\u044e\u0441\u044c&#8230;).<\/p>\n<h4>\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 4: \u0437\u0430\u043f\u0443\u0441\u043a Matlab \u0447\u0435\u0440\u0435\u0437 systemd-run<\/h4>\n<p><a class=\"anchor\" name=\"annex-systemd-run-matlab\" id=\"annex-systemd-run-matlab\"><\/a><\/p>\n<p>\u0421\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e\u0441\u0442\u0438 \u0440\u0430\u0434\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c Matlab \u043e\u0442 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Docker \u2014 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>systemd<\/code>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0430\u0434\u043e \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">systemd-run --scope -p IPAddressDeny=any -p IPAddressAllow=localhost &lt;matlabFolder>\/bin\/matlab <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c <code>&lt;matlabFolder><\/code> \u2014 \u043f\u0430\u043f\u043a\u0430, \u043a\u0443\u0434\u0430 \u0431\u044b\u043b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d Matlab. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0442\u0438\u043f\u0430 <code>~\/Matlab\/RXXXXx<\/code>, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0435-root&#8217;\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0438\u043b\u0438 <code>\/opt\/matlab\/RXXXXx<\/code> \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 system-wide \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438.<\/p>\n<p>\u0422\u0430\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431, \u043e\u0434\u043d\u0430\u043a\u043e, \u043d\u0435 \u0438\u0437\u043e\u043b\u0438\u0440\u0443\u0435\u0442 Matlab \u043e\u0442 \u0424\u0421 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421, \u043a\u0430\u043a \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043c\u043d\u0435.<\/p>\n<p>\u0418 \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 <code>systemd<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u00ab\u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b\u00bb \u0434\u043b\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c <a href=\"https:\/\/en.wikipedia.org\/wiki\/Linux_namespaces\" rel=\"noopener noreferrer nofollow\">namespaces<\/a>, \u0431\u0435\u043b\u044b\u0435 \u0438 \u0447\u0451\u0440\u043d\u044b\u0435 \u0441\u043f\u0438\u0441\u043a\u0438 <a href=\"https:\/\/man7.org\/linux\/man-pages\/man7\/capabilities.7.html\" rel=\"noopener noreferrer nofollow\">capabilities<\/a>, \u0430 \u0442\u0430\u043a\u0436\u0435 <a href=\"https:\/\/wiki.archlinux.org\/title\/Control_groups\" rel=\"noopener noreferrer nofollow\">control groups (aka cgroups)<\/a> \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0439. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, <code>systemd<\/code> \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u0432\u0435\u0441\u044c \u0442\u043e\u0442 \u0436\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u0447\u0442\u043e \u0438 Docker. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 <code>systemd<\/code> \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0438\u0437\u0440\u044f\u0434\u043d\u043e \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u00ab\u044e\u043d\u0438\u0442\u0443\u00bb <code>systemd<\/code> \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u00ab\u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b\u00bb \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043f\u0440\u043e\u0431 \u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u043a\u0443\u043f\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043b\u043e\u0433\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <code>strace<\/code>, <code>stderr<\/code> \u0438 <code>journalctl<\/code>. \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u2014 \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f.<\/p>\n<p>\u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0442\u0435, \u043a\u043e\u043c\u0443 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 Matlab&#8217;\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439, \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 \u044d\u0442\u043e\u043c \u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438, \u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044e Matlab \u0432 Docker, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 proof-of-concept.<\/p>\n<h3>P.P.S. xhost TCP\/IP \u0438 MIT-SHM<\/h3>\n<p><a class=\"anchor\" name=\"pps-xhost-MIT-SHM\" id=\"pps-xhost-MIT-SHM\"><\/a><\/p>\n<p>\u042f \u0431\u044b\u043b \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043c\u043d\u043e\u044e \u043c\u0435\u0442\u043e\u0434 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438\u0437 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0441 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u0438\u043c\u00bb X-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0447\u0435\u0440\u0435\u0437 TCP\/IP \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 <code>MIT-SHM<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 <a href=\"#annex-unix-socket-to-docker-volume\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 2<\/a>. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043e \u043a\u0430\u043a\u043e\u0439 shared memory \u043c\u043e\u0436\u0435\u0442 \u0438\u0434\u0442\u0438 \u0440\u0435\u0447\u044c, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u044b (GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f) \u2014 \u043a\u0430\u043a \u0438 X-\u0441\u0435\u0440\u0432\u0435\u0440 \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f (\u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f) \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445? \u0410 \u0432\u043e\u0442 \u043f\u043e\u0434\u0438 \u0436 \u0442\u044b!<br \/> \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u044e \u0441\u0432\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e:<\/p>\n<pre><code class=\"bash\">bob@ml_r2022b:~$ xdpyinfo | grep MIT-SHM     MIT-SHM bob@ml_r2022b:~$ <\/code><\/pre>\n<p>\u041d\u0443 \u0438 \u0434\u0435\u043b\u0430! \u0417\u043d\u0430\u0447\u0438\u0442, \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u0441\u0432\u043e\u0435\u0433\u043e Dockerfile&#8217;\u0430 \u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u00ab\u043f\u0430\u0442\u0447\u0430\u00bb <code>XlibNoSHM.so<\/code>.<br \/> \u041f\u043e\u0447\u0435\u043c\u0443 \u044f \u0441\u0440\u0430\u0437\u0443 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043b? \u041f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0435 Matlab \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u00ab\u043f\u0430\u0442\u0447\u0430\u00bb \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u044f \u043d\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u043b \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 <code>MIT-SHM<\/code> \u043e\u0448\u0438\u0431\u043e\u043a. \u0412\u0438\u0434\u0438\u043c\u043e, Matlab \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb.<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u2014 \u0442\u043e\u0447\u043d\u043e \u0432\u0441\u0451. \u0415\u0449\u0451 \u0440\u0430\u0437 \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0417\u0430 \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u043c, \u043a\u0442\u043e \u00ab\u0430\u0441\u0438\u043b\u0438\u043b\u00bb! <code>;-)<\/code><\/p>\n<hr\/>\n<h3>\u0421\u0421\u042b\u041b\u041a\u0418<\/h3>\n<p><a class=\"anchor\" name=\"refs\" id=\"refs\"><\/a><\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u0433\u0438\u0442-\u0445\u0430\u0431\u0435 \u0441 \u043c\u043e\u0438\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438: <a href=\"https:\/\/github.com\/dm-MariK\/focal-gui-xclient\" rel=\"noopener noreferrer nofollow\">dm-MariK\/focal-gui-xclient<\/a><\/p>\n<hr\/>\n<p><strong>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0432 \u00ab\u0438\u043a\u0441\u0430\u0445\u00bb<\/strong><\/p>\n<p><a href=\"https:\/\/tldp.org\/HOWTO\/Remote-X-Apps.html\" rel=\"noopener noreferrer nofollow\"><strong>Remote X Apps mini-HOWTO<\/strong><\/a><br \/> <em>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0437\u0430\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0442 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u044d\u0442\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044b:<\/em><br \/> <a href=\"https:\/\/tldp.org\/HOWTO\/Remote-X-Apps-7.html\" rel=\"noopener noreferrer nofollow\">7. X Applications from Another User-id<\/a><br \/> <a href=\"https:\/\/tldp.org\/HOWTO\/Remote-X-Apps-6.html\" rel=\"noopener noreferrer nofollow\">6. Telling the Server<\/a><\/p>\n<p><em>\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0438 \u0432\u043d\u044f\u0442\u043d\u043e\u0435 \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u0440\u043e\u043b\u0438 xhost \u044f \u043d\u0430\u0448\u0435\u043b \u0437\u0434\u0435\u0441\u044c:<\/em><br \/> <a href=\"https:\/\/github.com\/mviereck\/x11docker\/wiki\/X-authentication-with-cookies-and-xhost-(%22No-protocol-specified%22-error)\" rel=\"noopener noreferrer nofollow\">X authentication with cookies and xhost<\/a><\/p>\n<hr\/>\n<p><strong>\u0418\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f Docker-\u0441\u0435\u0442\u044c<\/strong><br \/> <a href=\"https:\/\/stackoverflow.com\/questions\/39913757\/restrict-internet-access-docker-container\" rel=\"noopener noreferrer nofollow\">Restrict Internet Access &#8212; Docker Container<\/a><\/p>\n<p><em>\u0415\u0449\u0435 \u043f\u0440\u043e Docker-\u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Docker:<\/em><br \/> <a href=\"https:\/\/docs.docker.com\/network\/\" rel=\"noopener noreferrer nofollow\">https:\/\/docs.docker.com\/network\/<\/a><br \/> <a href=\"https:\/\/docs.docker.com\/desktop\/networking\/\" rel=\"noopener noreferrer nofollow\">https:\/\/docs.docker.com\/desktop\/networking\/<\/a><br \/> <a href=\"https:\/\/docs.docker.com\/network\/network-tutorial-standalone\/\" rel=\"noopener noreferrer nofollow\">https:\/\/docs.docker.com\/network\/network-tutorial-standalone\/<\/a><br \/> <a href=\"https:\/\/docs.docker.com\/engine\/tutorials\/networkingcontainers\/\" rel=\"noopener noreferrer nofollow\">https:\/\/docs.docker.com\/engine\/tutorials\/networkingcontainers\/<\/a><\/p>\n<p><a href=\"https:\/\/itsecforu.ru\/2021\/04\/02\/%F0%9F%90%B3-%D0%BA%D0%B0%D0%BA-%D1%83%D0%B7%D0%BD%D0%B0%D1%82%D1%8C-ip-%D0%B0%D0%B4%D1%80%D0%B5%D1%81-docker-%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B0\/\" rel=\"noopener noreferrer nofollow\"><strong>\u041a\u0430\u043a \u0443\u0437\u043d\u0430\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441 Docker \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430<\/strong><\/a><br \/> (\u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043e\u0442\u0441\u044e\u0434\u0430 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 <code>xhosts4dockernet_keeper.sh<\/code>)<\/p>\n<p><strong>\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 <\/strong><code><strong>\/etc\/rc.local<\/strong><\/code><strong> \u0432 systemd<\/strong><br \/> <a href=\"https:\/\/synaptica.info\/2020\/06\/26\/ubuntu-20-04-rc-local-start-a-process-after-boot\/\" rel=\"noopener noreferrer nofollow\">Ubuntu 20.04 \u2013 start program after boot<\/a><\/p>\n<p><strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 <\/strong><code><strong>iptables<\/strong><\/code><br \/> <a href=\"https:\/\/ru.wikibooks.org\/wiki\/Iptables\" rel=\"noopener noreferrer nofollow\">Iptables \u2014 \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0438\u0437 \u0412\u0438\u043a\u0438\u0443\u0447\u0435\u0431\u043d\u0438\u043a\u0430<\/a><br \/> <a href=\"https:\/\/1cloud.ru\/help\/security\/ispolzovanie-iptables-na-linux\" rel=\"noopener noreferrer nofollow\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b iptables \u043d\u0430 Linux<\/a><\/p>\n<p><strong>fail2ban<\/strong><br \/> \u0421\u0430\u043c \u043f\u0430\u043a\u0435\u0442 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f Ubuntu. \u041c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 \u00ab\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439\u00bb \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438:<br \/> <code>man 5 jail.conf<\/code><br \/> <code>fail2ban-client -h<\/code><br \/> <em>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435:<\/em><br \/> <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-protect-ssh-with-fail2ban-on-ubuntu-20-04\" rel=\"noopener noreferrer nofollow\">https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-protect-ssh-with-fail2ban-on-ubuntu-20-04<\/a><br \/> <a href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-and-configure-fail2ban-on-ubuntu-20-04\/\" rel=\"noopener noreferrer nofollow\">https:\/\/www.rosehosting.com\/blog\/how-to-install-and-configure-fail2ban-on-ubuntu-20-04\/<\/a><br \/> <a href=\"https:\/\/linuxize.com\/post\/install-configure-fail2ban-on-ubuntu-20-04\/\" rel=\"noopener noreferrer nofollow\">https:\/\/linuxize.com\/post\/install-configure-fail2ban-on-ubuntu-20-04\/<\/a><\/p>\n<p><strong>\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 TCP \u0432 \u00ab\u0438\u043a\u0441\u0430\u0445\u00bb<\/strong><br \/> <em>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 Display Manager&#8217;\u043e\u0432:<\/em><br \/> <a href=\"https:\/\/lanforge.wordpress.com\/2018\/03\/30\/enabling-remote-x-connections\/\" rel=\"noopener noreferrer nofollow\">Enabling Remote X Connections (updated)<\/a><\/p>\n<p><em>\u0413\u0438\u0434 \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c LightDM:<\/em><br \/> <a href=\"https:\/\/wiki.ubuntu.com\/LightDM\" rel=\"noopener noreferrer nofollow\">https:\/\/wiki.ubuntu.com\/LightDM<\/a><br \/> <a href=\"https:\/\/wiki.debian.org\/LightDM\" rel=\"noopener noreferrer nofollow\">https:\/\/wiki.debian.org\/LightDM<\/a><\/p>\n<p><strong>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0443 Dockerfile:<\/strong><br \/> <a href=\"https:\/\/docs.docker.com\/engine\/reference\/builder\/\" rel=\"noopener noreferrer nofollow\">Dockerfile reference<\/a><\/p>\n<p><a href=\"https:\/\/docs.docker.com\/storage\/volumes\/\" rel=\"noopener noreferrer nofollow\"><strong>\u0414\u043e\u043a\u0435\u0440-\u0442\u043e\u043c\u0430<\/strong><\/a><\/p>\n<p><strong>Docker root-mode \u0438 rootless-mode<\/strong><br \/> <a href=\"https:\/\/docs.docker.com\/engine\/security\/rootless\/\" rel=\"noopener noreferrer nofollow\">Run the Docker daemon as a non-root user (Rootless mode)<\/a><br \/> <a href=\"https:\/\/docs.docker.com\/engine\/security\/userns-remap\/\" rel=\"noopener noreferrer nofollow\">Isolate containers with a user namespace<\/a><\/p>\n<p><a href=\"https:\/\/routerus.com\/how-to-set-or-change-timezone-in-linux\/\" rel=\"noopener noreferrer nofollow\"><strong>\u041a\u0430\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u0432 Linux<\/strong><\/a><\/p>\n<p><strong>\u041f\u043e\u0438\u0441\u043a \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/strong><br \/> <a href=\"https:\/\/packages.ubuntu.com\/\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0438\u0441\u043a \u043f\u0430\u043a\u0435\u0442\u043e\u0432 Ubuntu<\/a><br \/> <a href=\"https:\/\/www.debian.org\/distrib\/packages\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0438\u0441\u043a \u043f\u0430\u043a\u0435\u0442\u043e\u0432 Debian<\/a><\/p>\n<hr\/>\n<p><code><strong>socat<\/strong><\/code><strong> \u0438 Xwayland<\/strong><br \/> <a href=\"https:\/\/askubuntu.com\/questions\/34657\/how-to-make-x-org-listen-to-remote-connections-on-port-6000\" rel=\"noopener noreferrer nofollow\">How to make X.org listen to remote connections on port 6000?<\/a> \u2014 \u043f\u0440\u043e \u00ab\u0441\u0432\u044f\u0437\u043a\u0443\u00bb <code>socat<\/code> \u0441 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u043e\u043c \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb<br \/> <a href=\"https:\/\/github.com\/mviereck\/x11docker\/wiki\/How-to-access-X-over-TCP-IP-network\" rel=\"noopener noreferrer nofollow\">How to access X over TCP IP network<\/a> \u2014 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e <code>xhost<\/code> \u0438 <code>socat<\/code>, \u0438 \u0437\u0434\u0435\u0441\u044c \u0436\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e &#171;trusted cookie&#187; \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<\/p>\n<p><a href=\"http:\/\/www.dest-unreach.org\/socat\/\" rel=\"noopener noreferrer nofollow\">\u0421\u0430\u0439\u0442<\/a> \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <code>socat<\/code><br \/> \u0438 <a href=\"http:\/\/www.dest-unreach.org\/socat\/doc\/\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a> \u043f\u043e \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e.<\/p>\n<p><em>\u041a\u0430\u043a \u00ab\u0434\u0435\u0439\u043c\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u00bb <\/em><code><em>socat<\/em><\/code><em> (\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e):<\/em><br \/> <a href=\"https:\/\/medium.com\/@benmorel\/creating-a-linux-service-with-systemd-611b5c8b91d6\" rel=\"noopener noreferrer nofollow\">creating-a-linux-service-with-systemd<\/a><\/p>\n<p>\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e &#171;untrusted cookie&#187; \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/mviereck\/x11docker\/wiki\/X-authentication-with-cookies-and-xhost-(%22No-protocol-specified%22-error)\" rel=\"noopener noreferrer nofollow\">\u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435<\/a><br \/> <em>\u0415\u0449\u0451 \u043f\u0440\u043e &#171;trusted&#187; \u0438 &#171;untrusted cookie&#187; \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u00ab\u043c\u0430\u043d\u0435\u00bb:<\/em><br \/> <code>man 1 xauth<\/code><\/p>\n<hr\/>\n<p><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 <\/strong><code><strong>MIT-SHM<\/strong><\/code><br \/> <a href=\"https:\/\/github.com\/jessfraz\/dockerfiles\/issues\/359\" rel=\"noopener noreferrer nofollow\">MIT-SHM error solutions<\/a>.<br \/> <a href=\"https:\/\/github.com\/mviereck\/dockerfile-x11docker-xserver\/blob\/main\/XlibNoSHM.c\" rel=\"noopener noreferrer nofollow\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u00ab\u043f\u0430\u0442\u0447\u0430\u00bb <code>XlibNoSHM.so<\/code><\/a><br \/> \u0415\u0449\u0435 \u043f\u0440\u043e \u043e\u043f\u0446\u0438\u044e <code>--ipc<\/code> \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0443\u0442: <a href=\"https:\/\/stackoverflow.com\/questions\/56878405\/sharing-memory-across-docker-containers-ipc-host-vs-ipc-shareable\" rel=\"noopener noreferrer nofollow\">Sharing Memory across Docker containers<\/a><\/p>\n<p><strong>\u041f\u0440\u043e\u0435\u043a\u0442\u044b Jess Frazelle<\/strong><br \/> \u0422\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u0441\u0442 \u043e\u0442 21 \u0444\u0435\u0432\u0440\u0430\u043b\u044f 2015: <a href=\"https:\/\/blog.jessfraz.com\/post\/docker-containers-on-the-desktop\/\" rel=\"noopener noreferrer nofollow\">Docker Containers on the Desktop<\/a><br \/> <a href=\"https:\/\/github.com\/jessfraz\/dockerfiles\" rel=\"noopener noreferrer nofollow\">github.com\/jessfraz\/dockerfiles<\/a><br \/> <a href=\"https:\/\/hub.docker.com\/u\/jess\/\" rel=\"noopener noreferrer nofollow\">hub.docker.com\/u\/jess<\/a><\/p>\n<hr\/>\n<p><a href=\"https:\/\/github.com\/mviereck\/x11docker\" rel=\"noopener noreferrer nofollow\"><strong>x11docker<\/strong><\/a><br \/> <a href=\"https:\/\/github.com\/mviereck\/dockerfile-x11docker-xserver\/tree\/main\" rel=\"noopener noreferrer nofollow\">Dockerfile: X servers in container for use with x11docker<\/a><br \/> <a href=\"https:\/\/github.com\/mviereck\/x11docker\/wiki\" rel=\"noopener noreferrer nofollow\">x11docker \u2014 wiki<\/a><\/p>\n<p><a href=\"https:\/\/stackoverflow.com\/questions\/16296753\/can-you-run-gui-applications-in-a-linux-docker-container\/39681017\" rel=\"noopener noreferrer nofollow\"><strong>Can you run GUI applications in a Linux Docker container?<\/strong><\/a><br \/> \u042d\u0442\u043e \u2014 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0446\u0435\u043b\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439\u0432 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445 \u0432 \u041e\u0421 GNU\/Linux <strong>\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e!<\/strong><br \/> \u0421\u0440\u0435\u0434\u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0442\u0443\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d <a href=\"https:\/\/stackoverflow.com\/questions\/16296753\/can-you-run-gui-applications-in-a-linux-docker-container\/39681017#39681017\" rel=\"noopener noreferrer nofollow\">\u0441\u043a\u0440\u0438\u043f\u0442  <code>Xephyrdocker<\/code><\/a>. \u0418\u043c\u0435\u043d\u043d\u043e \u0441 \u044d\u0442\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u0438 \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442 <code>x11docker<\/code>.<\/p>\n<hr\/>\n<p><strong>systemd<\/strong><br \/> <em>\u041f\u0440\u043e \u043e\u043f\u0446\u0438\u0438 <\/em><code><em>systemd-run<\/em><\/code><em> \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u044d\u0442\u0438\u0445 \u00ab\u043c\u0430\u043d\u044f\u0445\u00bb:<\/em><br \/> <code>man 1 systemd-run<\/code><br \/> <code>man 1 systemctl \u0440\u0430\u0437\u0434\u0435\u043b set-property<\/code><br \/> <code>man 5 systemd.resource-control<\/code><\/p>\n<p><em>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u0441\u043d\u043e\u0432\u044b systemd:<\/em> <a href=\"https:\/\/wiki.archlinux.org\/title\/Systemd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)\" rel=\"noopener noreferrer nofollow\">systemd \u2014 archlinux.org<\/a><\/p>\n<p><em>\u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0439:<\/em><br \/> <code>man 5 systemd.exec<\/code><br \/> <code>man 7 capabilities<\/code><br \/> <a href=\"https:\/\/man7.org\/linux\/man-pages\/man7\/capabilities.7.html\" rel=\"noopener noreferrer nofollow\">Capabilities<\/a><br \/> <a href=\"https:\/\/en.wikipedia.org\/wiki\/Linux_namespaces\" rel=\"noopener noreferrer nofollow\">Linux namespaces<\/a><br \/> <a href=\"https:\/\/wiki.archlinux.org\/title\/Control_groups\" rel=\"noopener noreferrer nofollow\">Cgroups<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/articles\/780322\/\"> https:\/\/habr.com\/ru\/articles\/780322\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h3>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/h3>\n<ul>\n<li>\n<p><a href=\"#intro\" rel=\"noopener noreferrer nofollow\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#theory\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f<\/a> <\/p>\n<ul>\n<li>\n<p><a href=\"#x-theory\" rel=\"noopener noreferrer nofollow\">\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u00ab\u0442\u0435\u043e\u0440\u0438\u0438\u00bb \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u00ab\u0438\u043a\u0441\u044b\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#x-security-basics\" rel=\"noopener noreferrer nofollow\">\u041e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \/ \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 X-\u0441\u0435\u0440\u0432\u0435\u0440\u0435<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#prac\" rel=\"noopener noreferrer nofollow\">\u00ab\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c\u00bb<\/a> <\/p>\n<ul>\n<li>\n<p><a href=\"#internal-docker-network\" rel=\"noopener noreferrer nofollow\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 Docker-\u0441\u0435\u0442\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#rc-local-systemd\" rel=\"noopener noreferrer nofollow\">\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 <code>\/etc\/rc.local<\/code> \u0432 systemd<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#iptables\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0430\u0439\u0435\u0440\u0432\u043e\u043b\u0430 <code>iptables<\/code><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#xorg-tcp\" rel=\"noopener noreferrer nofollow\">\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 TCP\/IP \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u0438\u043c\u00bb xorg-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#dockerfile\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 Docker-\u043e\u0431\u0440\u0430\u0437\u0430: Dockerfile<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#docker-create\" rel=\"noopener noreferrer nofollow\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438 \u0435\u0433\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#using-container\" rel=\"noopener noreferrer nofollow\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#matlab\" rel=\"noopener noreferrer nofollow\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Matlab<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#anneces\" rel=\"noopener noreferrer nofollow\">P.S. \u0438\u043b\u0438 \u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/a> <\/p>\n<ul>\n<li>\n<p><a href=\"#annex-xwayland-socat\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 1: Xwayland \u0438 <code>socat<\/code><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#annex-unix-socket-to-docker-volume\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 2: \u041c\u0435\u0442\u043e\u0434 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f TCP\/IP-\u0441\u0435\u0442\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#annex-x11docker\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 3: x11docker<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#annex-systemd-run-matlab\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 4: \u0437\u0430\u043f\u0443\u0441\u043a Matlab \u0447\u0435\u0440\u0435\u0437 systemd-run<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#pps-xhost-MIT-SHM\" rel=\"noopener noreferrer nofollow\">P.P.S. xhost \u0438 MIT-SHM<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#refs\" rel=\"noopener noreferrer nofollow\">\u0421\u0421\u042b\u041b\u041a\u0418<\/a><\/p>\n<\/li>\n<\/ul>\n<h3>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h3>\n<p><a class=\"anchor\" name=\"intro\" id=\"intro\"><\/a><\/p>\n<p>\u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435: \u043a\u0430\u043a \u043e\u0442 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430, \u0442\u0430\u043a \u0438 \u043e\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0431\u044b\u043b Matlab. \u041f\u0438\u0448\u0443\u0442, \u0447\u0442\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u043e\u043d \u0441\u0442\u0430\u043b \u0448\u0438\u0431\u043a\u043e \u00ab\u0443\u043c\u043d\u044b\u043c\u00bb: \u0441\u0430\u043c \u0431\u0435\u0437 \u0441\u043f\u0440\u043e\u0441\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043b\u0435\u0437\u0435\u0442 \u0432 \u0441\u0435\u0442\u044c \u0438 \u0447\u0435\u043c-\u0442\u043e \u0442\u0430\u043c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0433\u043e\u0441\u0442\u0435\u0432\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \/ \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0443\u044e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e (\u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 VirtualBox) \u2014 \u044d\u0442\u043e, \u0418\u041c\u0425\u041e, \u00abtoo much\u00bb. Docker \u043f\u043e\u0434\u043e\u0448\u0435\u043b \u0431\u044b \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043b\u0443\u0447\u0448\u0435, \u0442.\u043a. \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u043e \u0436\u0435 \u044f\u0434\u0440\u043e \u041e\u0421 \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \/ \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b. \u041e\u0434\u043d\u0430\u043a\u043e Docker \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0427\u0442\u043e \u0436, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u044d\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0442\u0430\u043a\u0438 Matlab \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0441 \u043f\u043e\u043b\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u00ab\u0438\u043a\u0441\u043e\u0432\u00bb \u0438 GUI.<\/p>\n<p><em>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435:<\/em> \u0434\u0430\u043b\u0435\u0435 \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0451\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431 \u041e\u0421 GNU\/Linux. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e &#8212; Ubuntu 20.04 LTS (Focal Fossa) \u043d\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 x86_64 (\u0432\u0435\u0440\u0441\u0438\u044f \u044f\u0434\u0440\u0430: 5.15.0-88-generic) \u0441\u043e \u0441\u0440\u0435\u0434\u043e\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0441\u0442\u043e\u043b\u0430 MATE (\u0432\u0435\u0440\u0441\u0438\u0438 1.24.0) \u0438 \u043e\u043a\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 X  Window System xorg (\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f X11R7.7, xserver-xorg version: 1:7.7+19ubuntu14, xserver-xorg-core version: 2:1.20.13-1ubuntu1~20.04.9).<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043d\u0438\u0436\u0435\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435. \u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, Docker \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 TCP\/IP-\u0441\u0435\u0442\u0438; Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c Docker-\u0441\u0435\u0442\u044f\u043c, \u0442\u0430\u043a \u0438 \u043a \u0441\u0435\u0442\u044f\u043c \u0441 \u0432\u044b\u0445\u043e\u0434\u0430\u043c \u0432\u043e \u00ab\u0432\u043d\u0435\u0448\u043a\u0443\u00bb (\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421 (host Operating System, \u0442.\u0435. \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0421\u0438\u0441\u0442\u0435\u043c\u044b, \u043d\u0430\u0442\u0438\u0432\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440)) \u2014 \u00ab\u043b\u043e\u043a\u0430\u043b\u043a\u0443\u00bb \u0438\/\u0438\u043b\u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442.<\/p>\n<p>\u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u00ab\u0438\u043a\u0441\u044b\u00bb (X Window System) \u2014 \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440. \u0421\u0435\u0440\u0432\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0438\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u043e\u043c\u0443 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u043c\u0443 X-\u0434\u0438\u0441\u043f\u043b\u0435\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0443\u044e, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443, \u043c\u044b\u0448\u044c \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 (\u043d\u043e \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044f\u0441\u044c \u044d\u0442\u0438\u043c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435). \u041a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u0438\u0445 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0443\u043a\u0438-\u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <code>~\/.Xauthority<\/code>. \u0410\u0434\u0440\u0435\u0441 X-\u0434\u0438\u0441\u043f\u043b\u0435\u044f, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f, \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>DISPLAY<\/code>. \u0412 X Window System \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u0430\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c: \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u0432 \u0441\u0435\u0442\u0438, \u0430 \u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0441\u0435\u0442\u0438 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, xorg (\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0437\u0434\u0435\u0441\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d) \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 TCP\/IP, \u0445\u043e\u0442\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c X-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0447\u0435\u0440\u0435\u0437 unix-socket. \u0418\u0437 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u00ab\u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u044b\u0445\u00bb \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432 GNU\/Linux \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 TCP\/IP X-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u2014 \u0438 \u0434\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u2014 \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0434\u043b\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043e\u0442 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u041e\u0421, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e:<\/p>\n<ol>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e (\u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 Docker \u2014 &#171;internal&#187;, \u0442.\u0435. \u00ab\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e\u00bb) \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e Docker-\u0441\u0435\u0442\u044c, \u0442.\u0435. \u0441\u0435\u0442\u044c \u0431\u0435\u0437 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432\u043e \u0432\u043d\u0435: \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0438 \u00ab\u043b\u043e\u043a\u0430\u043b\u043a\u0443\u00bb. \u0412 \u044d\u0442\u0443 \u0441\u0435\u0442\u044c \u0432\u043e\u0439\u0434\u0443\u0442 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u0430\u044f\u00bb \u043c\u0430\u0448\u0438\u043d\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f xorg, \u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0433\u0434\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0433\u043e\u00bb xorg.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u043c\u0443\u00bb xorg \u043f\u043e TCP\/IP \u2014 \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 Docker-\u0441\u0435\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c Docker-\u043e\u0431\u0440\u0430\u0437 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 GUI.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f DISPLAY \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 (\u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441 \u0445\u043e\u0441\u0442\u0430).<\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c GUI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0438\u0437 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u043c\u00bb X-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 (\u0442.\u0435. \u043d\u0430 X-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421).<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043a \u00ab\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439\u00bb Docker-\u0441\u0435\u0442\u0438, \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0442 Docker-\u0441\u0435\u0442\u0438 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u0441\u0435\u0442\u044c <code>bridge<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 <code>docker0<\/code> \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u00ab\u0445\u043e\u0437\u044f\u0439\u0441\u043a\u043e\u0439\u00bb \u041e\u0421, \u0438 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u00ab\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439\u00bb); \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u043a \u044d\u0442\u043e\u0439 \u043d\u0435-\u00ab\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439\u00bb \u0441\u0435\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0444\u0442 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043d\u0430\u043c \u0441\u043e\u0444\u0442 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438.<\/p>\n<\/li>\n<\/ol>\n<hr\/>\n<h3>\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f<\/h3>\n<p><a class=\"anchor\" name=\"theory\" id=\"theory\"><\/a><\/p>\n<h4>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u00ab\u0442\u0435\u043e\u0440\u0438\u0438\u00bb \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u00ab\u0438\u043a\u0441\u044b\u00bb<\/h4>\n<p><a class=\"anchor\" name=\"x-theory\" id=\"x-theory\"><\/a><\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0449\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b X-\u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 xorg, \u0438 \u0447\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 TCP\/IP \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 X-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0443\u0436\u0435 <em>\u0412\u041a\u041b\u042e\u0427\u0415\u041d\u0410<\/em>.<\/p>\n<p>\u0412\u0432\u0435\u0434\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e. \u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0435\u0430\u043d\u0441\u043e\u043c \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0435\u0430\u043d\u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u043b\u0441\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c Display Manager&#8217;\u0430. \u0421\u0430\u043c\u043e\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0430\u043d\u0441\u0430, \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u2014 \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c\u00bb. \u0410\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0435\u0430\u043d\u0441\u043e\u043c \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u0442 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0435\u0430\u043d\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u044b\u043c X-\u0434\u0438\u0441\u043f\u043b\u0435\u0435\u043c, \u0442.\u0435. \u043e\u043a\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0435 \u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0432\u0432\u043e\u0434\u0430 (\u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439, \u043c\u044b\u0448\u044c\u044e \u0438 \u0442.\u043f.). \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u0435\u0430\u043d\u0441\u0430 \u043d\u0430\u0437\u043e\u0432\u0451\u043c \u00ab\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c\u00bb.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c Display Manager&#8217;\u0430 \u043b\u043e\u0433\u0438\u043d\u0438\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c (\u043f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 <code>user-1<\/code>)? \u0412\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u043d\u0438\u0436\u0435 \u043b\u0438\u0441\u0442\u0438\u043d\u0433:<\/p>\n<pre><code class=\"bash\">$ pgrep X | xargs ps -lfwwwp F S UID          PID    PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY        TIME CMD 4 S root        1479    1464  0  80   0 - 308106 -     \u0444\u0435\u043221 tty7   10:00 \/usr\/lib\/xorg\/Xorg -listen inet -listen unix :0 -seat seat0 -auth \/var\/run\/lightdm\/root\/:0 -listen tcp vt7 -novtswitch <\/code><\/pre>\n<p>\u041c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e Display Manager (\u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 LightDM) \u043f\u043e\u0440\u043e\u0434\u0438\u043b \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 Xorg. \u0414\u043b\u044f \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0435\u043c\u0443 \u0431\u044b\u043b \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d 7-\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u2014 <code>tty7<\/code> (\u043d\u0430 \u043d\u0435\u0433\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043f\u0430\u0441\u0442\u044c, \u043d\u0430\u0436\u0430\u0432 <code>Ctrl + Alt + F7<\/code>, \u0435\u0441\u043b\u0438 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043a\u0438\u043d\u0443\u043b\u0438 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 tty). \u0415\u0433\u043e \u043d\u043e\u043c\u0435\u0440 \u0437\u043d\u0430\u0447\u0438\u0442\u0441\u044f \u0432 \u043f\u043e\u043b\u0435 <code>TTY<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 \u043e\u043f\u0446\u0438\u0438 <code>-listen tcp vt7<\/code>. <code>-listen unix :0<\/code> \u2014 \u044d\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u0430, \u043e\u043d \u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>DISPLAY<\/code> \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:<\/p>\n<pre><code class=\"bash\">$ echo $DISPLAY :0 <\/code><\/pre>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0443 \u043d\u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0439: <code>\/tmp\/.X11-unix\/X0<\/code><\/p>\n<pre><code class=\"bash\">$ stat \/tmp\/.X11-unix\/X0    \u0424\u0430\u0439\u043b: \/tmp\/.X11-unix\/X0   \u0420\u0430\u0437\u043c\u0435\u0440: 0             \u0411\u043b\u043e\u043a\u043e\u0432: 0          \u0411\u043b\u043e\u043a \u0412\/\u0412: 4096   \u0441\u043e\u043a\u0435\u0442 \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e: 10302h\/66306d       \u0418\u043d\u043e\u0434\u0430: 3021621     \u0421\u0441\u044b\u043b\u043a\u0438: 1 \u0414\u043e\u0441\u0442\u0443\u043f: (0777\/srwxrwxrwx)  Uid: (    0\/    root)   Gid: (    0\/    root) ... ... ... <\/code><\/pre>\n<p>\u042d\u0442\u043e\u043c\u0443 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043d\u0430 \u043f\u0440\u043e\u0441\u043b\u0443\u0448\u043a\u0443 TCP \u043f\u043e\u0440\u0442 6000 (\u0435\u0441\u043b\u0438 xorg&#8217;\u0443 \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u0430 \u043e\u043f\u0446\u0438\u044f <code>-listen inet<\/code>).<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u043f\u0446\u0438\u044e <code>-auth \/var\/run\/lightdm\/root\/:0<\/code> \u041e\u043d\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"bash\">$ sudo stat \/var\/run\/lightdm\/root\/:0   \u0424\u0430\u0439\u043b: \/var\/run\/lightdm\/root\/:0   \u0420\u0430\u0437\u043c\u0435\u0440: 61            \u0411\u043b\u043e\u043a\u043e\u0432: 8          \u0411\u043b\u043e\u043a \u0412\/\u0412: 4096   \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e: 19h\/25d     \u0418\u043d\u043e\u0434\u0430: 1694        \u0421\u0441\u044b\u043b\u043a\u0438: 1 \u0414\u043e\u0441\u0442\u0443\u043f: (0600\/-rw-------)  Uid: (    0\/    root)   Gid: (    0\/    root) ... ... ... <\/code><\/pre>\n<p>\u042d\u0442\u043e \u2014 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0438\u043c\u0435\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e root (\u041f\u0440\u043e\u0446\u0435\u0441\u0441 Xorg \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 root&#8217;\u0430!). \u041f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 <code>Xorg<\/code> Display Manager&#8217;\u043e\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0430\u044f (\u043f\u0441\u0435\u0432\u0434\u043e-)\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c 16-\u0440\u0438\u0447\u043d\u044b\u0445 \u0446\u0438\u0444\u0440, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u0430\u044f <code>MIT-MAGIC-COOKIE-1<\/code>. \u041a\u043e\u043f\u0438\u044f \u044d\u0442\u043e\u0439 \u0436\u0435 \u0441\u0430\u043c\u043e\u0439 <code>MIT-MAGIC-COOKIE-1<\/code> \u0432\u044b\u0434\u0430\u0435\u0442\u0441\u044f \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e\u00bb: \u043e\u043d\u0430 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0435\u0433\u043e \u0444\u0430\u0439\u043b <code>~\/.Xauthority<\/code>. \u0415\u0441\u043b\u0438 <code>MIT-MAGIC-COOKIE-1<\/code> \u0438\u0437 <code>~\/.Xauthority<\/code> \u0438 \u0444\u0430\u0439\u043b\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u043f\u0446\u0438\u044f <code>-auth<\/code> \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 <code>Xorg<\/code>, \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u2014 \u0442\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f x-\u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0430 x-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439, \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442\u0441\u044f. \u0423\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0442\u0430\u043a, \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u044d\u0442\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0435. (\u0421\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435 \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435, \u0432 \u0447\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u0432\u044b\u0432\u043e\u0434 <code>cat ~\/.Xauthority<\/code>, \u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0432\u0438\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>xauth list<\/code>.)<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ xauth -v Using authority file \/home\/user-1\/.Xauthority  # \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u043e\u0439 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d, \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u0430 \u043e\u043f\u0446\u0438\u044f -f &lt;\/path\/to\/file>  user-1@ThinkPad:~$ xauth list ThinkPad\/unix:0  MIT-MAGIC-COOKIE-1  e996a1ef44c240520b877abfc7adadd9  user-1@ThinkPad:~$ sudo xauth -f \/var\/run\/lightdm\/root\/:0 list ThinkPad\/unix:0  MIT-MAGIC-COOKIE-1  e996a1ef44c240520b877abfc7adadd9 <\/code><\/pre>\n<p><em>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/em><br \/> \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 <code>~\/.Xauthority<\/code> \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0439 <code>MIT-MAGIC-COOKIE-1<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">user-1@ThinkPad:~$ xauth  Using authority file \/home\/user-1\/.Xauthority xauth> list ThinkPad\/unix:0  MIT-MAGIC-COOKIE-1  e996a1ef44c240520b877abfc7adadd9 ThinkPad\/unix:5  MIT-MAGIC-COOKIE-1  da5cf526102461bda51754df47dc3005 xauth> quit <\/code><\/pre>\n<p>\u0422.\u0435. \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 x-\u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>DISPLAY<\/code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a \u043a\u0430\u043a\u043e\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e x-\u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0444\u0430\u0439\u043b <code>~\/.Xauthority<\/code> (\u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e) \u043f\u0435\u0440\u0441\u0438\u0441\u0442\u0438\u0440\u0443\u0435\u0442 \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u043c\u0438 \u041e\u0421. <code>MIT-MAGIC-COOKIE-1<\/code> \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u044f\u0432\u043d\u043e \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u043d\u043e\u043c\u0435\u0440\u0443 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442\u0430 (\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f Display Manager&#8217;\u043e\u043c \u043f\u0440\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u043c \u043b\u043e\u0433\u0438\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443), \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 <code>MIT-MAGIC-COOKIE-1<\/code> \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u0432 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u043c\u0438.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u0432\u0448\u0435\u043c\u0443\u0441\u044f \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e\u00bb \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u0441\u044f: \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b <code>tty7<\/code>, \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a x-\u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u2014 \u044e\u043d\u0438\u043a\u0441-\u0441\u043e\u043a\u0435\u0442 <code>\/tmp\/.X11-unix\/X0<\/code> (\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 <code>DISPLAY = :0<\/code>) \u0438 TCP-\u043f\u043e\u0440\u0442 6000, \u0430 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043f\u0438\u044f <code>MIT-MAGIC-COOKIE-1<\/code> \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 <code>\/var\/run\/lightdm\/root\/:0<\/code>.<\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u043c\u0441\u044f \u0432\u0442\u043e\u0440\u044b\u043c (\u0435\u0449\u0435 \u043e\u0434\u043d\u0438\u043c) \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c\u00bb \u0447\u0435\u0440\u0435\u0437 LightDM, \u041d\u0415 \u0440\u0430\u0437\u043b\u043e\u0433\u0438\u043d\u0438\u0432\u0430\u044f\u0441\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0435\u0440\u0432\u044b\u043c (\u00ab\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u043a\u0440\u0430\u043d\u00bb \u2192 \u00ab\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u00bb). \u041d\u0430\u0437\u043e\u0432\u0451\u043c \u0435\u0433\u043e <code>user-2<\/code>.<\/p>\n<pre><code class=\"bash\">$ pgrep X | xargs ps<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-362808","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/362808","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=362808"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/362808\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=362808"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=362808"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=362808"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}