Container-Docker

1. Conteneur

Évolution de la virtualisation

Matériaux

Un peu histoire. Au début, quand on a besoin des services informatique, on achète des matériaux comme pour CPU, Mémoire RAM etc.

Vue que les grandes Entreprise comme Amazon, il doit fonctionner parfaitement même pendant la période forte charge(Noël).

Virtualisation

VM

L’isolation avec le système hôte est donc totale.

Avantage:installer OS différentes, isolé du système hôte.

Inconvénients:prends du temps à démarrer, réserve des resources RAM/CPU

Conteneur

Un processus ou l’ensemble du processus isolés du reste du système.

Caractère: ne virtualise pas les resources, il ne crée qu’un isolation des processus. Donc il partage des resources avec son hôte.

Avantages:

  1. Ne réserve pas les resources-> louer les resources surplus en moyen cloud.
  2. Démarrez rapidement
  3. Plus d’autonomie à dev: réduire la diff entre production, dev, intégration.
  4. Les conteneurs permettent de réduire les coûts, d'augmenter la densité de l'infrastructure,
  5. CI, le cycle de déploiement.BlaBlaCar utilise des conteneurs pour créer et isoler rapidement des tests/builds d'application.
  6. MicroService: ils sont souvent utilisés en production pour ajouter des ressources disponibles et ainsi répondre à des besoins de mise à l'échelle, ou de scalabilité.

2. Docker

2.1 Création, année, fondateur

Fondateur, Solomon Hykes, né à New-york, d'un père américain et d'une mère franco-canadienne. Sa famille s’est installer en France, alors qu'il avait quatre ans.

En 2008, il crée dotCloud à Montrouge pour PaaS.

dotCloud s’est implante dans la Silicon Valley en 2011, début 2013, open source.

caractère:Docker, un conteneur ne doit faire tourner qu'un seul processus.

dans le cas d'une stack LAMP (Linux, Apache, MySQL, PHP), nous devons créer 3 conteneurs différents.

2.2 应用场景

1.Déployer le projet,

2.une équipe de 10 personnes peuvent avoir le OS différents.

3.CI

Cela permet à la CI/CD de créer rapidement des espaces isolés pour faire tourner vos tests.

goal:vous n'aurez plus de problème de différence d'environnement, et votre code marchera partout.

Comment faire pour avoir un environnement unifié et fonctionnel chez l'ensemble des développeurs

2.3 怎么储存?

Docker Hub:la registry officielle de Docker
Une registry est un logiciel qui permet de partager des images à d'autres personnes. C’est un composant majeur dans l’écosystème Docker, car il permet :

  • à des développeurs de distribuer des images prêtes à l’emploi et de les versionner avec un système de tags ;
  • à des outils d’intégration en continu de jouer une suite de tests, sans avoir besoin d’autre chose que de Docker ;
  • à des systèmes automatisés de déployer ces applications sur vos environnement de développement et de production.

需要什么matériel?

2.4. CMD

docker run image
Daemon docker va chercher cette image en local, dans le cas contraire, il va le récupérer sur la registry Docker officielle.
Docker run hello-world
-d: Sans -d, docker démarre le conteneur, exécute, et puis, il a fini par s’arrêter.
Avec -d, le conteneur reste allumé jusqu’à l’arrêt du service qu’il contient.
-p: 8080:80, trafic du port 8080 et puis le port 80 du conteneur.

docker exec -ti id-conteneur bash
Entre dans le conteneur, pour pourvoir y effectuer des actions.
docker stop id_conteneur
Arrêter le conteneur lancé avec l’option -d
docker rm id_conteneur
Celle-ci va détruire le conteneur et son contenu.
docker pull image
Récupérer l’image, et le stocker en local sans lancer le conteneur.
docker ps
Info l’états du conteneurs actifs.
docker images -a
voir l'ensemble des images présentes en local
docker system prune
faire le ménage

docker build
Docker va créer un conteneur pour chaque instruction, et le résultat sera sauvegardé dans une layer. Le résultat final étant un ensemble de layers qui construisent une image Docker complète.
Si une layer ne bouge pas entre deux builds, Docker ne la reconstruira pas. Seules les layers situées après une layer qui se reconstruit seront elles aussi reconstruites.
Exemple:
docker build -t ocr-docker-build .
-t: donner un nom à image.
Le . est le répertoire où se trouve le Dockerfile ; dans ce cas, à la racine de notre projet.

2.5 Lancement d'un docker

docker build -t nom-docker-build .
docker run -d -p 2368:2368 nom-docker-build

2.6 ignore fichier with .dockerignore

Il permet de ne pas copier certains fichiers ou dossiers dans le conteneur lors de l'exécution de l'instruction ADD.

********Sous Chaptire Dockerfile, Créer votre propre image***************

Nom du fichier: Dockerfile

Sans extension

Layer:

Chaque instruction que nous allons donner dans notre Dockerfile va créer une nouvelle layer correspondant à chaque étape de la construction de l'image.

Un exemple:
FROM debian:9

Définir une image que vous voulez travailler au-dessus comme base.
FROM n'est utilisable qu'une seule fois dans Dockerfile.
RUN apt-get update -yq \ && apt-get install curl gnupg -yq \ && curl -sL https://deb.nodesource.com/setup_10.x | bash \ && apt-get install nodejs -yq \ && apt-get clean -y
RUN exécuter une commande dans le conteneur.
ADD . /app/
ADD copier ou télécharger des fichiers dans l'image.Dans ce cas, il copie les sources de de l'app locale dans le dossier /app/ de l'image.
. signifie le repertoire courant.
les code sources sont prêts.

WORKDIR /app

WORKDIR permet de modifier le répertoire courant. elle est équivalente à une comme cd en ligne de commande.

RUN npm install
RUN permet d'installer le package du projet Node.js
les dépendances sont prêts

EXPOSE 2368
EXPOSE indique le port sur lequel votre application écoute.

VOLUME /app/logs
VOLUMEindique quel répertoire vous voulez partager avec votre host.

CMD npm run start
CDMdoit toujours être présent, placer en dernière ligne, permet au conteneur de savoir quelle commande il doit exécuter lors de son démarrage.

********Sous Chaptire Docker-compose, Unifier conteneur*********

Rérérence:
Répo GitHub ghost-cms

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,200评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,526评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,321评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,601评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,446评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,345评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,753评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,405评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,712评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,743评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,529评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,369评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,770评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,026评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,301评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,732评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,927评论 2 336

推荐阅读更多精彩内容