Ubuntu: Docker und Docker-Compose installieren (Script)


Docker Installation über Bash Script für Ubuntu / Debian Linux:


wget https://raw.githubusercontent.com/ManuelReschke/linux-helper/master/ubuntu/docker/install-update.sh; chmod +x install-update.sh; sudo ./install-update.sh

Danach könnt ihr direkt überprüfen ob alles geklappt hat:
docker -v

// Ausgabe könnte so aussehen
Docker version 18.09.3, build 774a1f4

Ausführen und Fertig!
So schnell kann man Docker und Docker Compose installieren.

Wer noch ein wenig mehr über das Thema erfahren möchte kann jetzt einfach weiterlesen. Allen anderen wünsche ich viel Erfolg bei Ihren Projekten.

Warum eigentlich Docker?

Bei der Softwareentwicklung heutzutage möchte man schnelle, wiederverwendbare und funktionale Lösungen für fast alle Bereiche. Die meisten Entwickler kennen vermutlich noch das mühselige installieren und einrichten der passenden Entwicklungsumgebung. Diesen Zeitaufwendigen und nervtötenden Schritt kann man mit Docker lösen. Docker dient zur Containervirtualisierung, dass bedeutet ungefähr soviel das man einzelnen Programme oder Anwendungen in einen separaten isolierten Container auf dem jeweiligen Betriebssystem ausführen kann. z.B. installieren wir PHP in einem Docker Container und starten diesen dann um mit PHP zum Beispiel zu entwickeln. Die Möglichkeiten sind Vielfältig. Wer mehr darüber erfahren möchte kann gern den Wikipedia Artikel dazu durchlesen.

Installations Script im Detail

Den Quellcode dafür findet ihr im Github unter folgendem Link: Github Link
Aber ich werde Ihn auch noch einmal hier posten.

#!/usr/bin/env bash

#################
##### Config ####
#################

# possible stable, test, and nightly
DOCKER_CHANNEL="stable"

# latest 1.22.0 -> https://docs.docker.com/release-notes/docker-compose/
DOCKER_COMPOSE_VERSION="1.23.2"

#########################
## Remove old Versions ##
#########################

sudo apt-get purge -y docker-ce
sudo rm -rf /var/lib/docker
sudo rm /usr/local/bin/docker-compose

#########################
# Install/Update Docker #
#########################

sudo apt-get update

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo apt-key fingerprint 0EBFCD88

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) $DOCKER_CHANNEL"

sudo apt-get update

sudo apt-get install docker-ce

#################################
# Install/Update Docker Compose #
#################################

sudo curl -L "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

# show versions
sudo docker --version
sudo docker-compose --version

###############################
# create and add docker group #
###############################

sudo groupadd docker
sudo usermod -aG docker $USER


Ich glaube die Befehle an sich erklären sich von selbst. Auf jedenfall könnt Ihr so eure Docker und Docker-Compose Version aktualisieren oder frisch installieren.

In diesem Sinne viel Spaß damit.

PHP 7.2 - Mcrypt durch OpenSSL ersetzen

Thema: Replace mcrypt_encrypt mit openssl_encrypt in PHP

Hallo liebe Leser,
die Zeit schreitet voran und mittlerweile gibt es seit Ende 2018 auch PHP 7.3. Was viele Leute aber bis heute nicht getan haben ist die Migration Ihres alten Verschlüsselungscodes basierend auf der mcrypt Library zu etwas modernerem wie OpenSSL, welches seit PHP 7.2 als Standard implementiert wurde und mcrypt abgelöst hat. In PHP7.2 wurde außerdem die Krypto-Library LibSodium integriert welche moderne und starke Verschlüsselungsmethoden zur Verfügung stellt.

Mcrypt Beispiel ersetzen mit OpenSSL

Vor uns liegt nun ein typisches MCrypt Beispiel Konstrukt welches wir zu OpenSSL Abwärtskompatibel portieren möchten.

Mcrypt Code:


Der equivalente OpenSSL PHP Code dazu würde wie folgt aussehen:

OpenSSL Code:


Wie Ihr sehen könnt, hat sich bei OpenSSL die Methode geändert, in diesem Fall entspricht 'aes-128-cbc' der Mcrypt Methode 'cbc'. Wenn diese Option 'OPENSSL_RAW_DATA' gesetzt ist gibt openssl_encrypt lediglich die Rohdaten zurück. Denn standardmäßig macht openssl_encrypt schon ein base64_encode auf das Ergebnis, wird die Option gesetzt geschieht dies nicht automatisch.

Das Beispiel ist relativ einfach gehalten um die grundlegende Mechanik und den Unterschied deutlich sichtbar zu machen. Außerdem wird empfohlen einen zufälligen IV zu generieren und einen Schlüssel mit entsprechender länge.

Für tiefgründigeres Wissen über OpenSSL in PHP empfehle ich die Dokumentation auf PHP.net, dort erfahrt Ihr ausführlich erklärt alle Einzelheiten über die verfügbaren OpenSSL Funktionen in PHP.

Falls Ihr gute oder schlechte Erfahrungen mit OpenSSL oder Mcrypt in PHP gemacht habt dann hinterlasst doch ein Kommentar. Ansonsten hoffe ich das euch dieser Artikel ein Schritt in die richtige Richtung weisen konnte.