{"id":118,"date":"2017-03-16T22:49:14","date_gmt":"2017-03-16T22:49:14","guid":{"rendered":"http:\/\/devblog.cssec.de\/?p=118"},"modified":"2019-02-08T23:22:24","modified_gmt":"2019-02-08T23:22:24","slug":"docker-mounten-von-netzwerkverzeichnissen","status":"publish","type":"post","link":"https:\/\/www.cssec.de\/blog\/2017\/03\/16\/docker-mounten-von-netzwerkverzeichnissen\/","title":{"rendered":"Docker &#8211; mounten von Netzwerkverzeichnissen"},"content":{"rendered":"<p>F\u00fcr die Erstellung eines angepassten Yocto-Images f\u00fcr unsere Steuerung besteht die Idee, das auf einem Samba-Share vorhandene Git automatisch auszuchecken, zu bauen und in das FileSystem einzuspielen.<br \/>\nF\u00fcr die Portabilit\u00e4t habe ich das Yocto-Build-System in einem Docker laufen.<\/p>\n<p>Blau\u00e4ugig wie ich bin, habe ich in die fstab des Docker-Containers einfach mal die entsprechenden Mountpoints angegeben und nach Installation des cifs-utils &#8211; Pakets versucht den SMB-Share mit mount.cifs \/mountPoint entsprechend zu mounten. Egal was ich jedoch gemacht habe, immer kam :<\/p>\n<pre>mount\u00a0error(1):\u00a0Operation\u00a0not\u00a0permitted\r\nRefer\u00a0to\u00a0the\u00a0mount.cifs(8)\u00a0manual\u00a0page\u00a0(e.g.\u00a0man\u00a0mount.cifs)<\/pre>\n<p>Trotz diversen chmod\u2019s (in diversen Foren gelesen) habe ich es jedoch nicht geschafft, das mount zum Laufen zu bekommen, bis ich darauf aufmerksam wurde, dass Docker in der Standard-Einstellung so etwas verbietet.<\/p>\n<p>Dazu ben\u00f6tigt man entweder erweiterte Privilegien im Container bzw. die SYS_ADMIN &#8211; Rolle. Leider geht das nur beim erzeugen eines Containers aus einem Image \u00fcber den run-Befehl, ein bestehender Container kann leider nicht mit den Rechten ausgestattet werden.<\/p>\n<p>Nachdem dann also aus meinem Container \u00fcber:<\/p>\n<pre>docker\u00a0commit\u00a0-a\u00a0\"Carsten\u00a0Schunk\"\u00a0-m\u00a0\"irgendeine\u00a0Beschreibung\"\u00a0&lt;docker-id&gt;\u00a0&lt;image-name&gt;<\/pre>\n<p>nach ca. 3 Stunden ein Image erstellt worden ist, konnte ich anschlie\u00dfend aus dem Image wiederum einen Docker-Container mit erweiterten Rechten erstellen:<\/p>\n<pre>docker\u00a0run\u00a0-it\u00a0--cap-add\u00a0SYS_ADMIN\u00a0--privileged\u00a0&lt;image-name&gt;\u00a0\/bin\/bash<\/pre>\n<p>Mit diesen erweiterten Rechten konnte man dann auch ein cifs-Dateisystem mounten. Hier sollte aber darauf geachtet werden, in den Mount-Optionen ein nofail einzubauen, ansonsten kann es sein, dass der Start des Containers sehr lange bzw. endlos dauert. I.d.R. wird der mount beim Start erfolglos sein, aber nach einem attach kann man das ja manuell machen.<\/p>\n<p>Muss man erst mal wissen \u2026<\/p>\n","protected":false},"excerpt":{"rendered":"<p>F\u00fcr die Erstellung eines angepassten Yocto-Images f\u00fcr unsere Steuerung besteht die Idee, das auf einem Samba-Share vorhandene Git automatisch auszuchecken, zu bauen und in das FileSystem einzuspielen. F\u00fcr die Portabilit\u00e4t habe ich das Yocto-Build-System in einem Docker laufen. Blau\u00e4ugig wie ich bin, habe ich in die fstab des Docker-Containers einfach mal die entsprechenden Mountpoints angegeben [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":268,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[],"_links":{"self":[{"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/posts\/118"}],"collection":[{"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/comments?post=118"}],"version-history":[{"count":1,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/posts\/118\/revisions"}],"predecessor-version":[{"id":119,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/posts\/118\/revisions\/119"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/media\/268"}],"wp:attachment":[{"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/media?parent=118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/categories?post=118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cssec.de\/blog\/wp-json\/wp\/v2\/tags?post=118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}