Installer Docker sur Ubuntu 14.04
Vous utilisez un système différent? Docker est une application qui permet de déployer des programmes exécutés en tant que conteneurs. Il a été écrit dans le populaire programme Go
Les conteneurs LXC (conteneurs Linux) sont une fonctionnalité du système d'exploitation sous Linux qui peut être utilisée pour exécuter plusieurs systèmes Linux isolés sur un seul hôte.
Ces instructions vous guideront à travers les étapes de base de la configuration du serveur pour l'hébergement de conteneurs Linux isolés. Nous configurerons les fonctionnalités suivantes:
ssh [email protected]
etssh [email protected]
Ce guide suppose que:
À la fin du tutoriel, nous aurons deux conteneurs virtuels qui auront accès à Internet, mais ne pourront pas se cingler. Nous configurerons également la redirection de port de example.com
vers les conteneurs. Nous déploierons un panneau de configuration et de gestion sécurisé à l'aide d'outils du paquet Proxmox.
Nous n'utiliserons Proxmox que pour la gestion des conteneurs LXC. Généralement, il prend également en charge KVM, mais la virtualisation imbriquée est interdite sur Vultr. Avant de commencer, un ISO Proxmox doit être téléchargé sur le site officiel. Nous utiliserons le Proxmox VE 5.0 ISO Installer
. Installez le système d'exploitation à partir de l'image avec les paramètres par défaut et redémarrez la machine virtuelle. En outre, vous pouvez installer manuellement proxmox à partir de sources, mais cela n'est pas nécessaire dans la plupart des cas (suivez les instructions ici ).
Connectez-vous à votre hôte par SSH, mettez à jour la liste des modèles proxmox et téléchargez un modèle approprié pour les conteneurs.
apt-get update
pveam update
pveam available
pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz
Maintenant, nous devons créer un conteneur Linux avec une interface réseau connectée à un pont Linux. Ouvrez /etc/network/interfaces
et ajoutez les lignes suivantes:
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
Après le redémarrage du système, vous pouvez créer un nouveau conteneur à partir du Ubuntu 14.04
modèle.
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
Vous pouvez vérifier votre conteneur à l'aide de pct list
, démarrer le conteneur # 200 avec pct start 200
et saisir son shell avec pct enter 200
. Vous pouvez également vérifier les paramètres réseau et les adresses avec ip addr
.
Pour fournir une connexion Internet à l'intérieur de votre conteneur, nous devons l'activer NAT
. Les éléments suivants permettront de transférer le trafic du conteneur vers Internet à l'aide de la technologie NAT. Le vmbr0
pont est connecté à l'interface externe et le vmbr1
pont est connecté aux conteneurs.
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
Entrez dans le conteneur avec pct enter 200
et configurez le serveur Web à l'intérieur.
apt-get update
apt-get install nginx
service nginx start
exit
Maintenant, nous devons configurer Nginx sur votre serveur pour proxy des sites Web dans des conteneurs.
apt-get update
apt-get install nginx
Créez un nouveau fichier de configuration /etc/nginx/sites-available/box200
avec le contenu suivant:
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 va maintenant proxy chaque demande HTTP server200.example.com
depuis votre serveur vers le conteneur avec IP 10.100.0.200. Activez cette configuration.
ln -s /etc/nginx/sites-available/box200 /etc/nginx/sites-enabled/
service nginx restart
Si vous souhaitez fournir un accès facile aux sandbox, vous devez transférer les sessions SSH dans les conteneurs. Pour ce faire, créez un nouvel utilisateur sur votre serveur racine. N'oubliez pas de saisir un mot de passe, d'autres paramètres ne sont pas nécessaires.
adduser box200
su - box200
ssh-keygen
cat .ssh/id_rsa.pub
exit
Copiez cette clé SSH et entrez dans le conteneur pour ajouter la clé.
pct enter 200
mkdir .ssh
nano .ssh/authorized_keys
exit
Sur votre serveur, ajoutez la ligne suivante au .ssh/authorized_keys
fichier.
command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>
N'oubliez pas de changer <YOUR SSH KEY>
la clé publique de votre domicile. Vous pouvez également exécuter ce qui suit à partir de la ligne de commande.
echo 'command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>' >> .ssh/authorized_keys
Ensuite, vous pouvez vous connecter à votre bac à sable avec ssh.
`ssh box200@<your_server_IP>`
Il est temps de mettre en œuvre plusieurs améliorations de sécurité. Tout d'abord, nous voulons changer le port SSH par défaut. Ensuite, nous voulons protéger notre page de gestion Proxmox avec une authentification HTTP de base.
nano /etc/ssh/sshd_config
Décommenter et changer de ligne
#Port 22
à
Port 24000
Redémarrez ssh.
service ssh restart
Reconnectez-vous à ssh avec le nouveau port.
ssh root@<your_IP> -p 24000
Créez un fichier /etc/default/pveproxy
.
ALLOW_FROM="127.0.0.1"
DENY_FROM="all"
POLICY="allow"
Redémarrez pveproxy
pour que les modifications prennent effet.
/etc/init.d/pveproxy restart
Configurez nginx (si vous ne l'avez pas encore fait).
apt-get install nginx
service nginx restart
Créez une configuration par défaut dans /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; }
}
Obtenez un certificat SSL valide et mettez à jour votre configuration nginx. Par exemple, cela peut être fait à l'aide de certbox et letsencrypt. Pour plus d'informations, cliquez ici .
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
./certbot-auto --nginx
Maintenant, votre configuration nginx devrait ressembler à ceci (ou vous pouvez la modifier manuellement après). N'oubliez pas de décommenter les lignes ssl, auth et location.
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
}
Créez un /etc/htpasswd
fichier à l'aide du générateur Htpasswd .
nano /etc/nginx/htpasswd
Redémarrez Nginx
service nginx restart
Vous pouvez maintenant afficher la console de gestion sur https://example.com
après l'authentification de base.
Les conteneurs sont désormais disponibles par requêtes HTTP et SSH. Maintenant, nous pouvons configurer la redirection de port du serveur externe vers les conteneurs. Par exemple, pour mapper example.com:8080
pour 10.100.0.200:3000
saisir les éléments suivants.
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to 10.100.0.200:3000
Vous pouvez afficher les règles actuelles.
`iptables -t nat -v -L PREROUTING -n --line-number`
Vous pouvez également supprimer une règle par numéro avec les éléments suivants.
`iptables -t nat -D PREROUTING <#>`.
Nous pouvons désormais accéder à un conteneur depuis un autre.
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
Si vous souhaitez restreindre l'accès du conteneur 250 à 200, vous devez connecter chaque conteneur à un pont personnel et désactiver le transfert entre les ponts.
Supprimez les conteneurs existants.
pct stop 200
pct stop 250
pct destroy 200
pct destroy 250
Modifiez le contenu de /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
le système
Activer le transfert
`sysctl -w net.ipv4.ip_forward=1`
Pour rendre ces modifications permanentes, vous pouvez modifier le /etc/sysctl.conf
fichier et trouver le texte suivant.
#net.ipv4.ip_forward=1
Décommentez-le.
net.ipv4.ip_forward=1
Vous pouvez également exécuter sysctl -p
pour que les modifications prennent effet immédiatement.
Créez des conteneurs.
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
Démarrez les conteneurs avec pct start 200
et pct start 250
.
Rincez les iptables
règles.
iptables -F
Activez NAT.
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
vmbr0
est le pont qui comprend une interface externe.
Autorisez le transfert depuis l'interface externe.
iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
Autorisez le transfert des conteneurs vers Internet.
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
Supprimez l'autre transfert.
iptables -A FORWARD -i vmbr1 -j DROP
iptables -A FORWARD -i vmbr2 -j DROP
Maintenant, vérifiez qui 10.100.1.200
peut cingler 8.8.8.8
mais ne peut pas cingler 10.100.2.250
et qui 10.100.2.250
peut cingler 8.8.8.8
mais ne peut pas cingler 10.100.1.200
.
L'ordre des commandes liées à iptables est important. La meilleure façon de faire fonctionner vos règles est d'utiliser iptables-persistent
. Ce forfait vous permet d'enregistrer des règles iptables aux fichiers /etc/iptables/rules.v4
et /etc/iptables/rules.v6
il peut les charger automatiquement après le redémarrage du système. Installez-le simplement avec ce qui suit.
apt-get install iptables-persistent
Sélectionnez YES
lorsque vous y êtes invité.
Vous utilisez un système différent? Docker est une application qui permet de déployer des programmes exécutés en tant que conteneurs. Il a été écrit dans le populaire programme Go
Vous utilisez un système différent? Introduction Sentry est une solution open source pour le suivi des erreurs. Sentry suit les exceptions et autres messages utiles
Les applications PHP sont généralement composées dun serveur Web, dun système de base de données relationnelle et de linterpréteur de langage lui-même. Dans ce tutoriel, nous serons leveragin
Présentation RancherOS est un système dexploitation incroyablement léger (seulement environ 60 Mo) qui exécute un démon Docker système en tant que PID 0 pour exécuter les services système
Vous utilisez un système différent? Introduction Docker Swarm transforme vos serveurs individuels en un cluster dordinateurs; faciliter la mise à léchelle, la haute disponibilité et
Ce didacticiel explique les bases de la prise en main de Docker. Je suppose que Docker est déjà installé. Les étapes de ce didacticiel fonctionnent sur un
Lorsque vous exécutez une application Web, vous souhaitez normalement tirer le meilleur parti de vos ressources sans avoir à convertir votre logiciel pour utiliser le multithreading o
Nous connaissons et aimons tous Docker, une plateforme pour créer, gérer et distribuer des conteneurs dapplications sur plusieurs machines. Docker Inc. fournit un service t
Cet article vous montrera comment déployer votre application Node dans un conteneur Docker. Remarque: ce didacticiel suppose que Docker est installé et lu
Rancher OS est une distribution Linux très légère construite autour de Docker. LOS lui-même pèse environ 20 Mo. Ce tutoriel vous permettra de devenir opérationnel avec
Présentation Cet article est destiné à vous aider à obtenir un cluster Kubernetes opérationnel avec kubeadm en un rien de temps. Ce guide déploiera deux serveurs, sur
Cet article explique comment installer docker-compose sur CoreOS. Dans CoreOS, le dossier / usr / est immuable, donc le chemin standard / usr / local / bin nest pas disponible pour
Harbor est un serveur de registre de classe entreprise open source qui stocke et distribue des images Docker. Harbor étend la distribution open source Docker b
Introduction Docker est une application qui nous permet de déployer des programmes exécutés en tant que conteneurs. Il a été écrit dans le langage de programmation Go populaire
Introduction Ce guide vous montrera comment créer et configurer un essaim Docker à laide de plusieurs serveurs Alpine Linux 3.9.0 et Portainer. Veuillez noter que
Prérequis Docker engine 1.8+. Minimum de 4 Go despace disque. Minimum de 4 Go de RAM. Étape 1. Installer Docker Pour installer SQL-Server, Docker mus
Kubernetes est une plate-forme open source développée par Google pour gérer les applications conteneurisées sur un cluster de serveurs. Il s’appuie sur une décennie et
Vous utilisez un système différent? Introduction Rancher est une plate-forme open source pour exécuter des conteneurs et créer un service de conteneurs privé. Léleveur est la base
La technologie de conteneur Docker vous permet dexécuter des applications dans un environnement spécifique et isolé. Docker Community Edition (CE) est le nouveau nom du fre
Vous utilisez un système différent? Introduction Docker est une application qui permet le déploiement de logiciels dans des conteneurs virtuels. Il a été écrit dans le G
Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau
ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.
Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+
Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.
Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus
13 outils commerciaux d'extraction de données de Big Data
Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true
Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.
Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1
L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.