Micro services de déployer des outils communs --docker


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

Insérer ici l'image Description

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

Insérer ici l'image Description
Voir tous les conteneurs

docker ps –a

Insérer ici l'image Description
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

Insérer ici l'image Description

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)
Insérer ici l'image Description

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:
Insérer ici l'image Description

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.131capture d' écran:
Insérer ici l'image Description

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

Insérer ici l'image Description
Utilisez la version de bureau du test:
Insérer ici l'image Description

Sauvegarde et migration 5 (commutation entre le miroir et le récipient)

Insérer ici l'image Description
Insérer ici l'image Description

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
Insérer ici l'image Description
après la récupération:
Insérer ici l'image Description

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

Insérer ici l'image Description

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

Insérer ici l'image Description

Publié 122 articles originaux · a gagné les éloges 1 · views 7337

Je suppose que tu aimes

Origine blog.csdn.net/qq_36079912/article/details/104281015
conseillé
Classement