article Annuaire
- Le rôle de 1.docker
- 1.1 simplifie la configuration
- 1.2 Code de gestion des pipelines
- La production du développeur 1.3
- 1.4 l'isolement de l'application
- 1.5 Services de fusion
- Plus de 1,6 locataire
- 1.7 déploiement rapide
- 1.8 stockage multi-niveaux
- installation 2.docker
- 3 Commandes communes
- 4 déploiement d'applications
- Sauvegarde et migration 5 (commutation entre le miroir et le récipient)
- conteneur de stockage d'image est 5.1
- 5.2 sauvegarde d'image
- 5.3 récupération d'image et de la migration
- 6 Dockerfile
- 7 Docker entrepôt privé
Avant d' utiliser docker, la première utilisation Ali nuage miroir accélérateur pour accélérer, ou les autres choses sont très lents à télécharger. . . Configuration détaillée: en utilisant la source de miroirs de menu fixe aliyun pour refléter l'accélération de l' accélérateur
Le rôle de 1.docker
Docker offre la virtualisation légère, vous pouvez obtenir une couche d'abstraction supplémentaire de Docker, vous pouvez exécuter plusieurs conteneurs micro Docker sur une seule machine,
Et chaque conteneur a un micro-micro-service ou une application autonome, par exemple, vous pouvez exécuter Tomcat dans un Docker et MySQL en cours d'exécution dans un autre Docker,
Les deux peuvent fonctionner sur le même serveur ou plusieurs serveurs. futurs possibles de chaque application doit Docker.
Conteneur et commencer la relation est très rapide. Docker est maintenant en mesure d'avoir les huit objectifs suivants:
1.1 simplifie la configuration
Tel est l'objectif initial de Docker, le plus grand avantage de la machine virtuelle (VM) est basée sur la configuration de votre application peut fonctionner de façon transparente sur toute plate-forme. Docker offre les mêmes fonctionnalités similaires à la machine virtuelle,
Mais sans effets secondaires, il vous permet de configurer l'environnement puis déployer dans le code, la même configuration Docker peut être utilisé dans une variété d'environnements, ce qui est l'environnement d'application réelle et d'obtenir un découplage de l'environnement sous-jacent.
1.2 Code de gestion des pipelines
Peut être géré dans le flux de code du conduit de canalisation, un développeur de machine à machine dans ce processus de production peut être géré efficacement. Parce qu'il y aura une variété d'environnements différents dans ce processus, qui peuvent chacun avoir une légère différence, Docker assure une cohérence entre ces environnements hétérogènes dans un micro-environnement, du développement au déploiement pour la libération en douceur.
La production du développeur 1.3
Dans un environnement de développement, nous voulons que notre environnement de développement peut être plus proche d'un environnement de production, nous laisserons chaque service fonctionne dans sa propre machine virtuelle, cela va simuler l'environnement de production,
Par exemple, nous ne devons pas toujours à contre-Fi, donc nous pouvons parfois exécuter plusieurs Docker charger une gamme de services pour maximiser la production d'un environnement de simulation distribuée déployés sur une seule machine.
1.4 l'isolement de l'application
Il y a beaucoup de raisons pour lesquelles vous devez exécuter plusieurs applications sur une seule machine, ce qui nécessite des applications monolithiques monolithique original découpé en plusieurs micro-services. Découplage entre les applications,
Le service est déployé dans de multiples applications dans plusieurs Docker peut facilement atteindre cet objectif.
1.5 Services de fusion
L'utilisation Docker peut combiner plusieurs services pour réduire les coûts, petit système d'exploitation de l'empreinte, partagée entre plusieurs instances de mémoire libre, ces techniques peuvent Docker des ressources à plus étroitement
Fournir des services plus efficaces fusion.
Plus de 1,6 locataire
conteneurs Docker peuvent être utilisés comme l'informatique en nuage multi-locataire, l'utilisation de Docker peut facilement créer plusieurs instances doivent exécuter pour chaque locataire, qui profitent à l'environnement ainsi que la commande diff rapide souple efficacement.
1.7 déploiement rapide
Docker à travers le processus de création d'un conteneur, sans avoir à redémarrer le système d'exploitation, peut être fermé en quelques secondes, vous pouvez créer ou détruire les ressources dans le centre de données, ne vous inquiétez pas au sujet de la consommation supplémentaire.
Une efficacité du centre de données typique est de 30%, par l'allocation des ressources plus agressive pour obtenir un moyen plus rentable de la polymérisation d'une nouvelle allocation des ressources, par exemple,
On peut facilement dépasser cette utilisation, ce qui améliore considérablement l'efficacité de l'utilisation du centre de données.
Nous savons tous que le système d'exploitation est divisé en noyau et l'espace utilisateur. Pour ce dernier Linux, le démarrage du noyau, il va monter le système de fichiers racine pour fournir un soutien espace utilisateur.
L'image Docker (image), l'équivalent d'un système de fichiers racine. Par exemple, le ubuntu mirroring officiel: 14.04 contient l'ensemble complet d'Ubuntu 14.04
système de fichiers racine du système minimum.
l'image Docker est un système de fichiers spécial, en plus de fournir les conteneurs souhaités exécuter des programmes, des bibliothèques, des ressources et d'autres fichiers de configuration,
En outre, il contient un certain nombre de paramètres de configuration pour préparer l'exécution (par exemple le volume anonyme, les variables d'environnement, les utilisateurs, etc.). L'image ne contient pas de données dynamique,
Son contenu ne sont pas modifiés après la construction.
1.8 stockage multi-niveaux
Parce que l'image du système d'exploitation contient le système de fichiers racine complet, le volume est souvent grande, si la conception Docker, tirer pleinement parti de la technologie Union FS,
Il est conçu comme une architecture de stockage multi-niveaux. Ainsi, strictement parlant, le miroir est pas aussi emballé sous forme de fichier ISO, une image virtuelle est un concept juste, qui reflète la réelle
Il ne se compose pas d'un fichier, mais par un ensemble de composants du système de fichiers, ou par une coalition de système de fichiers multi-couches.
Lors de la construction du miroir, construira une couche, la couche précédente est la base de cette dernière couche. Chaque couche que vous avez construit ne changera pas, tout changement du niveau ne se produit que dans son propre cette couche.
Par exemple, un fichier avant l'opération de suppression, le réel ne supprime pas vraiment les fichiers précédents de la couche, mais seulement supprimé dans la marque de calque pour le fichier. Lorsque l'opération de récipient final,
Bien voir pas ce fichier, mais en fait le fichier suit toujours le miroir. Ainsi, lors de la construction du miroir, les besoins de soins supplémentaires, dans la mesure du possible, chaque couche de la couche contenant seulement
Les choses doivent ajouter des choses supplémentaires à déblayés avant la fin de la construction de la couche.
Caractérisé en outre en ce que le multiplexage de miroirs de stockage multi-niveaux, le personnalisé devient plus facile. Même avant d'utiliser l'image construite comme une couche de base, puis en outre l'addition d'une nouvelle couche,
Pour personnaliser leur contenu nécessaire pour construire une nouvelle image.
Utilisez le principe de Docker
installation 2.docker
2.1 Installation Docker
Docker officiel recommandé d'installer dans Ubuntu, car Docker est basé sur Ubuntu version, mais des problèmes se posent en général Docker Ubuntu est la première mise à jour ou patch. Dans de nombreuses versions de CentOS ne sont pas pris en charge par certains le dernier package de mise à jour du patch.
Puisque nous utilisons l'environnement d'apprentissage est CentOS, donc ici nous Docker installé sur CentOS. Note: Il est recommandé d'installer au moins la version CentOS7.x, dans la version CentOS6.x, vous devez installer avant d'installer beaucoup d'autres beaucoup de l'environnement et Docker patches ne prennent pas en charge les mises à jour.
S'il vous plaît monter directement programme de support de miroir Centos7.x
(1) la mise à jour de la dernière yum package
sudo yum update
(2) exigent paquet d'installation, yum-util fournir yum-config-manager fonction, les deux autres sont entraînés carte des périphériques dépendant
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3) Set Ali nuage source de
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4) montée docker
sudo yum install docker-ce
(5) Après avoir installé la version Voir docker
docker -v
2.2 Set miroir USTC
USTC est un vétéran du fournisseur de services miroir de Linux, et aussi loin dans la version ubuntu 5.04 lors de l'utilisation. docker vitesse accélérateur miroir USTC rapidement. L'un des avantages USTC miroir docker est pas nécessaire d'enregistrer, est un véritable service public.
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
Modifiez le fichier:
vi /etc/docker/daemon.json
Entrez ce qui suit dans le fichier:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
2.3 Docker démarrage et l'arrêt
systemctl commande est le gestionnaire de services du système de commande
Démarrer docker:
systemctl start docker
Arrêt docker:
systemctl stop docker
Redémarrer docker:
systemctl restart docker
Voir docker Statut:
systemctl status docker
boot:
systemctl enable docker
Voir l'information sommaire docker
docker info
Voir la documentation d'aide docker
docker --help
3 Commandes communes
3,1 commande de miroir
3.1.1 Vue Miroir
docker images
Repository: nom de l'image
TAG: balise image
IMAGE ID: ID mirroring
CRÉÉ: Date de création miroir (et non la date d'acquisition du miroir)
TAILLE: taille de l'image
Ces images sont stockées dans l'hôte Docker / var / lib / docker
3.1.2 Recherche Miroir
Si vous avez besoin de trouver l'image que vous voulez à partir du réseau, vous pouvez effectuer une recherche par la commande suivante
docker search 镜像名称
NOM: Nom de l'entrepôt
DESCRIPTION: Miroir Description de
STARS: évaluation des utilisateurs, un miroir de la popularité de réaction
OFFICIEL: sont officiels
AUTOMATED: construire automatiquement, indiquant que le miroir processus de construction automatiquement créé par le Centre Docker
3.1.3 mirroring de traction
Tirer l'image miroir est téléchargé à partir du central au dépôt local
docker pull 镜像名称
Par exemple, je veux télécharger centos7 Mirror
docker pull centos:7
3.1.4 retirer le miroir
Miroir ID suppression Press
docker rmi 镜像ID
Supprimer tous les miroirs
docker rmi `docker images -q`
3.2 commandes à bord de navires
3.2.1 Voir le conteneur
Voir le récipient en marche
docker ps
Voir tous les conteneurs
docker ps –a
Voir la dernière exécution du conteneur
docker ps –l
Vérifiez récipient d'arrêt
docker ps -f status=exited
3.2.2 Création et démarrage conteneur
Créer un conteneur personnalisé Paramètres:
Créer une commande conteneur: run docker
-i: indique le récipient d'exploitation
-t: démarrage d'un conteneur arrière entrera dans sa ligne de commande. Après l'ajout de ces deux paramètres, le navire sera en mesure de créer connecter. Cela est attribué un pseudo-terminal.
-nom: conteneur nommé créé.
-v: représente la relation de mappage de répertoire (le premier est le répertoire hôte, qui est mis en correspondance avec un répertoire sur l'hôte), vous pouvez utiliser plusieurs -v faire plusieurs répertoires ou fichiers de mappage. Note: Il est le répertoire pour la cartographie, des changements sur l'hôte, puis de partager le conteneur.
-d: courir derrière le paramètre -d va créer un gardien du conteneur ne contenant pas automatiquement connecté après (ce conteneur est créé en arrière-plan, en ajoutant -i -t si seulement deux paramètres, il se mettra automatiquement après la création conteneur).
-p: cartographie du port, le premier est un port d'hôte, qui est mis en correspondance dans l'orifice du récipient. Vous pouvez utiliser le mappage de ports multiples -p faire plus
Créer un récipient (1) en mode interactif
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
Tels que:
docker run -it --name=mycentos centos:7 /bin/bash
Ensuite, nous voyons la commande ps, vous pouvez voir le lancement du navire a été trouvé, l'état pour commencer l'état
Quittez le conteneur actuel
exit
(2) créer le mode de protection de type conteneur:
docker run -di --name=容器名称 镜像名称:标签
Tels que:
docker run -id --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
Vous devez vous identifier les moyens de conteneurs gardien:
docker exec -it 容器名称 (或者容器ID) /bin/bash
Tels que:
docker exec -it mynginx /bin/bash
3.2.3 arrêter et démarrer le récipient
Arrêtez le récipient:
docker stop 容器名称(或者容器ID)
conteneur Début:
docker start 容器名称(或者容器ID)
3.2.4 copie de fichier
Vous pouvez utiliser la commande cp si nous avons besoin de copier le fichier dans le conteneur
docker cp 需要拷贝的文件或目录 容器名称:容器目录
Les fichiers peuvent également être copiés à partir du conteneur
docker cp 容器名称:容器目录 需要拷贝的文件或目录
3.2.5 répertoire est monté
Lorsque nous pouvons créer un conteneur, le répertoire contenant dans le répertoire sont mis en correspondance hôte, afin que nous puissions modifier le fichier hôte dans un répertoire afin d'influencer le récipient.
Créer un paramètre Ajouter conteneur -v Retour au répertoire d'accueil: conteneur, par exemple:
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7
Si vous partagez un répertoire multi-niveaux, autorisations insuffisantes peuvent apparaître rapidement.
En effet, le module de sécurité SELinux autorité CentOS7 de l'interdiction, et nous avons besoin d'ajouter des paramètres --privileged = true pour résoudre le problème sans l'autorisation répertoire monté
3.2.6 Voir conteneur d'adresse IP
On peut voir le navire exécutant la commande suivante une variété de données
docker inspect 容器名称(容器ID)
Vous pouvez également effectuer la commande suivante pour sortie directe adresse IP directe
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
3.2.7 récipient suppression
Supprime le conteneur spécifié:
docker rm 容器名称(容器ID)
4 déploiement d'applications
4.1 déploiement MySQL
(1) Pull miroir mysql
docker pull centos/mysql-57-centos7
(2) créer le conteneur
docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
Le mappage de port -p, hôte de format de mappage de port: exécution de conteneurs du port
-e Ajouter la MYSQL_ROOT_PASSWORD variable d'environnement au nom du mot de passe de connexion de l'utilisateur root
(3) de connexion à distance mysql
Connexion de l'hôte IP, le port désigné comme 33306 (33306 correspond de port à l'ordinateur local en docker 3306)
4.2 déploiement tomcat
(1) Tirer Miroir
docker pull tomcat:7-jre7
(2) créer le conteneur
Créer un conteneur -p indique le mappage d'adresses
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
Capture d'écran déployer un projet:
4.3 déploiement Nginx
(1) Tirer Miroir
docker pull nginx
(2) créer récipient Nginx
docker run -di --name=mynginx -p 80:80 nginx
Visite: http://192.168.110.131
capture d' écran:
4.4 déploiement Redis
(1) Tirer Miroir
docker pull redis
(2) créer le conteneur
docker run -di --name=myredis -p 6379:6379 redis
Utilisez la version de bureau du test:
Sauvegarde et migration 5 (commutation entre le miroir et le récipient)
conteneur de stockage d'image est 5.1
Nous pouvons sauver le navire de commande suivante pour le miroir
docker commit mynginx mynginx_i
5.2 sauvegarde d'image
Nous pouvons enregistrer l'image avec la commande suivante sous forme de fichiers tar
docker save -o mynginx.tar mynginx_i
5.3 récupération d'image et de la migration
Tout d'abord nous avons retiré mynginx_img miroir et puis exécutez la commande à restaurer
docker load -i mynginx.tar
fichier d'entrée -I
Après avoir effectué à nouveau rétroviseur, vous pouvez voir l'image a été restaurée
après la récupération:
6 Dockerfile
6.1 Qu'est-ce que Dockerfile
scénario Dockerfile est une série de commandes et paramètres constitués ces commandes à l'image de base (tels que les systèmes d'exploitation CentOS, etc.) et, enfin, créer une nouvelle image.
1. Pour les développeurs: fournir un environnement de développement cohérent pour l'équipe de développement,
2, pour les testeurs: Vous pouvez prendre une image miroir directe construit lors de l' élaboration ou de construire une nouvelle image en fichier Dockerfile pour commencer le travail,
3, pour le transport et le personnel d'entretien: au moment du déploiement, permet la migration transparente des applications.
6.2 Commandes communes
commandement | effet |
---|---|
DE image_name: tag | Ce qui définit l'utilisation de l'image de base pour démarrer le processus de construction |
MAINTAINER user_name | Avertissement créateur miroir |
ENV valeur clé | Définir des variables d'environnement (vous pouvez écrire plusieurs) |
commande RUN | Dockerfile est une partie de base (vous pouvez écrire plusieurs) |
ADD source_dir / fichier dest_dir / fichier | Copiez le fichier à l'hôte du conteneur, si elle est un fichier compressé, il sera extrait automatiquement après la réplication |
COPY source_dir / fichier dest_dir / fichier | Et comme ADD, mais s'il n'y a pas un fichier compressé et dézipper |
WORKDIR path_dir | Définir le répertoire de travail |
6.3 à l'aide d'un script pour créer un miroir
étapes:
(1) Créer un répertoire
mkdir –p /usr/local/dockerjdk8
(2) Télécharger jdk-8u171-linux-x64.tar.gz et téléchargé sur le serveur (machine virtuelle) dans le répertoire / usr / local / de dockerjdk8
(3) créer un fichier Dockerfile vi Dockerfile
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER ITCAST
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
(4) Construction de la course miroir
docker build -t='jdk1.8' .
Notez le dos des espaces et des points, ne pas omettre
(5) pour établir si un miroir de vue complète
docker images
7 Docker entrepôt privé
7.1 entrepôt privé mis en place et configuration
(1) image Pull entrepôt privé (cette étape est omise)
docker pull registry
(2) entrepôt de conteneurs privé Démarrer
docker run -di --name=registry -p 5000:5000 registry
(3) Ouvrez le navigateur et entrez l'adresse http://192.168.184.141:5000/v2/_catalog voir la {"repositories":[]}
représentation de l' entrepôt privé et construire un contenu avec succès est vide
(4) daemon.json modifié
vi /etc/docker/daemon.json
Ajouter le contenu suivant, enregistrer et quitter.
{"insecure-registries":["192.168.184.141:5000"]}
Cette étape permet la confiance docker pour l'adresse de l'entrepôt privé
(5) Redémarrer le service docker
systemctl restart docker
7.2 Mirroring téléchargé sur un entrepôt privé
(1) Ce marqué comme entrepôt d'image miroir privé
docker tag jdk1.8 192.168.184.141:5000/jdk1.8
(2) contenant de recommencer PW
docker start registry
(3) marqué transfert d'image
docker push 192.168.184.141:5000/jdk1.8
Une autre machine veut tirer ce miroir peut être utilisé directement:
docker pull 192.168.184.141:5000/jdk1.8