Soutenir Vision du Web dans son partage de logiciels et de ressources libres

Ce mineur crée de la monnaie numérique Monero pour soutenir Vision du web.
Merci de désactiver votre bloqueur de publicité.
Aucune publicité ne sera affichée.
Le mineur utilise les ressources de votre machine pour créer gratuitement de la monnaie numérique.
Le montant des donations pour Vision du web est de 0.054647238375807 Monero.

Ajouter Docker sur GNU Linux

De Wiki. Analyse, Communication, Développement, Hacking.
Aller à : navigation, rechercher
Naviguer sur le site : Accueil du site - Les annuaires - Les éditoriaux - Le forum - Les outils - Les projets

Sommaire

Installer Docker sur GNU/Linux

Installation officielle pour Docker

Installation officielle sous GNU/Linux : https://docs.docker.com/engine/installation/linux/

Docker sur Debian 8 Jessie

Sous Debian 8, il est possible d'installer Docker directement grâce au paquet docker.io disponible dans les dépôts Debian :
apt-get update
apt-get install docker.io
service docker start

Sinon,

Préférer l'ajout du dépôt dans le sources.list
Ajout du dépôt : echo "deb https://apt.dockerproject.org/repo debian-jessie main" > /etc/apt/sources.list.d/docker.list
Ajout de la clé : apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Mise à jour des dépôts : apt update
Installation de docker : apt install docker-engine
Démarrer Docker : systemctl start docker
Test de docker : docker run hello-world

Docker sur Debian 9 Stretch

Ajout du dépôt : echo "deb https://apt.dockerproject.org/repo debian-stretch main" > /etc/apt/sources.list.d/docker.list
Ajout de la clé : apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Si la clé n'est pas acceptée il manque peut être le paquet dirmngr.
Mise à jour des dépôts : apt update
Installation de docker : apt install docker-engine
Installer aussi : docker-compose (Obsolète avec les versions de Debian ?)
Démarrer Docker : systemctl start docker
Autre proposition d'installation fonctionnelle sur un VPS OVH avec Debian Jessie mis à jour pour Debian Stretch.
apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable"
apt-get update
apt-get install docker-ce
systemctl enable docker

Sécuriser docker
Docker déconseille de lancer les conteneurs en tant que root.
L installation crée déjà un group docker. On doit juste rattacher votre utilisateur standard au group docker.
Ensuite pensez bien que vous devez lancer vos conteneurs avec cet utilisateur
J’appelle ici mon utilisateur demo.
usermod -aG docker demo

Autre exemple : http://www.administration-systeme.com/?p=1907
Installer alors docker-compose à jour : https://www.admin-systeme.com/docker/installation-de-docker-sous-debian/

Hello Docker

Test de docker : docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete 
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
   (amd64)
3. The Docker daemon created a new container from that image which runs the
   executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
   to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/

Docker sur Ubuntu et Linux Mint

Les pré-requis

Passer en tant que root :
sudo -s
Installer le paquet Apparmor :
apt-get install apparmor
Installer le paquet linux-image-extra :
apt-get install linux-image-extra-$(uname -r)
Plus d'informations sur apparmor : https://doc.ubuntu-fr.org/apparmor

Installation

Ajout du dépôt :
Ubuntu 14.04 LTS et Linux Mint 17.3 : echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" > /etc/apt/sources.list.d/docker.list
Ubuntu 15.10 : echo "deb https://apt.dockerproject.org/repo ubuntu-wily main" > /etc/apt/sources.list.d/docker.list
Ubuntu 16.04 LTS : echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" > /etc/apt/sources.list.d/docker.list
Ajout de la clé : apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Mise à jour des dépôts : apt-get update
Instalation de Docker : apt-get install docker-engine
Démarrage de Docker : service docker start
Test de docker : docker run hello-world

Docker sur CentOS

Ajout du dépôt :
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
Mise à jour des dépôts : sudo yum update
Installation de Docker : sudo yum install docker-engine
Démarrage de Docker : sudo service docker start
Test de Docker : sudo docker run hello-world

Docker sur Fedora

Mise à jour du système avec dnf : sudo dnf update
Ajout du dépôt :
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/fedora/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
Installation de Docker : sudo dnf install docker-engine
Démarrage de Docker : sudo systemctl start docker
Test de Docker : sudo docker run hello-world

Docker sur Arch Linux et Manjaro

Installation de Docker : sudo pacman -S docker
Démarrage de Docker : sudo systemctl start docker
Tes de Docker : sudo docker run hello-world

Groupe Docker

Sous Linux, n'oubliez pas d'ajouter votre utilisateur au groupe docker : https://docs.docker.com/engine/installation/linux/ubuntulinux/#/create-a-docker-group.
Sinon, vous devrez bénéficier des privilèges root pour pouvoir lancer la commande docker
Todo.png

Créer sa propre image Docker

Les images Docker sont créées à l'aide d'un fichier de configuration nommé Dockerfile.
Renseigner les informations pour la création de l'image qui serviront à lancer les containers Docker.
La base de tout Dockerfile est l'entrée FROM qui indique l'image de base à utiliser pour servir de support.
La base de la plupart des images officielles sont des images de système d'exploitation comme par exemple Ubuntu.
Ces images ne contiennent que ce qui est nécessaire pour faire tourner le système d'exploitation.
Par exemple, lancer la commande suivante pour rentrer dans un container Ubuntu : docker run --rm -it ubuntu:16.04 /bin/bash
Essayer de faire un 'nano Bonjour'.
Essayer alors d'installer la commande nano.
Ko.png Redis-Server - Create and Share Your First Docker Image : https://deis.com/blog/2015/creating-sharing-first-docker-image/

L'image

Une image, c'est un instantané d'un système à un instant t.
C'est à partir d'une image que l'on peut lancer un container et donc un service.
DockerFile : Fichier source qui contient les instructions, éléments à installer, c'est un fichier de configuration.
Une image peu être dupliquée en alias.

Construire l'image sur l'hôte

Ok-ko.png Exemple 1.1 Source : https://blog.lmilcent.com/2016/03/25/docker-comment-ca-marche/

Récupérer une image existante dans les dépôts officiels pour Docker

Pour trouver une image LAMP, lancer une recherche dans les dépôts Docker : docker search lamp
Pour trouver une image Nginx, lancer une recherche dans les dépôts Docker : docker search Nginx
Pour trouver une image DemocracyOS, lancer une recherche dans les dépôts Docker : docker search DemocracyOS
Chercher dans le Hub : https://hub.docker.com
Survoler la liste : https://gist.github.com/carmark/89f9de6356f39149317968ccafe226a6
Choisir un DockerFile qui est régulièrement contrôlé. Ne pas prendre un dépôt sans documentation.

Installer une image Docker Debian

Télécharger l'image Docker de Debian

Utilisation de l'image de Debian GNU/Linux 9.3
Importer l'image avec la commande : docker pull debian
Aller dans le shell de Debian : docker run --tty --interactive debian
Démarrer Debian en écoute du port 80 : docker run --name Debian -p 80:80 -t -i debian /bin/bash
Cette image peut être modifiée puis sauvegardée a un état personnalisé.
Ok.png Commandes supportées et liens Dockerfile respectifs : https://store.docker.com/images/debian

Installer un serveur web dans le conteneur de l'image Docker Debian

Procédure d'installation depuis Github : https://github.com/ZerooCool/Linux-Search-Engine-Optimisation/wiki/Installer-et-utiliser-Docker

Installer une image Docker lamp

Importer une image Docker lamp

Utilisation de la distribution Ubuntu 14.04.5 LTS avec l'image Docker tutum/lamp
Importer l'image avec la commande : docker pull tutum/lamp
Démarrer LAMP : docker run -d -p 80:80 -p 3306:3306 tutum/lamp
Cette image peut être modifiée puis sauvegardée a un état personnalisé.
Voir le lien suivant pour plus d'informations : https://hub.docker.com/r/tutum/lamp/
Lancer une image Docker lamp
# Le démarrage d'un container s'effectue grâce à docker run.
# Ce container écoute sur deux ports : le 80 pour le HTTP, le 3306 pour les connexions MySQL.
# On peut alors accéder à notre serveur web lamp :
docker run -d -p 80:80 -p 3306:3306 tutum/lamp
# Dans le cas d'une image sauvegardée :
docker run -d -p 80:80 -p 3306:3306 8d876406448a
Démarrer le navigateur et aller sur localhost
Démarrer le navigateur et aller sur http://localhost
Entrer dans le shell de Docker lamp
# Ouvrir un second terminal et afficher les conteneurs démarrés ainsi que les ids de status associés.
docker ps
La console affiche le message suivant :
CONTAINER ID | IMAGE | COMMAND | ...
479cd5744ea8 | c1d0dc8367a4 | "/run.sh" | ...
# Entrer dans le bash de Nginx avec l'id de status du conteneur.
docker exec -it c1d0dc8367a4 bash
La console affiche le message suivant :
[email protected]:/#
Les fichiers du site par défaut une fois connecté à l'image Docker
/var/www/html# ls
LICENSE  README.md  index.php  logo.png  phpinfo.php
Installer curl
apt install curl (Facultatif, ou, suffisant ? Par la suite j'installe php5-curl).
apt install nano
# Tester si curl fonctionne.
# Ajouter le code php pour savoir si curl est activé ou désactivé :
# Savoir si curl est activé ou désactivé.
/var/www/html# touch curl.php
/var/www/html# nano curl.php
Affiche depuis le navigateur localhost/curl.php : Curl : Disabled
Le paquet curl ne suffit pas a installer php-curl
# Ici c'est la version php5 de curl qui va être installée
apt-get install php5-curl
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
 libapache2-mod-php5 php5-cli php5-common php5-mysql php5-readline
Suggested packages:
 php-pear
Tester la présence de curl en ligne de commande : curl http://localhost
Redémarrer apache2 pour la prise en compte de php5-curl
sudo /etc/init.d/apache2 restart
Affiche depuis le navigateur localhost/curl.php : Curl : Enable
Curl est maintenant fonctionnel sur une image Docker lamp.
On regrette que l'image de php ne soit pas php 7 mais php 5.
Tutum-lamp.png
Sauvegarde de l'image Docker LAMP modifiée
Commiter le conteneur Docker LAMP (PHP5) et cURL pour générer un état à sauvegarder.
Ouvrir à nouveau le terminal pour ne pas être dans le shell Docker de l'image.
Identifier le conteneur a commiter avec la commande : `docker ps -a`
`docker ps -a`
`CONTAINER ID | IMAGE | COMMAND ...`
`479cd5744ea8 | c1d0dc8367a4 | "/run.sh" ...`
Lancer le commit du conteneur avec la commande type : `docker commit -a "Auteur" -m "message optionnel" <ID du conteneur ou nom> <Tag à donner à l'image>`
Lancer le commit du conteneur avec la commande : `docker commit -a "kalamity" -m "sauvegarde" 479cd5744ea8 lamp`
Trouver le nom ou l'ID de l'image a sauvegarder avec la commande : `docker images -a`
`docker images -a`
`lamp | latest | 4eedb51afd9b | 3 minutes ago | 913MB` `none | none | c1d0dc8367a4 | 11 days ago | 787MB`
Sauvegarder l'image Docker LAMP et cURL
`docker save -o /home/seo/lamp-curl.tar lamp`

Installer une image Docker Nginx

Importer une image Docker Nginx

docker pull nginx
Lancer une image Docker Nginx
docker run --name docker-nginx -p 80:80 nginx
Entrer dans le shell de Docker Nginx
# Ouvrir un second terminal.
# Voir tous les conteneurs démarrés et les ids de status associés.
docker ps
# Entrer dans le bash de Nginx avec l'id de status du conteneur.
docker exec -it d98fa742e13d bash
# Installer nano pour pouvoir éditer les fichiers de configuration.
apt update
apt install nano
Accéder aux fichiers de configurations de Docker Nginx
# Le dossier principale.
cd /etc/nginx/
cd /etc/nginx/conf.d
/etc/nginx/conf.d# ls
default.conf
# Ouvrir le fichier de configuration par defaut de Docker Nginx.
nano default.conf
# Le fichier de configuration default.conf affiche entre autre l'emplacement des fichiers qui sont affichés depuis localhost.
location / {
 root   /usr/share/nginx/html;
 index  index.html index.htm;
}
Modifier la page par défaut index.html de Docker Nginx
cd /usr/share/nginx/html
nano index.html
Ajouter par exemple le code meta utf-8 pour accepter les accents lors de l'affichage du fichier index.html
<meta charset="utf-8">
Afficher le rendu de la page d'accueil index.html
Depuis le navigateur lancer localhost pour arriver sur la page d'accueil du serveur Docker Nginx.
Welcome-nginx.png 
Note
Lors de la visite de localhost, le terminal affiche la connexion locale :
172.17.0.1 - - [08/Jan/2018:01:28:48 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0" "-"
KO - Installer PHP curl sur une image Docker Nginx
Je n'arrive pas à ajouter curl avec la configuration actuelle sur le l'image Docker de Nginx.
Le fichier .php ne s'affiche pas quand il est appelé mais propose d'être enregistré.
apt update
apt install php
apt install php-curl
Sauf que les paquets sont installés pour Apache.
apt install curl
curl http://127.0.0.1/ affiche le code de la page HTML de Nginx.
curl https://www.visionduweb.eu/ affiche le code de aesecure.
curl https://www.google.fr affiche le code de la page HTML de Google.
Depuis le navigateur, la page chargée par Docker Nginx http://127.0.0.1/curl.php me propose de télécharger le fichier PHP. Le code PHP n'est pas interprété.
/etc/php/7.0# ls
apache2  cli  mods-available
/etc/php/7.0# cd mods-available/
/etc/php/7.0/mods-available# ls
calendar.ini  curl.ini	fileinfo.ini  gettext.ini  json.ini	pdo.ini   posix.ini	shmop.ini    sysvmsg.ini  sysvshm.ini
ctype.ini     exif.ini	ftp.ini       iconv.ini    opcache.ini	phar.ini  readline.ini	sockets.ini  sysvsem.ini  tokenizer.ini
/etc/php/7.0/mods-available# nano curl.ini 
/etc/php/7.0/mods-available# cd ..
/etc/php/7.0# ls
apache2  cli  mods-available
/etc/php/7.0# cd apache2/
/etc/php/7.0/apache2# ls
conf.d	php.ini
/etc/php/7.0/apache2# nano php.ini 
/etc/php/7.0/apache2# /etc/init.d/apache2 restart

Todo.png

KO - Installer PHP avec Nginx (et Docker)
Je n'arrive pas à ajouter php avec la configuration actuelle sur le l'image Docker de Nginx.
Le fichier .php ne s'affiche pas quand il est appelé mais propose d'être enregistré.
apt install php-common php-cli php-fpm
cd /etc/nginx
rm sites-enabled/default
rm: cannot remove 'sites-enabled/default': No such file or directory
/etc/php/7.0/fpm/
nano php.ini 

Ajouter :

cgi.fix_pathinfo=0 
cd /etc/nginx/
mkdir sites-available
cd sites-available/
touch default
nano default

Ajouter dans defaut :

location ~ \\.php$ {
fastcgi_split_path_info ^(.+\\.php)(/.+)$;
# NOTE: You should have \cgi.fix_pathinfo = 0;\ in php.ini
# With php5-fpm:
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
#Unremark the following for Ubuntu15
#include fastcgi.conf;
}
Todo.png

Importer une image Docker richarvey/nginx-php-fpm

Au dernier essai, l'image ne charge pas.
Soit un problème de DNS avec l'hôte, ajouter 8.8.8.8, sinon, réinstaller Docker.
Ici, j'ai encore changé les paramètres de réseau pour la machine virtuelle, puis, je suis revenu en NAT.
J'ai pu lancer une recherche d'image, puis, importer mon image.
Importer et démarrer
Avec l'image précédente, je n'arrive pas a configurer php et curl.
L'image de richarvey/nginx-php-fpm semble prendre en compte php et peut être curl mais une fois installé, ça ne semble pas fonctionner.
docker pull richarvey/nginx-php-fpm
Digest: sha256:6786b7a9b849573534ff6d83668d9df32b4d63e0e9cfdf23a4b13e2d640fe1c5
Status: Downloaded newer image for richarvey/nginx-php-fpm:latest
docker run --name Tester -p 80:80 richarvey/nginx-php-fpm

Todo.png

Docker nginx-php-fpm devrait pourtant permettre d'utiliser directement PHP7.
Retester !
Voir alors : https://hub.docker.com/r/amontaigu/nginx-php/
Voir aussi : http://geekyplatypus.com/dockerise-your-php-application-with-nginx-and-php7-fpm/
Appliquer la même configuration que précédemment
# Entrer dans le shell de Docker Nginx
# Ouvrir un second terminal.

# Voir tous les conteneurs démarrés et les ids associées.
docker ps
# Entrer dans le bash de Nginx avec l'id de status du conteneur.
docker exec -it d98fa742e13d bash

# Installer nano pour pouvoir éditer les fichiers de configuration.
apt update
apt install nano

# Accéder aux fichiers de configurations de Docker Nginx
# Le dossier principale.
cd /etc/nginx/

cd /etc/nginx/conf.d
/etc/nginx/conf.d# ls
default.conf

# Ouvrir le fichier de configuration par defaut de Docker Nginx.
nano default.conf
# Le fichier de configuration default.conf affiche entre autre l'emplacement des fichiers qui sont affichés depuis localhost.
location / {
root   /usr/share/nginx/html;
index  index.html index.php index.htm;
}

Modifier la page par défaut index.html de Docker Nginx

cd /usr/share/nginx/html
nano index.html

Ajouter par exemple le code meta utf-8 pour accepter les accents lors de l'affichage du fichier index.html
<meta charset="utf-8">

Afficher le rendu de la page d'accueil index.html

Depuis le navigateur lancer localhost pour arriver sur la page d'accueil du serveur Docker Nginx.
Le fichier .php ne s'affiche pas quand il est appelé.
/etc/init.d/apache2 restart
[....] Restarting Apache httpd web server: apache2AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
failed!
[email protected]:/usr/share/nginx/html# /etc/init.d/apache2 stop   
[ ok ] Stopping Apache httpd web server: apache2.
[email protected]:/usr/share/nginx/html# /etc/init.d/apache2 start
[....] Starting Apache httpd web server: apache2AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
Todo.png

Voir pour l'image tutm/curl

docker pull tutum/curl
Au dernier essai, l'image ne charge pas.

Installer une image Docker mysql

docker pull mysql
Séparer le Volume qui contiens des datas, de l'image.
Obtenir des backups de datas, sans faire de backup de toute l'image.
Utiliser le même volume de datas avec plusieurs images.
Mettre a jour les images sans toucher à l’intégrité des datas.
Simple, ouvert, sécurisé.
docker run --name toto-mysql -p 3306:3306 -v /var/users/toto/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -e MYSQL_USER=toto -e MYSQL_PASSWORD=password -e MYSQL_ONETIME_PASSWORD=root -d -e MYSQL_DATABASE=toto mysql:latest
Ici, on indique l'emplacement du volume.
Le dossier "/var/users/toto/mysql" doit exister.
/var/users/toto/mysql === /var/lib/mysql du container
Ensuite on peut utiliser ce conteneur (qui est en fait un volume) avec d'autres conteneurs.
En bon français :
On lance docker avec l'image de mysql.
On spécifie le port d'écoute.
On utilise un volume.
On donne l'emplacement du volume ?
On renseigne les mots de passe.
On renseigne l'utilisateur et la base de données.
On reprécise qu'on est sur la dernière image de mysql.

Installer une image Docker Mongo

# Tester l'image de MongoDB.
docker pull mongo-express
docker run --name demos1 -p 8081:8081 mongo-express
Welcome to mongo-express
------------------------
Server is open to allow connections from anyone (0.0.0.0)
basicAuth credentials are "admin:pass", it is recommended you change this in your config.js!
Mongo Express server listening at http://0.0.0.0:8081
/node_modules/mongodb/lib/server.js:265
       process.nextTick(function() { throw err; })
                                     ^
MongoError: failed to connect to server [mongo:27017] on first connect
   at Pool.<anonymous> (/node_modules/mongodb-core/lib/topologies/server.js:326:35)
   at emitOne (events.js:96:13)
   at Pool.emit (events.js:188:7)
   at Connection.<anonymous> (/node_modules/mongodb-core/lib/connection/pool.js:270:12)
   at Connection.g (events.js:292:16)
   at emitTwo (events.js:106:13)
   at Connection.emit (events.js:191:7)
   at Socket.<anonymous> (/node_modules/mongodb-core/lib/connection/connection.js:175:49)
   at Socket.g (events.js:292:16)
   at emitOne (events.js:96:13)

Installer une image Docker phpmyadmin

docker pull phpmyadmin/phpmyadmin

Installer une image Docker democracyos

# Production-ready image for running Democra...
Dans le cas du dépôt pour DemocracyOS : docker pull democracyos/democracyos
# Démarrer Democracyos
docker run --name demos -p 3000:3000 democracyos/democracyos
Le message d'erreur suivant est affiché :
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): undefined
events.js:160
     throw er; // Unhandled 'error' event
     ^
MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
   at Pool.<anonymous> (/usr/src/node_modules/mongoose/node_modules/mongodb-core/lib/topologies/server.js:328:35)
   at emitOne (events.js:96:13)
   at Pool.emit (events.js:188:7)
   at Connection.<anonymous> (/usr/src/node_modules/mongoose/node_modules/mongodb-core/lib/connection/pool.js:280:12)
   at Connection.g (events.js:292:16)
   at emitTwo (events.js:106:13)
   at Connection.emit (events.js:191:7)
   at Socket.<anonymous> (/usr/src/node_modules/mongoose/node_modules/mongodb-core/lib/connection/connection.js:177:49)
   at Socket.g (events.js:292:16)
   at emitOne (events.js:96:13)
   at Socket.emit (events.js:188:7)
   at emitErrorNT (net.js:1281:8)
   at _combinedTickCallback (internal/process/next_tick.js:80:11)
   at process._tickCallback (internal/process/next_tick.js:104:9)
Un ticket est ouvert : https://github.com/DemocracyOS/democracyos/issues/1478

Installer une image Docker Apache PHP7

Installer une image Docker Apache PHP7.
https://hub.docker.com/r/nimmis/apache-php7/

Installer une image Joomla

Installer une image Joomla.
Source : https://hub.docker.com/r/bitnami/joomla/

Monter un serveur multimédia avec Emby

Ko.png Source : https://blog.lmilcent.com/2016/11/13/tutoriel-monter-un-serveur-multimedia-facilement-avec-docker/
Ce tutoriel aide à la compréhension des volumes et de permet de ne pas avoir besoin de sauvegarder un conteneur Docker en entier ce qui est lourd et parfois long.
En utilisant des volumes le conteneur Emby pourra être supprimé et re-créé tout en conservant ses paramètres.
Il n'aura pas besoin d'être réinstallé a chaque fois que le conteneur est supprimé.

Installer 20 conteneurs pour votre bureau et le web

Ko.png Source : https://linoxide.com/how-tos/20-docker-containers-desktop-user/

Avec un script bash

echo -e "\n\t Arret du reverse proxy nginx \n"  
docker stop nginx-proxy                # Arret du container  
docker rm nginx-proxy                  # Suppression du container
echo -e "\n\t Mise à jour de l' image \n"  
docker pull jwilder/nginx-proxy:latest # :latest n'est pas obligatoire. On peut passer ici une version précise si elle existe.
echo -e "\n\t Lancement du reverse proxy nginx \n"  
docker run -d \                        # -d pour lancer le service comme un daemon  
 --restart=always \                   # En cas d'arrêt, docker essayera de relancer le container
 -p 80:80 -p 443:443 \                # Exposition des ports
 --name nginx-proxy \                 # Nom que je donne au container
 --env 'DEFAULT_HOST=www2.lmilcent.com' \ # Variable d'environnement SPECIFIQUE au container
 --env 'MAX_UPLOAD_SIZE=200M'\        # Idem
 -v /path/to/directory/conf.d \       # Exposer le dossier contenant les configurations
 -v /etc/nginx/vhost.d \              # idem : autre fichier de conf
 -v /usr/share/nginx/html \           # idem : fichiers d'erreurs html 
 -v /path/to/directory/certs:/etc/nginx/certs:ro \  # <Dossier hôte où sont les certificats pour le https>:<dossier du container>:<lecture seule (read only)>
 -v /var/run/docker.sock:/tmp/docker.sock:ro \      # Authorise toutes les connexions locales (utilisé pour joindre les autres services)
 -v /path/to/directory/my_proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro \ # idem : autre fichier de conf
   jwilder/nginx-proxy                # L'image utilisée pour créer le container

En utilisant docker-compose.yml

Installer le paquet docker-compose
Tenter le lancement depuis des docker-compose.yml
A suivre pour DemocracyOS.

Conteneurs

Exécution d'une image, mise en conteneur d'une image. Un conteneur est créé à partir d'une image.
Les conteneurs comprennent l’applicatif et ses dépendances. Ils sont isolés du système hote.
Au moment où l'image Docker est lancée, on peut la nommer en indiquant un nom :
docker run --name MonNom ImageDocker

Lister les conteneurs arrêtés avec -a

docker ps -a

Arrêter un démarrer un conteneur

# Démarrer un conteneur.
docker start <container-id-ou-container-name>
# Arrêter un conteneur.
docker stop <container-id-ou-container-name>
# Arrêter tous les conteneurs.
docker stop $(docker ps -a -q)
# Redémarrer un conteneurs
docker restart <container-id-ou-container-name>

Lister les conteneurs démarrés

docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                        NAMES
9eced4642ec9        tutum/lamp          "/run.sh"           26 minutes ago      Up 26 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:3306->3306/tcp   dreamy_meitner
CONTAINER ID : Identifiant du container.
IMAGE : Identifiant nominatif de l'image du container, avec notamment la version comme ici "latest" puisque c'est la plus récente.
COMMAND : Commande passée en paramètre lorsque le container a été créé.
CREATED : Date de création du container, ici "Il y a 5 heures".
STATUS : État du container, ici "En cours d'exécution depuis 5 heures".
PORTS : Les différentes redirections de ports configurées, rappelez-vous l'option -p...
NAMES : Nom aléatoire donné au conteneur, ceci est personnalisable grâce à l'option -name lors de l'exécution docker run.

Supprimer un conteneur

# Supprimer tous les conteneurs stoppés.
docker rm $(docker ps -a -q)
# Tuer tous les conteneurs qui tournent.
docker kill $(docker ps -q)
# Supprimer un container avec son ID. Il faut que le container soit arrêté.
# Forcer avec docker rm -f <conteneur>
docker rm ID-ou-nom-du-conteneur ID-ou-nom-du-conteneur ID-ou-nom-du-conteneur
Supprimer tous les conteneurs arrêtés depuis plus d’une semaine :
docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs --no-run-if-empty docker rm
Lancer un conteneur éphémère avec la commande run --rm NomImage pour le supprimer automatiquement à sa fermeture.
L’option --rm de la commande run permet de supprimer automatiquement un conteneur quand il s’arrête.
Cette option est incompatible avec l’option -d, (detach, pour faire tourner le conteneur comme un “démon”.
Ajouter l’option -v pour sélectionner les volumes utilisés par le conteneur et les supprimer avec rm.
docker rm -fv conteneur
Supprimer les conteneurs abandonnés.
Lister les conteneurs exited avec la commande docker ps -a -f status=exited
Supprimer les conteneurs exited avec la commande docker rm $(docker ps -a -f status=exited -q)
Supprimer des conteneurs avec plusieurs filtres.
Lister : docker ps -a -f status=exited -f status=created
Supprimer : docker rm $(docker ps -a -f status=exited -f status=created -q)
Supprimer un conteneur à l'aide d'un motif.
Lister avec la commande docker ps -a |  grep "pattern”
Supprimer avec la commande docker ps -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
Ok-ko.png Supprimer container, image, volume : https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes
Ok-ko.png Supprimer images et conteneurs : https://tecadmin.net/remove-docker-images-and-containers/#

Supprimer les conteneurs arrêtés avec system prune

Utiliser la commande docker system prune pour supprimer :
Tous les conteneurs stoppés
Tous les volumes qui ne sont pas utilisés par au moins un conteneur.
Tous les networks qui ne sont pas utilisés par au moins un conteneur.
Toutes les images 'dangling'.
Supprimer toutes les images qui n'ont pas au moins un conteneur associé lancé.
docker image prune -a
Ok-ko.png Complément d'informations pour les options de system prune : https://docs.docker.com/engine/reference/commandline/system_prune/#options

Sauvegarder un conteneur

Persistance des données

Lorsqu'un conteneur est créé et lancé, il peut arriver d'y faire des modifications.
Quand le conteneur est effacé, ces modifications disparaissent !
Pour les conserver, ou créer des sauvegardes à un instant T de l'état d'un conteneur, Docker fournit une possibilité de faire des commit.
# Lister les conteneurs.
docker ps -a
# Créer une nouvelle image à partir du conteneur actuel.
docker commit -a "Auteur" -m "message optionnel" <ID du conteneur ou nom> <Tag à donner à l'image>
# Exemple :
docker commit -a "seo" -m "upgrade" 1ae044ce139a "lamp-update"

Exporter une image vers un dossier

# Lister les images existantes dans le conteneur et leur id.
docker images -a
# Exporter cette nouvelle image pour la déplacer vers un autre serveur, ou faire des tests dans un environnement de développement.
# Cette commande va créer un fichier .tar.
docker save -o <chemin> <id ou nom de l'image>
docker save -o /home/seo/nomauchoix.tar [id de l'image]

Importer une image

Charger une image exportée dans docker pour l'utiliser à nouveau.
docker load -i /home/seo/dockercurl.tar

Ressources utilisées par conteneur

Il est pratique de connaitre la consommation de chaque service dans un conteneur, voire de la limiter.
Cette commande permet d'afficher en temps réel la consommation de tous les conteneurs qui tournent.
docker stats $(docker ps | awk '{if(NR>1) print $NF}')

Supprimer une image

# Permet de visualiser la mémoire libre sur le disque (-m pour afficher en mégaoctets).
df -m
# Afficher les images locales.
docker images
# Lister toutes les images existantes.
docker images -a
# Supprimer
docker rmi Image Image Image
# Supprimer en forçant
docker rmi -f Image
# Effacer toutes les images.
docker rmi $(docker images -q)
# Supprimer les images <none>.
docker rmi $(docker images -f "dangling=true" -q)
# Supprimer toutes les images "dangling".
# Efface les couches (layers) qui ne mènent à aucune image définitive ayant été sauvegardée.
docker rmi $(docker images -q -f dangling=true)
# Lister les images avec un motif.
docker images -a |  grep "pattern"
# Supprimer une image avec un certain motif.
docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi

Supprimer les images dangling avec prune

docker image prune

Volumes

Introduction aux volumes

Les volumes Docker sont là pour stocker les données qui doivent être persistantes, le contenu de la base de données et les configurations.
L'idée est de stocker la base de données et les fichiers du site dans une zone accessible et de l'hôte du conteneur, et du ton conteneur.
En théorie, la partie solution logicielle (Joomla! et PHPMyAdmin) est contenue dans l'image Docker et peut être supprimée et relancée sans problème.
Il suffit de relancer les services avec en paramètre les volumes Docker contenant les configurations et données.
Voir au début de la page du sous-forum docker les actus concernant quoi de neuf docker et les vidéos sur les volumes.
La doc officielle : https://docs.docker.com/storage/volumes/

Lister les volumes

docker volume ls

Supprimer un volume

Les couches et les volumes sont des éléments qu’il faut monitorer et superviser.
Rester vigilant sur la gestion des volumes. Un environnement Docker ne doit pas contenir de données résiduelles sensibles si elles ne sont plus utiles.
Supprimer un volume avec la commande docker volume rm volume_name volume_name
Supprimer les volumes dangling
Lister les volumes dangling avec la commande docker volume ls -f dangling=true
Supprimer les volumes avec la commande docker volume prune
Effacer les volumes qui ne sont liés à aucun container.
docker volume rm $(docker volume ls -qf dangling=true)

Exécuter un shell interactif

Dans un nouveau conteneur Docker

# L'image debian chargée au départ est nommée Debian.
docker run --name Debian -p 80:80 -t -i debian /bin/bash
# L'image importée à l'aide d'une sauvegarde est nommée Debian et chargée avec son ID.
docker run --name Debian -p 80:80 -t -i f4e36cb1884b /bin/bash
En cas de sortie avec exit, on ne peut pas relancer le shell du nom de Debian car il existe déjà.
On peut relancer un autre shell, du nom de Debian2 mais les changements effectués sur la base de données ne seront pas présents.
Pour relancer le shell et utiliser les données de Debian, utiliser la commande docker ps -a pour lister les conteneurs disponibles.
Utiliser une des commandes ci-dessous pour redémarrer le serveur ( Apache2 et MySQL ) depuis le conteneur de Debian.
Les données de la base de données sont à nouveau accessibles.

Dans un container Docker

# Rappel pour lister les conteneurs existants.
docker ps -a
# Obtenir un shell dans un conteneur.
docker exec -ti <nom ou ID du container> sh
docker exec -ti <nom ou ID du container> bash
# Malgré la fermeture du terminal, le serveur est toujours accessible avec cette commande.
docker exec -ti <nom ou ID du container> /bin/sh
docker exec -ti <nom ou ID du container> /bin/bash
docker exec -ti <nom ou ID du container> <commande à exécuter>

Les logs

# Déboguer un container ou simplement connaître son état.
# Voir les logs en temps réel en ajoutant l'option -f.
docker logs <nom ou ID du container>
# Les layers indiquent pourquoi l'image prend du volume.
# Voir l'historique avec la commande suivante :
docker history nom

La gestion des réseaux

Créer un réseau interne

Dans ce cas, le réseau créé n'aura pas accès à internet,ou le réseau de l'hôte, et sera cantonné à docker.
docker network create --internal <nom>

Créer un réseau avec accès externe

Ici, le réseau créé aura accès à l'extérieur.
docker network create <nom>.

Supprimer un réseau

docker network ls  
docker network ls | grep "bridge"   
docker network rm $(docker network ls | grep "bridge" | awk '/ / { print $1 }')

Installer Docker sous Windows

Il ne fonctionne pas tout à fait de la même façon sous Windows et Mac que sous Linux. Une VM est nécessaire sur Windows et Mac.
Installation officielle sous Windows : https://docs.docker.com/engine/installation/windows/ (https://www.docker.com/products/docker-toolbox)
Télécharger Docker Toolbox
Ok-ko.png https://www.docker.com/toolbox
Installer le programme.
Virtualbox ne doit pas être lancé!
Avant de pouvoir lancer un conteneur Docker vous devez créer ou lancer une machine virtuelle existante.
Ok-ko.png Source du tutoriel pour installer Docker sous Windows : https://www.noobunbox.net/virtualisation/installer-docker-sous-windows
Ok-ko.png Nginx sur Windows en 5 minutes ou moins avec Docker : https://distinctplace.com/2017/04/24/nginx-on-windows-in-5-minutes-or-less-with-docker/
Ok-ko.png Voir aussi la documentation de Docker pour Windows : https://docs.docker.com/docker-for-windows/

Hyper V

https://docs.microsoft.com/fr-fr/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v
https://docs.docker.com/toolbox/overview/
https://docs.docker.com/toolbox/toolbox_install_windows/#step-3-verify-your-installation

Installer Docker sous Mac

Il ne fonctionne pas tout à fait de la même façon sous Windows et Mac que sous Linux. Une VM est nécessaire sur Windows et Mac.
Installation officielle sous Mac : https://docs.docker.com/engine/installation/mac/ (https://www.docker.com/products/docker-toolbox)

Complément

Créer des alias pour utiliser Docker

# ~/.bash_aliases

# Kill all running containers.
alias dockerkillall='docker kill $(docker ps -q)'

# Delete all stopped containers.
alias dockercleanc='printf "\n>>> Deleting stopped containers\n\n" && docker rm $(docker ps -a -q)'

# Delete all untagged images.
alias dockercleani='printf "\n>>> Deleting untagged images\n\n" && docker rmi $(docker images -q -f dangling=true)'

# Delete all stopped containers and untagged images.
alias dockerclean='dockercleanc || true && dockercleani'

Redimensionner l'espace disque d'une machine virtuelle Docker

docker-machine create --driver virtualbox --virtualbox-disk-size "40000" default

Docker pour utiliser Mediawiki

Source : hub.docker.com/r/synctree/mediawiki/

Pousser image vers Docker Cloud

Créer un conteneur Docker avec Dockerfile et le publier sur DockerHub : http://sysadmin.cyklodev.com/creer-un-conteneur-docker-avec-dockerfile-et-le-publier-sur-dockerhub/
Push images to Docker Cloud : https://docs.docker.com/docker-cloud/builds/push-images/

En savoir plus sur Docker

Docker est développé avec le langage Go.
Pour en savoir plus, lire les fichiers man : man docker mais également le man de chaque commande man docker run.
Localiser l'emplacement de stockage des fichiers de Docker en local sous GNU/Linux.
/var/lib/docker
Les commandes de Docker : https://docs.docker.com/v1.11/engine/reference/commandline/

Bibliographie

Pris en compte dans le tutoriel

Ok.png Rejoindre Slack : https://blog.docker.com
Ok.png Hub Docker pour Ubuntu : http://hub.docker.com/_/ubuntu/
Ok.png Le forum officiel pour Docker : https://forums.docker.com
Ok.png Docker community : https://www.docker.com/docker-community
Ok.png Nettoyer Docker : http://damiengustave.fr/nettoyer-docker/
Ok.png StackOverFlow docker : https://stackoverflow.com/search?tab=newest&q=docker
Ok.png Docker commandes de nettoyage : https://www.calazan.com/docker-cleanup-commands/
Ok.png Installer Docker sur GNU/Linux : https://memo-linux.com/installer-docker-sur-gnulinux/
Ok.png Docker : comment ça marche ? https://blog.lmilcent.com/2016/03/25/docker-comment-ca-marche/
Ok.png Installer Docker sur Debian 8 : https://www.it-connect.fr/debuter-avec-docker-et-les-containers-sous-debian-8
Ok-ko.png Rejoindre Slack : https://blog.docker.com/2016/11/introducing-docker-community-directory-docker-community-slack/
Ok.png Libérer l'espace disque pris par Docker : http://blog.lecacheur.com/2016/01/06/liberer-lespace-disque-pris-par-docker/
Ok.png Libérer l’espace disque pris par Docker - Le retour : http://blog.lecacheur.com/2016/02/17/liberer-lespace-disque-pris-par-docker-le-retour/
Ok.png How to remove Docker images containers and volumes : https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes
Ok.png Docker - How to cleanup (unused) resources : https://gist.github.com/bastman/5b57ddb3c11942094f8d0a97d461b430

En complément

Ok-ko.png Docker sur Ubuntu : https://doc.ubuntu-fr.org/docker
Ok-ko.png Why you don't need to run SSHd in your Docker containers : https://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/
Ok-ko.png Aide mémoire Docker : https://blogoflip.fr/aide-memoire-docker
Ok-ko.png DockerFile : https://linuxfr.org/news/docker-tutoriel-pour-manipuler-les-conteneurs
Ok-ko.png Utiliser et installer Docker Cloud Agent : https://docs.docker.com/docker-cloud/infrastructure/byoh/
Ok-ko.png Docker et la sécurité : https://www.developpez.net/forums/d1790503/systemes/virtualisation/docker/tutoriel-video-quoi-neuf-docker-explique-securiser-conteneurs/#post9852738
Ok-ko.png Docker Security Scanning : https://www.developpez.com/actu/98661/Docker-devoile-Docker-Security-Scanning-son-outil-de-scan-de-vulnerabilites-au-sein-des-containers-Docker/
Ok-ko.png Nginx reverse proxy server Docker : http://littlebigextra.com/install-nginx-reverse-proxy-server-docker/
Ok-ko.png Lire la documentation officielle de Docker : https://docs.docker.com
Ok-ko.png Sauvegarder restaurer ses conteneurs Docker : https://blog.lmilcent.com/2016/05/11/sauvegarder-restaurer-ses-conteneurs-docker/
Ok-ko.png Container Builder de Google : https://cloud.google.com/container-builder/
Ok-ko.png Commandes pour Docker : http://hrb85-1-88-121-176-85.fbx.proxad.net/blog/201602181900/
Ok-ko.png Comment sauvegarder Docker sans prendre trop de poids : https://www.developpez.net/forums/d1812349/systemes/virtualisation/docker/sauvegarder-conteneur-docker-prendre-poids
Ok-ko.png Volume / Alpine / Docker / MariaDB : https://duckduckgo.com/?q=docker+volume+alpine+mariadb&t=lm&ia=images
Ok-ko.png Copying files from Docker container to host : https://stackoverflow.com/questions/22049212/copying-files-from-docker-container-to-host
Ko.png Analyser les logs Apache avec ELK et Docker : http://blog.lecacheur.com/2016/01/21/analyser-les-logs-apache-avec-elk-et-docker/
Ko.png Exemple de script pour Docker : https://pastebin.com/v33bW1Lf
Ok-ko.png Comment installer Joomla avec Apache sur Debian 9 (Stretch) : https://websetnet.com/fr/install-joomla-apache-debian-9-stretch/
Ko.png Installer Apache2, PHP7, Mysql et phpmyadmin : https://la-programmation.surleweb-france.fr/installer-apache2-php7-mysql-phpmyadmin/
Ok-ko.png Documentation pour démarrer avec son image Docker : https://www.wanadev.fr/24-tuto-docker-demarrer-docker-partie-2/
Ok-ko.png http://damiengustave.fr/nettoyer-docker/
Ok-ko.png https://stackoverflow.com/questions/29696656/finding-the-layers-and-layer-sizes-for-each-docker-image
Ok-ko.png http://blog.arungupta.me/show-layers-of-docker-image/

Ressources complémentaires sur Nginx

Ok-ko.png Astuces Nginx Docker 2015 : https://blog.docker.com/2015/04/tips-for-deploying-nginx-official-image-with-docker/
Ok-ko.png https://www.howtoforge.com/tutorial/installing-nginx-with-php-fpm-and-mariadb-lemp-on-debian-jessie/
Ok-ko.png https://www.sitepoint.com/setting-up-php-behind-nginx-with-fastcgi/
Ok-ko.png https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-a-web-server-and-reverse-proxy-for-apache-on-one-ubuntu-14-04-droplet
Ok-ko.png Nginx webserver : https://docs.docker.com/kitematic/nginx-web-server/
Ok-ko.png https://vexxhost.com/resources/tutorials/how-to-run-nginx-in-a-docker-container-on-ubuntu-16-04/
Ok-ko.png Tutoriel pour Ubuntu 14. Créer une page web pour le serveur Nginx : https://www.digitalocean.com/community/tutorials/how-to-run-nginx-in-a-docker-container-on-ubuntu-14-04#step-5-%E2%80%94-building-a-web-page-to-serve-on-nginx
Ok-ko.png How to commit changes to a Docker image : https://www.techrepublic.com/article/how-to-commit-changes-to-a-docker-image/
Ok-ko.png Nginx as a proxy : https://www.digitalocean.com/community/tutorials/docker-explained-how-to-containerize-and-use-nginx-as-a-proxy
Ok-ko.png October 22, 2014 - Deploying NGINX and NGINX Plus with Docker : https://www.nginx.com/blog/deploying-nginx-nginx-plus-docker/
Ok-ko.png Docker container Nginx Node Redis example : http://anandmanisankar.com/posts/docker-container-nginx-node-redis-example/
Ok-ko.png How install and use Docker Linux : https://www.linux.com/learn/intro-to-linux/2017/11/how-install-and-use-docker-linux
Ok-ko.png Docker Cheat Sheet : https://medium.com/statuscode/dockercheatsheet-9730ce03630d
Ok-ko.png Docker Cheat Sheet : https://dockercheatsheet.painlessdocker.com/
Ok-ko.png https://ops.tips/blog/inspecting-docker-image-without-pull/
Ok-ko.png https://forums.docker.com/t/docker-ubuntu-then-nginx-and-php-cannot-start-web-server/32894
Ok-ko.png https://www.tutorialspoint.com/docker/docker_setting_nginx.htm
Ok-ko.png https://hub.docker.com/r/gvergne/nginx/
Ok-ko.png https://blog.nicolargo.com/2014/06/virtualisation-legere-docker.html
Ok-ko.png https://www.php-geek.fr/installer-redmine-docker-nginx-proxy.html
Ok-ko.png http://www.supinfo.com/articles/single/1774-docker-nginx-php-mysql
Ok-ko.png https://www.techrepublic.com/article/how-to-run-nginx-as-a-docker-container/
Ok-ko.png https://www.digitalocean.com/community/questions/nginx-issue-curl-work-but-request-from-the-browser-doesn-t

Notes complémentaires

Sauvegarder vers l'hôte : Duplicity avec B2.

NAVIGATION

COMPRENDRE LA BLOCKCHAIN PAR LA PRATIQUE

Obtenir gratuitement de la cryptomonnaie sur internet : https://www.visionduweb.eu/forum/bitcoin/1597-gagner-des-bitcoins-miner-des-bitcoins

PARTICIPER ET PARTAGER

Vous êtes sur le HackerSpace de Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Pour participer sur le wiki, créer un compte utilisateur en haut à droite.
Pourquoi utiliser GNU/Linux ? Y'a moins bien, mais, c'est beaucoup plus cher.
GNU/Linux, hackerspace, opensource, logiciels libres et transition écologique.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Les informations présentes sur cette page sont issues d'une recherche personnelle.
Identifiez-vous pour poser vos questions sur la page de discussion de VisionDuWeb.
Améliorer le contenu des pages en faisant des propositions depuis l'onglet discussion.
Pour écrire en Markdown : Éditeur - Générateur de tableau 1 - Générateur de tableau 2.
Vous pouvez partager les articles du wiki avec l'ensemble de la communauté des internautes.
Les recherches sur la sécurité servent à administrer et protéger votre système informatique.
Les informations du wiki ne doivent pas servir à nuire à autrui ou à un système informatique.
De nombreux outils gratuits sont listés et disponibles dans la boîte à outils de Vision du web.
D'autres pages du wiki peuvent correspondre à vos attentes. La liste de toutes les pages du wiki.

SOUTENIR VISIONDUWEB

Soutenir Vision du web avec des Bitcoins : 33ZsupGQr1rUmwj62HadcZ55hsGJajD9wN
Soutenir Vision du web avec des Bitcoins Cash : 15q5xAVFGpMbqgKsr8uhXymTv7kLfke7hq
Soutenir Vision du web avec des Bitcoins Gold : GNcVseSdiEGRzKYwZWeCbGGg1sZ6Nax172
Soutenir Vision du web avec des Bitcore (BTX) : 1Ks9FDF4FVauAHBCpBFKySiSmD8LaQhqDH
Soutenir Vision du web avec des Blackcoins : BKYBEhQGm9ExrYoWzbvmHA491sK2ArxFM6
Soutenir Vision du web avec des Bytecoins : 241LTEY5L3CSTN2afYf97obxGp4ahUYnq5jDwx5b15NQDothce8fpUeKA32X5SrJuDPBgXTsSmQRoAbCzcDvM2d2Pe9w6AY
Soutenir Vision du web avec des Clams : xMF9u1evuiN2zzEjg2KhgeYPcCLU84Ki5T
Soutenir Vision du web avec des Dash : Xd4vJFnWy27be8cLGSiXVYzP6nKFbdHATU
Soutenir Vision du web avec des Monero : 469EK3yr8JbNe3Gf1rXHD81zcHT7o1hTsDxqvWtxunnaTDLVNiXQ2NyWbwaVe4vUMveKAzAiA4j8xgUi29TpKXpm413rpYt
Soutenir Vision du web avec des Dogecoins : A64jhqCgsUyrUCPte6fV3BcG2Y7daH13Ym
Soutenir Vision du web avec des Ethereum : 0x0E4D6B7A1F88A56A1A66bf408c72FAE3d104D632
Soutenir Vision du web avec des Ethereum Classique : 0x633d83a4ab31e63d76d01edb660ecca4498ef8fa
Soutenir Vision du web avec des Litecoins : 3LKigW6TCS5MvXrZFGh8VMEtZf6MtE86iz
Soutenir Vision du web avec des Potcoins : PUYvjeJ3n2frypgD5yd95yNnwoztnZL5P3
Soutenir Vision du web avec des Solarcoins : 8aYbMcAL68U8f3c3o5pEKUKeWxx48gU1eq
Soutenir Vision du web avec des Zcash : t1Tkiv7nTt9Gwwui9ifsBdp37dTnRG7oYHp