NEWS
[Test] Installation von Docker @ Debian (Wheezy) in einer VM
-
Hallo zusammen,
hier einmal meine Erfahrung bei der Installation von Docker.
Das ganze habe ich auf einer VMware installiert.
Rechner mit Win7 64Bit
VM-Player installiert
Die Netzinstallation von Debian geladen (debian-7.8.0-amd64-netinst.iso)
Neue VM erstellt und von der "debian-7.8.0-amd64-netinst.iso" gestartet.
Für die Installation gibt es wohl schon genug "HowTo's
Bei der Auswahl des Systems habe ich mich auf den ssh-Server und die standard-Tools beschränkt. Den Rechner habe ich "Docker" genannt
Je nach Internetanbindung ist die Installation rasch erledigt und man hat ein Debian-System zum testen von Docker.
nun geht es an die Installation
mit Putty via SSH auf das System verbinden.
<u>Installation</u> (Quelle: https://docs.docker.com/installation/de … -7x-64-bit)
- Install Kernel from wheezy-backports
- Add the following line to your /etc/apt/sources.list
"deb [http://http.debian.net/debian](http://http.debian.net/debian) wheezy-backports main" then install the linux-image-amd64 package (note the use of -t wheezy-backports)
$ sudo apt-get update $ sudo apt-get install -t wheezy-backports linux-image-amd64
- Install Docker using the get.docker.com script:
apt-get install curl curl -sSL https://get.docker.com/ | sh
<u>Building an image from a Dockerfile</u>
Using the docker commit command is a pretty simple way of extending an image but it's a bit cumbersome and it's not easy to share a development process for images amongst a team. Instead we can use a new command, docker build, to build new images from scratch.
To do this we create a Dockerfile that contains a set of instructions that tell Docker how to build our image.
Let's create a directory and a Dockerfile first.
root@Docker:~# mkdir ioBroker root@Docker:~# cd ioBroker root@Docker:~# touch Dockerfile root@Docker:~# cd root@Docker:~# nano ./ioBroker/Dockerfile
Inhalt vom ./ioBroker/Dockerfile
! #
! # VERSION 0.0.1
! #
! FROM debian
! MAINTAINER derAuge
! #
! RUN apt-get update && apt-get upgrade -y && apt-get install -y sudo apt-utils procps
! # Info: im Scipt "/etc/init.d/iobroker.sh" wird sudo benötigt
! # Info: ps is not installed in the base wheezy image. Try this from within the container:
! # apt-get update && apt-get install procps
! #
! ### Installation von NODE vorbereiten ###
! RUN apt-get install -y curl
! RUN curl -sL https://deb.nodesource.com/setup | bash -
! RUN apt-get install -y nodejs
! #
! ### Official installation from ioBroker ###
! RUN mkdir /opt/iobroker
! WORKDIR /opt/iobroker
! RUN npm install iobroker
! #Nun einen Container erstellen
root@Docker:~# root@Docker:~# docker build -t auge/iobroker:v0.0.1 ./ioBroker/
Welche Images sind auf meinem System
root@Docker:~# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE auge/iobroker v0.0.1 cb0afcab36fa 4 hours ago 266 MB debian latest c90d655b99b2 4 weeks ago 85.01 MB
Nun den Container starten
root@Docker:~# docker run -it --name iobroker -p 9081:8081 auge/iobroker:v0.0.1 "bash" root@d36666ebdf3e:/opt/iobroker#
in einem weiteren Terminal-Fenster
root@Docker:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d36666ebdf3e auge/iobroker:v0.0.1 "bash" 4 hours ago Up 4 hours 0.0.0.0:9081->8081/tcp iobroker root@Docker:~#
Info: mit "-p 9081:808" wird er interne Port 8081 nach außen auf den Port 9081 gelegt
Nun sollte man mit "http://IPderVM:9081 auf das Admin-Interface gelangen (Funktioniert noch nicht)
Gruß
derAuge
-
Bekannte Probleme:
im Container wird ioBroker nicht sauber gestartet (installiert)
root@d36666ebdf3e:/opt/iobroker# root@d36666ebdf3e:/opt/iobroker# ps -a PID TTY TIME CMD 5 ? 00:00:00 ps root@d36666ebdf3e:/opt/iobroker# iobroker restart ioBroker controller daemon is not running Starting ioBroker controller daemon... ioBroker controller daemon started. PID: 9 root@d36666ebdf3e:/opt/iobroker# ps -a PID TTY TIME CMD 15 ? 00:00:00 ps root@d36666ebdf3e:/opt/iobroker# root@d36666ebdf3e:/opt/iobroker#
erst nach löschen und neuinstallation laufen alle Dienste
root@d36666ebdf3e:/opt/iobroker# update-rc.d iobroker.sh remove update-rc.d: using dependency based boot sequencing root@d36666ebdf3e:/opt/iobroker# rm /etc/init.d/iobroker.sh root@d36666ebdf3e:/opt/iobroker# rm /opt/iobroker/* -R root@d36666ebdf3e:/opt/iobroker# ### Install root@d36666ebdf3e:/opt/iobroker# mkdir /opt/iobroker mkdir: cannot create directory `/opt/iobroker': File exists root@d36666ebdf3e:/opt/iobroker# cd /opt/iobroker root@d36666ebdf3e:/opt/iobroker# npm install iobroker - > iobroker@0.5.1 install /opt/iobroker/node_modules/iobroker > node lib/setup.js npm install iobroker.js-controller --production --silent --prefix "/opt/iobroker/node_modules/iobroker/lib/../../../" npm install iobroker.admin --production --silent --prefix "/opt/iobroker/node_modules/iobroker/lib/../../../" Write "./iobroker start" to start the ioBroker Auto-start was enabled. Write "update-rc.d -f iobroker.sh remove" to disable auto-start iobroker is started. Go to "http://ip-addr:8081" to open the admin UI. iobroker@0.5.1 node_modules/iobroker └── yargs@1.2.6 (minimist@0.1.0) root@d36666ebdf3e:/opt/iobroker# ps -A PID TTY TIME CMD 1 ? 00:00:00 bash 178 ? 00:00:00 io.js-controlle 184 ? 00:00:00 io.admin.0 190 ? 00:00:00 ps root@d36666ebdf3e:/opt/iobroker#
Zur Zeit versuche ich noch den Fehler bei der automatischen erstellung des Containers (Installation von ioBroker) zu finden
-
Hallo,
klasse…komme gerne darauf zurück. Mein ioBroker Image auf ARM braucht nämlich noch Feinschliff...
Ich bin mir nicht sicher ob 9081 ausreicht, gerade auch in Hinblick auf die Adapter.
Habe mich auch gefragt was mit den sockets ist.
Danke
cu
Steve
-
Hallo,
klasse…komme gerne darauf zurück. Mein ioBroker Image auf ARM braucht nämlich noch Feinschliff...
Ich bin mir nicht sicher ob 9081 ausreicht, gerade auch in Hinblick auf die Adapter.
Habe mich auch gefragt was mit den sockets ist.
Danke
cu
Steve `
Man braucht sicherlich noch-
hm-rpc (2000, 2001, 2002)
-
node-red 1880
-
socketio: 8084
-
sonos: 8083
-
web: 8082 (vis)
-
mqtt: 1883
-
-
Zur Zeit versuche ich noch den Fehler bei der automatischen Installation zu finden `
Welchen denn? -
Zur Zeit versuche ich noch den Fehler bei der automatischen Installation zu finden
Welchen denn?
Nach der "automatischen" Installation (erstellen des Containers mit "docker build -t auge/iobroker:v0.0.1 ./ioBroker") läuft ioBroker noch nicht.
Zur Zeit bekomme ich es nur hin, wenn ich im Container die Installation durchführe.
Der "Fehler" liegt also bei mir / bei der Erstellung des Containers.
Gruß
derAuge
-
Hallo Auge,
ich weiss nicht ob es in die Richtung geht…ein Docker Image verliert alle Einstellungen bei einem Neustart. Wenn man die Konfiguration behalten will muss man ein "docker commit ..." machen. Kann auch sein das ich Dein Problem falsch verstanden habe...
Momentan erzeuge ich meine Docker Images händisch soll heissen:
-
Image interaktiv starte
-
ioBroker installieren
-
Testen und dann mit "exit" beenden.
-
Anschliessend "docker commit...".
-
Neustart mit "docker run -it -p 8082:8082 -p 2001:2001 -p 9090:9090 -p 9091:9091 homegear/hmm" (hmm ist iobroker plus hmm)
Aber es läuft noch nicht rund...ich vermute es sind die weiteren Ports (siehe Bluefox) die man explicit freigeben muss.
Der Vorteil eines Docker Build Prozess (mit einem buildfile) hat sich mir noch nicht so erschlossen.
BTW, willst Du das Image auf docker.com hochladen?
Steve
-
-
Hallo Steve,
Du forcierst doch das Thema Docker oder? Ich glaube ich habe es noch nicht einmal im Ansatz verstanden g
Was ich bisher davon begriffen habe, klingt aber sehr interessant. Bist Du da noch am Ball?
Die Synology Diskstation unterstützt im aktuellen Beta (DSM 5.2) Docker.
Meine Hoffnung ist, dass man mit Docker dann einige Applikationen, wie z.B. ioBroker, einfacher auf die Diskstation bekommt.
Lohnt es sich aus Deiner Sicht, dass ich mich in dem Thema schlau mache. Also überhaupt erst einmal versuche Docker zu verstehen oder ist das Thema "zu groß"?
Meinst Du für Diskstation -> Docker -> ioBroker besteht eine realistische Chance?
Gruß
Michael
-
finde noch kein Beta bei der DS412+
Hast du andere Quellen angegeben?
-
finde noch kein Beta bei der DS412+
Hast du andere Quellen angegeben? `
Die 5.2. Beta und die Möglichkeit sie zu installieren steht auf der Synology Webseite:
https://www.synology.com/de-de/dsm/5.2beta/
Ich habe sie allerdings selbst noch nicht drauf.
[EDIT:]
Die DS412+ ist dabei:
Eingesetzte Modelle
15-series: RS815+, RS815RP+, DS3615xs, DS2415+, DS2015xs, DS1815+, DS1515+, DS415+, DS415play, DS215j, DS115, DS115j
14-series: RS3614xs+, RS3614xs, RS3614RPxs, RS2414+, RS2414RP+, RS814RP+, RS814+, RS814, RS214, DS414, DS414j, DS414slim, DS214+, DS214, DS214play, DS214se, DS114, EDS14
13-series: RS10613xs+, RS3413xs+, DS2413+, DS1813+, DS1513+, DS713+, DS413, DS413j, DS213+, DS213, DS213air, DS213j
12-series: RS3412RPxs, RS3412xs, RS2212RP+, RS2212+, RS812+, RS812RP+, RS812, RS212, DS3612xs, DS1812+, DS1512+, DS712+, DS412+, DS212+, DS212, DS212j, DS112+, DS112, DS112j
11-series: RS3411xs, RS3411RPxs, RS2211RP+, RS2211+, RS411, DS3611xs, DS2411+, DS1511+, DS411+, DS411, DS411+II, DS411j, DS411slim, DS211+, DS211, DS211j, DS111
10-series: RS810RP+, RS810+, DS1010+, DS710+, DS410, DS410j, DS210+, DS210j, DS110+, DS110j
Version: 5.2-5532
(2015/03/12)
-
Hallo Michael.
Docker:
Wenn Du VMWare kennst, dann wirst du vieles in Docker wieder erkennen. Allerdings muss es Linux sein (momentan). Es gibt allerdings ein "Boot2Docker" für Win und Mac, zum ausprobieren. Microsoft ist auch schon mit dabei.
Und falls Du mich direkt zu Docker fragst "Ja ich bin absolut davon überzeugt!" :-). Die Vorteile gerade für "ioBroker Anfänger" sind immens und wir haben auch schon ein ioBroker Docker Image (veraltet 0.39)und auch einige für Homegear ==> Keine CCU mehr notwendig (theoretisch).
Es gibt ein Docker "Try it" auf https://www.docker.com/tryit/
Synology:
Danke für den Hinweis, dass ist ja eine super Entwicklung! Allerdings ist meine Diskstation DS212J wie ein Raspi 1, d.h. nur kleiner ARM und nur 512 MB.
Wenn Du/wir das Docker Thema weiter verfolgen wollen helfe ich gerne.
Steve
-
Hi Steve,
ja, das Thema Docker klingt sehr interessant.
Ich fürchte, ich muss da einiges lernen, bevor es da voran geht.
Zum Thema VM habe ich keine ESXi Erfahrung, sondern nutze ganz normal die Desktopversionen, wie z.B. Fusion.
Das ist also schon einmal nicht so hilfreich
Danke für den Link. Das Tutorial habe ich gerade durch (das war schon einmal sehr hilfreich) und mich bei Docker schon einmal angemeldet.
Das Grundprinzip muss noch in meinen Kopf.
Bisher sehe ich das so:
–--------------------------
VM: Nutze ich einen Hypervisor, wie ESXi, dann habe ich für jede VM auf dem Hypervisor immer noch ein OS.
Docker: Bei Docker habe ich als Basis Linux als OS und die Apps laufen dann ohne zusätzliches OS in "Containern".
D.h.:
10 Apps gekapselt unter VM: 1x Hypervisor, 10x OS
10 Apps unter Docker: 1x OS/Linux, 10x Container
Vorteil Docker: weniger OS drumherum, um eine Anwendung laufen zu lassen?
Anwendungen können einfach über Container verteilt werden.
Änderungen innerhalb eines Containers werden erst mit "docker commit" gesichert.
Man kann also in einer Docker Installation beliebig "spielen" und erst, wenn es gut ist, speichert man die Änderungen.
Ein aktueller Status kann über den gespeicherten Container schnell wieder hergestellt werden (ähnlich wie ein Snapshot bei einer VM?).
Die Container nutzen alle das drunterliegende Linux und finden gekapselt die Umgebung des Linux vor (Dateisystem, Netzwerk, usw.), ohne dass ein Container den anderen Container sieht.
Kann man das so beschreiben?
Oder liege ich da komplett falsch?
Zu der Diskstation
–--------------------
Als ich gelesen hatte, dass das neue DSM Docker unterstützt, fand ich das total spannend.
Direkt im OS der Diskstation herumzuschrauben (über SSH), um eine Anwendung zu installieren, hat mir nie behagt.
Und über das Paketzentrum findet man nicht alles (auch in den Communitys).
Für mich hat sich immer die Frage gestellt, was ich mit den einzelnen Installationen mache.
Einen einigermassen gescheiten ESXi aufzubauen war zu kostspielig (auch, wenn mich das bisher am meisten gereizt hat).
Mehrere Raspberry Pis sind auch nicht das Gelbe vom Ei.
Und das Macbook mit Fusion immer laufen zu lassen ist auch auf Dauer keine Lösung (meine derzeitige Lösung).
Mit Docker unter VM am Macbook "spielen" (oder direkt auf der Diskstation) und dann ein Container auf die Diskstation zu übertragen, käme meinen Idealvorstellungen ziemlich nahe.
D.h., wenn ich das Prinzip verstanden habe (s.o.) ?!
Bei mir läuft ioBroker derzeit ziemlich gut unter VM auf einem aktuellen Debian.
Zwischenschritte als Snapshots gesichert.
Habe ich eine Chance diese Installation irgendwie in Richtung Docker zu portieren?
Als Diskstation kann ich später meine 1512+ verwenden. Die hat zwar auch kein Kraftwerk als CPU (Intel Atom D2700, 2,13 GHz mit 3 GB RAM), dürfte aber für ioBroker und die eine oder Anwendung ausreichen. Hier kann ich mir auch gut vorstellen eine zweite DS mit stärkerem Prozessor hinzustellen (ist eh mal aus Redundanzgründen geplant).
Kleiner Roman... Passen die Überlegungen und macht es Sinn?
Viele Fragezeichen
Viele Grüße, ein neugieriger
Michael
-
OK, habe es gefunden.
Es ist nicht im Beta-Bereich im Paket-Zentrum sonderm im DSM selber.
Da es sich bei mir um ein Produktiv-System handelt würde ich gerne auf das Release warten.
Aber was ich bis jetzt von / mit Docker gesehen habe ist ein richtiger schritt in die Zukunft….. (und mein ESXi braucht dann kein Strom mehr=
Werde auf DSM5.2 warten und dann weiter einsteigen.
@Steve: Hast du denn schon ein "kleines HowTo" zur Installation von ioBroker?
Gruß
derAuge
-
Hi Steve,
Kleiner Roman… Passen die Überlegungen und macht es Sinn?
Viele Fragezeichen
Viele Grüße, ein neugieriger
Michael `
Hi Michael,
genau das war auch meine Frage.
Ich würde aus meiner Sicht sagen: Ja es lohnt sich.
Werde auf jeden Fall da am Ball bleiben.
Gut ist ja auch, dass es hier schon 3 Personen gibt die das gleiche Ziel verfolgen
Gruß
derAuge
-
Hallo,
also erstmal "SUPER" das Ihr Euch für ioBroker und Docker interessiert!
Schnell mal eine erste, kurze Antwort (eigentlich müßte ich viel mehr auf Eure Fragen/Ideen eingehen).
@Auge:
Und kurz noch die gewünschten Information zu Docker und ioBroker Installation:
http://forum.iobroker.org/viewtopic.php?f=17&t=270
http://forum.iobroker.org/viewtopic.php?f=17&t=269
Wir könnten/sollten es in den Wiki aufnehmen!?!
Deine Aussagen sind auf den ersten Blick richtig. Ich stelle mir Docker vor wie Lego Bausteinen, einfach die gewünschten Funktionen zusammen bringen…ohne sich Gedanken zu machen wie die Lego Bausteine hergestellt wurden. Ich bin schon mit VMWare ganz zufrieden, aber der Resourcenhunger!
Bei mir läuft auch ein ESXi 5.5 Server mit 32 GB RAM und 100W Stromverbrauch und Docker auf Odroid XU3/Raspi2 mit 1-3W. Mit den 100W habe ich ein sehr schlechtes Gewissen.
Steve
-
Hi Steve,
ich hab mir die beiden Threads oben durchgelesen.
Mal sehen, ob ich es verstanden habe.
Die Container unterscheiden sich in der CPU Architektur (ARM, X86, …).
Das zugrundeliegende Linux ist egal, es muss nur ein Docker-fähiger Kernel sein. (?) D.h. Einen erstellten Container kann ich auf einem anderen Linux laufen lassen (????).
Da meine derzeitige Debian VM auf eine X86 Architektur läuft und meine spätere Zielarchitektur (die Diskstation) eine X86 CPU hat, muss ich mir eine ioBroker-Installation unter X86 aufbauen.
Meine nächsten Schritte:
-
eine zweite VM mit Debian für Docker
-
Ein ioBroker Image erstellen, welches als X86 Basis gilt (Grundinstallation)
-
meine bisherige Installation einbringen und als persönliches Image speichern
-
diese Image später in der Diskstation verwenden
Müssen alle Docker Container über Docker.com gespeichert werden?
Meine angepassten Container mit meinen persönlichen Daten liegen dann auch dort (und sind eventuell sogar frei zugänglich)?
Spannendes Thema. Ich freue mich drauf
VG
Michael
Gesendet von iPad mit Tapatalk
-
-
Moin, Moin,
@all:
-
Werde heute mal (versuchen) einen Wiki Eintrag zu machen mit den Punkten die wir bisher gefunden haben.
-
Was haltet Ihr von der Idee auf Docker.com einen "Company" Account anzulegen? Dann könnt Ihr Euere Docker Images hochladen. Haben wir schon mit Homegear
so gemacht. Wenn wir damit anfangen, müßten wir dafür sorgen das immer ein aktuelles ioBroker Image vorliegt. Vielleicht kann man dies auch automatisieren?
-
Deine Punkte stimmen so weit…und mit den persönlichen Daten müssen wir vermeiden. :-).
-
Ansonsten sehe ich das Thema Docker und IoBroker als sehr spannend an.
Muss los...bis später
Steve
-
-
Guten Morgen.
` > Und kurz noch die gewünschten Information zu Docker und ioBroker Installation:viewtopic.php?f=17&t=270
viewtopic.php?f=17&t=269
Wir könnten/sollten es in den Wiki aufnehmen!?! `
Danke für die Infos. Leider sind hier schon die ersten Einschränkungen:- Voraussetzung:
Arm Device mit Docker Kernel (Archlinux)
` > Meine nächsten Schritte:
-
eine zweite VM mit Debian für Docker
-
Ein ioBroker Image erstellen, welches als X86 Basis gilt (Grundinstallation)
-
meine bisherige Installation einbringen und als persönliches Image speichern
-
diese Image später in der Diskstation verwenden `
Genau das war auch mein Ansatz.
1.) VM mit Debian für Docker (Habe ich wie oben beschrieben erstellt - Debian 7-x64 (Docker))
2.) Ein ioBroker Image erstellen
|-> Hier kommen jedoch schon einige Fragen auf:
|–> Welches "Basis-Image" soll verwendet werden? es werden ja bereits einige Pakete (Images) angeboten.
|-----> Debian , Ubuntu , BussyBox , .......
|-----> wie kann Docker eine unterschiedliche Umgebung (x86 / x64 / ARM ) bereit stellen?
2.1.) nach dem "Grund-Image" kommt nun die Umgebung : Node.JS
|--> Installation von Node.JS aus das "Grund-Image"
|---> Nun ist eine virtuelle "Maschine" als Grund-Paket" (Basis) für ioBroker erstellt. (Wie immer man es auch richtig bezeichnen soll)
3.) Installation von ioBroker
Kann hier ein "Paket" erstellt werden welches auf allen Hostsysteme läuft da die Voraussetzung für ioBroker ja "nur" Node.JS ist.
Ab hier kommen ja (zur Zeit) die meisten Änderungen / Updates. Daher müsste / sollte ich hier in der Lage sein ein "ioBroker-System" zu löschen und neu zu ziehen / installieren. (Aktuell habe ich mir hier auf meinen Test-System ein Script gebaut welches mir ioBroker löscht und neu installiert)
:roll: Zukunft ?
4.) Rückspielen von "persönlichen" Adaptern / Einstellungen / Daten
Hier kommt nun eine weitere Herausforderung. Aktuell habe ich es (auch ohne Docker) noch nicht hin bekommen, eine Sicherung durchzuführen, die ich anschließend auf ein neu installiertes "ioBroker-System" zurück speiele.
Stichwort Backup. http://forum.iobroker.org/viewtopic.php?f=23&t=445
Nun hat Steve bereits geantwortet (er schreibt wohl schneller)
Ich sehe nur den Punkt 3 als "aktuelles ioBroker Image"
der Punkt 2 kann / sollte unabhängig davon sein. (Kann aber auch angeboten werden)
Wie seht ihr diese Themen?
Gruß
derAuge
-
Da meine derzeitige Debian VM auf eine X86 Architektur läuft und meine spätere Zielarchitektur (die Diskstation) eine X86 CPU hat, muss ich mir eine ioBroker-Installation unter X86 aufbauen. `
Ich lese immer, das es eine "x64" Umbegung sein muss. https://docs.docker.com/installation/de … -7x-64-bit
-
Oh… Danke für die Info!
Gesendet von iPad mit Tapatalk