Docker ist aktuell die führende Virtualisierung für Micro-Services.
. Einfach das Paket installieren und dann testen:
docker run hello-world
Die Maschine wird gelöscht und angelegt mit:
$ docker-machine rm default $ docker-machine create --driver virtualbox default
Hinweis: "default" ist der Standardname der Docker-Maschine.
docker-machine env
docker-machine ssh default
ifconfig eth0 192.168.3.1 netmask 255.255.0.0 broadcast 192.168.255.255 up
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>${project.artifactId}</imageName>
<dockerHost>https://192.168.99.101:2376</dockerHost>
<dockerCertPath>${env.USER_HOME}\.docker\machine\machines\default</dockerCertPath>
<baseImage>java:8-jdk</baseImage>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<exposes>
<expose>80</expose>
</exposes>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
| Key | Value | Bedeutung |
|---|---|---|
| bip | 192.168.1.5/24 | Netzwerk range |
| fixed-cidr | 192.168.1.20 | IP-Adresse der eigenen Maschine |
curl https://get.docker.com | bash
mkdir /etc/systemd/system/docker.service.d/ nano /etc/systemd/system/docker.service.d/docker.conf
Der Inhalt kann etwa wie folgt aussehen:
[Service] ExecStart= ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock
Der Daemon dockerd hat viele Parameter (Docker Daemon Parameters
), unter anderem das Port-Binding mit -H. Neben dem Parameter -H fd:// (UNIX Pipe) kann man -H tcp://0.0.0.0:2375 hinzufügen (ohne SSH) oder tcp://0.0.0.0:2376 (mit SSH). Dann sind folgende Befehle auszuführen:
systemctl daemon-reload systemctl restart docker.service
Mit
systemctl stop docker.service systemctl start docker.service
kann der Service gestoppt und gestartet werden.
In docker.service können zusätzliche DNS-Server angegeben werden:
ExecStart=/usr/bin/dockerd --dns 192.168.1.1 [...]
set DOCKER_HOST=tcp://192.168.1.99:2375
Damit kann man ganz normal das docker command (docker ps etc. Docker Toolbox
) nutzen.
docker exec -it <container-name> bash
Hinweis: Manche Container nutzen "sh" statt "bash".
docker volume create --name <name>
erzeugt werden. Dieser werden dann verbunden mit
docker run [...] -v <volume>:/<container-path> docker run [...] -v /<host-path>:/<container-path>
Die Installation braucht eine Volume:
docker volume create portainer-data docker run --name portainer --restart always -p 9000:9000 -v portainer-data:/data portainer/portainer
Hinweis: Das Passwort wird beim ersten Start eingerichtet.
Von da ab kann man die meisten Operationen über Portainer ausführen.