Installieren von Docker unter Ubuntu 14.04
Verwenden Sie ein anderes System? Docker ist eine Anwendung, mit der Programme bereitgestellt werden können, die als Container ausgeführt werden. Es wurde im beliebten Go-Programm geschrieben
LXC-Container (Linux-Container) sind eine Betriebssystemfunktion unter Linux, mit der mehrere isolierte Linux-Systeme auf einem einzigen Host ausgeführt werden können.
Diese Anweisungen führen Sie durch die grundlegenden Schritte der Serverkonfiguration für das Hosting isolierter Linux-Container. Wir werden die folgenden Funktionen konfigurieren:
ssh [email protected]
undssh [email protected]
In diesem Handbuch wird davon ausgegangen, dass:
Am Ende des Tutorials erhalten wir zwei virtuelle Container, die Zugriff auf das Internet haben, sich aber nicht gegenseitig anpingen können. Wir werden auch die Portweiterleitung von example.com
zu Containern konfigurieren . Wir werden das sichere Konfigurations- und Verwaltungsfenster mithilfe von Tools aus dem Proxmox-Paket bereitstellen.
Wir werden Proxmox nur für die Verwaltung von LXC-Containern verwenden. Im Allgemeinen wird auch KVM unterstützt, aber verschachtelte Virtualisierung ist in Vultr verboten. Vor dem Start sollte eine Proxmox ISO von der offiziellen Website heruntergeladen werden. Wir werden die verwenden Proxmox VE 5.0 ISO Installer
. Installieren Sie das Betriebssystem vom Image mit den Standardeinstellungen und starten Sie die virtuelle Maschine neu. Sie können proxmox auch manuell aus Quellen installieren, dies ist jedoch in den meisten Fällen nicht erforderlich (befolgen Sie die Anweisungen hier ).
Stellen Sie über SSH eine Verbindung zu Ihrem Host her, aktualisieren Sie die Liste der Proxmox-Vorlagen und laden Sie eine geeignete Vorlage für Container herunter.
apt-get update
pveam update
pveam available
pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz
Jetzt müssen wir einen Linux-Container mit einer Netzwerkschnittstelle erstellen, die mit einer Linux-Bridge verbunden ist. Öffnen Sie /etc/network/interfaces
die folgenden Zeilen und hängen Sie sie an:
auto vmbr1
iface vmbr1 inet static
address 10.100.0.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
Nach dem Neustart des Systems können Sie aus der Ubuntu 14.04
Vorlage einen neuen Container erstellen .
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.200/24,gw=10.100.0.1
Sie können Ihren Container mit überprüfen pct list
, Container # 200 mit starten pct start 200
und seine Shell mit eingeben pct enter 200
. Sie können auch Netzwerkeinstellungen und Adressen mit überprüfen ip addr
.
Um eine Internetverbindung in Ihrem Container bereitzustellen, müssen wir diese aktivieren NAT
. Im Folgenden kann der Datenverkehr mithilfe der NAT-Technologie vom Container ins Internet weitergeleitet werden. Die vmbr0
Brücke ist mit der externen Schnittstelle verbunden und die vmbr1
Brücke ist mit den Containern verbunden.
sysctl -w net.ipv4.ip_forward=1
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
iptables --append FORWARD --in-interface vmbr1 -j ACCEPT
Geben Sie den Container mit ein pct enter 200
und konfigurieren Sie den darin enthaltenen Webserver.
apt-get update
apt-get install nginx
service nginx start
exit
Jetzt müssen wir Nginx auf Ihrem Server so konfigurieren, dass Websites in Container übertragen werden.
apt-get update
apt-get install nginx
Erstellen Sie eine neue Konfigurationsdatei /etc/nginx/sites-available/box200
mit folgendem Inhalt:
server {
listen 80;
server_name server200.example.com;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
proxy_pass http://10.100.0.200/;
}
}
Nginx überträgt nun jede HTTP-Anforderung server200.example.com
von Ihrem Server an den Container mit der IP 10.100.0.200. Aktivieren Sie diese Konfiguration.
ln -s /etc/nginx/sites-available/box200 /etc/nginx/sites-enabled/
service nginx restart
Wenn Sie einen einfachen Zugriff auf Sandboxen ermöglichen möchten, müssen Sie SSH-Sitzungen in die Container weiterleiten. Erstellen Sie dazu einen neuen Benutzer auf Ihrem Root-Server. Vergessen Sie nicht, ein Passwort einzugeben, andere Parameter sind nicht erforderlich.
adduser box200
su - box200
ssh-keygen
cat .ssh/id_rsa.pub
exit
Kopieren Sie diesen SSH-Schlüssel und geben Sie den Container ein, um den Schlüssel anzuhängen.
pct enter 200
mkdir .ssh
nano .ssh/authorized_keys
exit
Fügen Sie auf Ihrem Server der .ssh/authorized_keys
Datei die folgende Zeile hinzu .
command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>
Vergessen Sie nicht, <YOUR SSH KEY>
zu Ihrem öffentlichen Hauptschlüssel zu wechseln . Alternativ können Sie Folgendes über die Befehlszeile ausführen.
echo 'command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>' >> .ssh/authorized_keys
Anschließend können Sie mit ssh eine Verbindung zu Ihrer Sandbox herstellen.
`ssh box200@<your_server_IP>`
Es ist Zeit, mehrere Sicherheitsverbesserungen zu implementieren. Zunächst möchten wir den Standard-SSH-Port ändern. Dann möchten wir unsere Proxmox-Verwaltungsseite mit einer grundlegenden HTTP-Authentifizierung schützen.
nano /etc/ssh/sshd_config
Kommentar entfernen und Zeile ändern
#Port 22
zu
Port 24000
Starten Sie ssh neu.
service ssh restart
Stellen Sie mit dem neuen Port erneut eine Verbindung zu ssh her.
ssh root@<your_IP> -p 24000
Datei erstellen /etc/default/pveproxy
.
ALLOW_FROM="127.0.0.1"
DENY_FROM="all"
POLICY="allow"
Starten Sie neu, pveproxy
damit die Änderungen wirksam werden.
/etc/init.d/pveproxy restart
Konfigurieren Sie nginx (falls Sie dies noch nicht getan haben).
apt-get install nginx
service nginx restart
Erstellen Sie eine Standardkonfiguration in /etc/nginx/site-available/default
.
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
#auth_basic "Restricted";
#auth_basic_user_file htpasswd;
#location / { proxy_pass https://127.0.0.1:8006; }
}
Besorgen Sie sich ein gültiges SSL-Zertifikat und aktualisieren Sie Ihre Nginx-Konfiguration. Dies kann beispielsweise mit Hilfe von certbox und letsencrypt erfolgen. Weitere Informationen finden Sie hier .
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
./certbot-auto --nginx
Jetzt sollte Ihre Nginx-Konfiguration so aussehen (oder Sie können sie später manuell ändern). Vergessen Sie nicht, die Zeilen ssl, auth und location zu kommentieren.
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
ssl on;
auth_basic "Restricted";
auth_basic_user_file htpasswd;
location / { proxy_pass https://127.0.0.1:8006; }
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
}
Erstellen Sie eine /etc/htpasswd
Datei mit dem Htpasswd-Generator .
nano /etc/nginx/htpasswd
Starten Sie Nginx neu
service nginx restart
Sie können die Verwaltungskonsole jetzt https://example.com
nach der Standardauthentifizierung aktivieren.
Die Container sind jetzt über HTTP-Anforderungen und SSH verfügbar. Jetzt können wir die Portweiterleitung vom externen Server zu den Containern konfigurieren. Zum Beispiel für die Zuordnung example.com:8080
zur 10.100.0.200:3000
Eingabe der folgenden.
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to 10.100.0.200:3000
Sie können die aktuellen Regeln anzeigen.
`iptables -t nat -v -L PREROUTING -n --line-number`
Sie können eine Regel auch nach Nummer wie folgt löschen.
`iptables -t nat -D PREROUTING <#>`.
Wir können jetzt von einem anderen auf einen Container zugreifen.
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.250/24,gw=10.100.0.1
pct start 250
pct enter 250
ping 10.100.0.200
Wenn Sie den Zugriff von Container 250 auf 200 beschränken möchten, müssen Sie jeden Container mit einer persönlichen Bridge verbinden und die Weiterleitung zwischen Bridges deaktivieren.
Löschen Sie vorhandene Container.
pct stop 200
pct stop 250
pct destroy 200
pct destroy 250
Ändern Sie den Inhalt von /etc/network/interfaces
.
auto vmbr1
iface vmbr1 inet static
address 10.100.1.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
auto vmbr2
iface vmbr2 inet static
address 10.100.2.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
reboot
das System
Weiterleitung aktivieren
`sysctl -w net.ipv4.ip_forward=1`
Um diese Änderungen dauerhaft zu machen, können Sie die /etc/sysctl.conf
Datei bearbeiten und den folgenden Text suchen.
#net.ipv4.ip_forward=1
Kommentieren Sie es aus.
net.ipv4.ip_forward=1
Sie können auch ausführen sysctl -p
, damit die Änderungen sofort wirksam werden.
Erstellen Sie Container.
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.1.200/24,gw=10.100.1.1
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr2,ip=10.100.2.250/24,gw=10.100.2.1
Starten Sie die Container mit pct start 200
und pct start 250
.
Spüle die iptables
Regeln.
iptables -F
Aktivieren Sie NAT.
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
vmbr0
ist die Brücke, die eine externe Schnittstelle enthält.
Weiterleitung von der externen Schnittstelle zulassen.
iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
Weiterleitung von den Containern ins Internet zulassen.
iptables -A FORWARD -i vmbr1 -o vmbr0 -s 10.100.1.0/24 -j ACCEPT
iptables -A FORWARD -i vmbr2 -o vmbr0 -s 10.100.2.0/24 -j ACCEPT
Löschen Sie die andere Weiterleitung.
iptables -A FORWARD -i vmbr1 -j DROP
iptables -A FORWARD -i vmbr2 -j DROP
Überprüfen Sie nun, ob 10.100.1.200
Ping, 8.8.8.8
aber nicht Ping 10.100.2.250
und 10.100.2.250
Ping, 8.8.8.8
aber nicht Ping möglich ist 10.100.1.200
.
Die Reihenfolge der Befehle in Bezug auf iptables ist wichtig. Der beste Weg, um Ihre Regeln zu bedienen, ist die Verwendung iptables-persistent
. Dieses Paket hilft Ihnen beim Speichern von iptables-Regeln in den Dateien /etc/iptables/rules.v4
und /etc/iptables/rules.v6
kann diese nach dem Neustart des Systems automatisch laden. Installieren Sie es einfach mit den folgenden.
apt-get install iptables-persistent
Wählen Sie diese Option aus, YES
wenn Sie dazu aufgefordert werden.
Verwenden Sie ein anderes System? Docker ist eine Anwendung, mit der Programme bereitgestellt werden können, die als Container ausgeführt werden. Es wurde im beliebten Go-Programm geschrieben
PHP-Anwendungen bestehen normalerweise aus einem Webserver, einem relationalen Datenbanksystem und dem Sprachinterpreter selbst. In diesem Tutorial werden wir Hebel einsetzen
Übersicht RancherOS ist ein unglaublich leichtes Betriebssystem (nur ca. 60 MB), auf dem ein System-Docker-Daemon als PID 0 zum Ausführen von Systemdiensten ausgeführt wird
Verwenden Sie ein anderes System? Einführung Docker Swarm verwandelt Ihre einzelnen Server in einen Computercluster. Erleichterung der Skalierung, Hochverfügbarkeit an
In diesem Tutorial werden die Grundlagen für den Einstieg in Docker erläutert. Ich gehe davon aus, dass Sie Docker bereits installiert haben. Die Schritte in diesem Tutorial funktionieren an einem
Wenn Sie eine Webanwendung ausführen, möchten Sie normalerweise Ihre Ressourcen optimal nutzen, ohne Ihre Software für die Verwendung von Multithreading konvertieren zu müssen
Wir alle kennen und lieben Docker, eine Plattform zum Erstellen, Verwalten und Verteilen von Anwendungscontainern auf mehreren Computern. Docker Inc. bietet einen Service t
Dieser Artikel zeigt Ihnen, wie Sie Ihre Knotenanwendung in einem Docker-Container bereitstellen. Hinweis: In diesem Lernprogramm wird davon ausgegangen, dass Docker installiert und gelesen ist
Verwenden Sie ein anderes System? Docker ist eine Anwendung, die die Bereitstellung von Software in virtuellen Containern ermöglicht. Es wurde im Go-Programm geschrieben
Rancher OS ist eine sehr leichte Linux-Distribution, die auf Docker basiert. Das Betriebssystem selbst wiegt etwa 20 MB. Mit diesem Tutorial können Sie loslegen
Verwenden Sie ein anderes System? Einführung Sentry ist eine Open Source-Lösung für die Fehlerverfolgung. Sentry verfolgt Ausnahmen und andere nützliche Nachrichten
Übersicht Dieser Artikel soll Ihnen helfen, einen Kubernetes-Cluster in kürzester Zeit mit kubeadm zum Laufen zu bringen. In diesem Handbuch werden zwei Server bereitgestellt
Dieser Artikel erklärt, wie Docker-Compose unter CoreOS installiert wird. In CoreOS ist der Ordner / usr / unveränderlich, sodass der Standardpfad / usr / local / bin für nicht verfügbar ist
Harbor ist ein Open-Source-Registrierungsserver der Enterprise-Klasse, auf dem Docker-Images gespeichert und verteilt werden. Harbour erweitert die Open Source Docker Distribution b
Einführung Docker ist eine Anwendung, mit der wir Programme bereitstellen können, die als Container ausgeführt werden. Es wurde in der beliebten Programmiersprache Go geschrieben
Kubernetes ist eine Open-Source-Plattform, die von Google für die Verwaltung von Containeranwendungen auf einem Servercluster entwickelt wurde. Es baut auf einem Jahrzehnt auf und
Voraussetzungen Docker Engine 1.8+. Mindestens 4 GB Speicherplatz. Mindestens 4 GB RAM. Schritt 1. Docker installieren Um SQL-Server zu installieren, muss Docker mus
Verwenden Sie ein anderes System? Einführung Rancher ist eine Open Source-Plattform zum Ausführen von Containern und zum Erstellen eines privaten Containerservices. Rancher ist Basis
Einführung In diesem Handbuch erfahren Sie, wie Sie einen Docker-Schwarm mit mehreren Alpine Linux 3.9.0-Servern und Portainer erstellen und konfigurieren. Bitte beachten Sie, dass
Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist
ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.
Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+
Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.
Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren
13 Tools zur kommerziellen Datenextraktion von Big Data
Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true
Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.
Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1
KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.