l'installation et le déploiement de base Docker

Docker

1 Docker Profil

1.1 Quelle est la virtualisation

Dans l'ordinateur, la virtualisation (en anglais: la virtualisation) est une technologie de gestion des ressources, les différentes entités est les ressources de l'ordinateur, tels que les serveurs, le réseau, la mémoire et le stockage, etc., pour être abstraite, présentée après la conversion à briser la structure inter-entités les obstacles ne peuvent pas être coupés, de sorte que l'utilisateur peut configurer que la meilleure façon originale d'utiliser ces ressources. Un grand nombre de ces nouvelles ressources virtuelles est pas la façon de mettre en place des ressources existantes, la configuration géographique ou physique est limitée. ressources virtualisées généralement appelées à inclure la puissance de calcul et de stockage de données.

Dans l'environnement de production réel, la technologie de virtualisation est principalement utilisée pour résoudre la surcapacité de matériel physique haute performance et l'ancien ancienne capacité matérielle est trop faible réutilisation de réorganisation, la transparence du matériel physique sous-jacente afin de maximiser l'utilisation des ressources matérielles physiques utiliser pleinement

De nombreux types de technologies de virtualisation, telles que: la virtualisation des logiciels et de la virtualisation matérielle, la virtualisation de la mémoire, la virtualisation de réseau (vip), la virtualisation de bureau, la virtualisation des services, des machines virtuelles, et ainsi de suite.

1.2 Quel est le Docker

Docker est un projet open source, est né au début de 2013, il a d' abord été une société interne de projet amateur dotCloud. Il est basé sur le lancement de Google de la langue Go. plus tard projet rejoint la Fondation Linux, le respect du protocole Apache 2.0, le code de projet à GitHub effectuer la maintenance sur.

Insérer ici l'image Description

Docker puisque l'attention générale open source et la discussion que les entreprises dotCloud ont été rebaptisés plus tard Docker Inc. RedHat a concentré son soutien Docker RHEL6.5 dans, Google est également largement utilisé dans ses offres PaaS.

L'objectif de Docker projet est de parvenir à une solution de virtualisation du système d'exploitation léger. Docker est le fondement de la technologie des conteneurs Linux (LXC).

Sur la base du LXC Docker était nouveau paquet, afin que les utilisateurs ne ont pas besoin de se soucier de la gestion des conteneurs, ce qui rend l'opération plus facile. Action de l'utilisateur conteneurs Docker comme vous le faites d'une machine virtuelle léger rapide aussi facile.

Pourquoi Docker?

(1) puces rapides.

Les utilisateurs ont besoin seulement quelques minutes, vous pouvez mettre votre propre programme « Docker de. » Docker dépend du modèle « copy-on-write » (copy-on-write), les modifications apportées à l'application très rapidement, on peut dire d'atteindre « en raison de cœur, qui est le changement de code » royaume.

     随后,就可以创建容器来运行应用程序了。大多数Docker容器只需要不到1秒中即可启动。由于去除了管理程序的开销,Docker容器拥有很高的性能,同时同一台宿主机中也可以运行更多的容器,使用户尽可能的充分利用系统资源。

classification logique (2) fonctions

Utilisez Docker, les développeurs ne doivent se préoccuper de l'application en cours d'exécution dans le récipient, et le personnel d'exploitation et d'entretien ne doivent se préoccuper de la façon de gérer le conteneur. objectif de conception Docker est d'améliorer les développeurs de cohérence de l'environnement de production à l'environnement de développement de code d'écriture et des applications à déployer. réduisant ainsi le genre de « développer tout est normal, sans aucun doute des problèmes d'exploitation et d'entretien (l'environnement de test est normal, sur la ligne de la question se résume à est certainement la question de l'exploitation et de maintenance). »

(3) cycle de vie de développement rapide et efficace

L'un des objectifs est de raccourcir le code de développement Docker, tester le déploiement, cycle de fonctionnement en ligne, de sorte que votre application a la portabilité, facile à construire, et une collaboration facile. (Chose populaire à dire, Docker est comme une boîte qui peut contenir beaucoup d'éléments, si vous avez besoin de ces objets peuvent être prendre directement loin la grande boîte, sans avoir besoin d'un morceau tiré de la boîte.)

(4) encourager l'utilisation de l'architecture orientée services

Docker encourager également l'architecture orientée services et des services de micro-architecture. Docker recommander un seul récipient pour exécuter une seule application ou processus, formant ainsi un modèle d'application distribuée, dans ce modèle, une application ou d'un service peut être représenté par une série d'interconnectées à l'intérieur du récipient, de sorte que le déploiement distribué application, les applications ou l'extension de débogage sont très simples, mais aussi d'améliorer l'introspection du programme. (Bien sûr, vous pouvez exécuter plusieurs applications dans un conteneur)

1,3 conteneur de machine virtuelle et comparer

L'image ci-dessous compare les différences entre Docker et le mode traditionnel de la virtualisation, les conteneurs virtualisés sont visibles, la réutilisation directe du système d'exploitation hôte local, alors que la manière traditionnelle, il est mis en œuvre au niveau du matériel au niveau du système d'exploitation.

Insérer ici l'image Description

Par rapport à la machine virtuelle traditionnelle, l'avantage se reflète Docker comme démarrage rapide, en prenant un petit volume.

1.4 composants Docker

1.4.1 serveur et client Docker

Docker est un client - serveur programme d'architecture (C / S). Le client n'a qu'à serveur Docker Docker ou démon fait une demande, le serveur ou le démon fera tout le travail et renvoie le résultat. Docker fournit un outil de ligne de commande Docker et un ensemble de l'API RESTful. Vous pouvez exécuter le démon Docker et le client sur le même hôte, vous pouvez également vous connecter à partir du client local pour exécuter le démon distant Docker Docker sur une autre machine hôte.

Insérer ici l'image Description

1.4.2 conteneur de miroir Docker

Mirroring est de la pierre angulaire de Docker. Les utilisateurs d'exécuter leur propre mise en miroir basée sur les conteneurs. Miroir également Docker partie « build » du cycle de vie. Structure de couche miroir est basée sur un système de fichiers combiné, étape par étape pour construire une série d'instructions. Par exemple:

Ajouter un fichier;

Exécuter une commande;

Ouvrez une fenêtre.

Le conteneur peut également être mis en miroir comme « code source ». Miroir très petit, très « portable », le partage facile, stocké et mis à jour.

Docker peut vous aider à construire et déployer conteneur, vous avez juste besoin de votre propre application ou un service peuvent être emballés dans des conteneurs. Conteneur est mis en miroir le démarrage, le navire peut fonctionner sur un ou plusieurs processus. Nous pouvons croire que le miroir est construit ou emballé étape Docker du cycle de vie, et le conteneur est démarré ou la phase de mise en œuvre. Sur la base d'un conteneur de démarrage en miroir, le conteneur une fois que la mise en service est terminée, nous serons en mesure de se connecter au conteneur installer des logiciels ou des services dont ils ont besoin.

Donc, contenant Docker est:

Un format d'image;

Certains colonne standard de fonctionnement;

Un environnement d'exécution.

Docker se fonde sur le concept d'un conteneur standard. La cargaison de conteneurs standard fourni dans le monde entier, Docker utilisera ce modèle pour leur propre conception, la seule différence est: le transport de conteneurs de marchandises, le transport et le logiciel Docker.

     和集装箱一样,Docker在执行上述操作时,并不关心容器中到底装了什么,它不管是web服务器,还是数据库,或者是应用程序服务器什么的。所有的容器都按照相同的方式将内容“装载”进去。

     Docker也不关心你要把容器运到何方:我们可以在自己的笔记本中构建容器,上传到Registry,然后下载到一个物理的或者虚拟的服务器来测试,在把容器部署到具体的主机中。像标准集装箱一样,Docker容器方便替换,可以叠加,易于分发,并且尽量通用。

1.4.3 Registry (registre)

Registre Docker avec l'utilisateur pour enregistrer l'image construite. Registre est divisé en deux types publics et privés. société Docker exploite un Registre public appelé le Hub Docker. Les utilisateurs peuvent ouvrir un compte à Docker Hub, partagez et enregistrer leur propre image (Note: Docker Hub téléchargement lent géant l'image, vous pouvez construire votre propre registre privé).

https://hub.docker.com/

2 Installation et mise en service 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

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=容器名称 镜像名称:标签

Vous devez vous identifier les moyens de conteneurs gardien:

docker exec -it 容器名称 (或者容器ID)  /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 mysql

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'IP hôte, en tant que port spécifié 33306

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

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

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

5 Migration et sauvegarde

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

6 Dockerfile

6.1 Qu'est-ce que Dockerfile

écriture Dockerfile est une série de commandes et de paramètres constitué de ces commandes de l'image de base et, finalement, 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
Publié 50 articles originaux · a gagné les éloges 21 · vues 3706

Je suppose que tu aimes

Origine blog.csdn.net/wmlwml0000/article/details/104626233
conseillé
Classement