Docker --- miroir et Dockerfile détaillée

annuaire

.Docker un miroir en trois façons

Sur la base de la création d'image existante (docker commit)

Créer un miroir local basé sur un modèle

image personnalisée basée Dockerfile

deux instructions détaillées .Dockerfile

concept de Dockerfile

DE

MAINTAINER

COURIR

CMD

EXPOSER

ENV

AJOUTER

COPIE

POINT D'ACCÈS

LE VOLUME

UTILISATEUR

WORKDIR

ONBUILD


.Docker un miroir en trois façons

Sur la base de la création d'image existante (docker commit)

  • Voir les images existantes
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              6678c7c2e56c        2 weeks ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
centos              latest              470671670cac        2 months ago        237MB
[root@cloud ~]# 
  • Créez un conteneur et exécuter

[root@cloud ~]# docker create -it centos /bin/bash
7e750101b0eef5720205f6b4816d23f66815bb0bda5bc4f38935ad0fe03f80aa
[root@cloud ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
7e750101b0ee        centos              "/bin/bash"         14 seconds ago      Created                                 hopeful_dirac
[root@cloud ~]# docker start 7e750101b0ee
7e750101b0ee
[root@cloud ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
7e750101b0ee        centos              "/bin/bash"         40 seconds ago      Up 13 seconds                           hopeful_dirac
[root@cloud ~]# 
  • Créer un miroir sur le récipient
//-m指定该镜像的信息
//-a指定制作该镜像的作者
//centos:new 为镜像名和标签名
[root@cloud ~]# docker commit -m "new images" -a "androot" 7e750101b0ee centos:new
sha256:94b86b016dc0313e8e6d628d960e0910d130243674d585419b611a2c3e47920d

//查看新生成的镜像
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              new                 94b86b016dc0        5 seconds ago       237MB
nginx               latest              6678c7c2e56c        2 weeks ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
centos              latest              470671670cac        2 months ago        237MB
[root@cloud ~]# 

Créer un miroir local basé sur un modèle

  • Internet pour télécharger un module, le module téléchargé debian
wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz

 

  • Créer un miroir

[root@cloud ~]# ls
debian-7.0-x86-minimal.tar.gz  mysql
[root@cloud ~]# cat debian-7.0-x86-minimal.tar.gz | docker import - debian:local
sha256:72fa7440a81c379c884c4e43638a0bac3eef47c4f455a7f6746da4852abaa836
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              local               72fa7440a81c        2 minutes ago       215MB
centos              new                 94b86b016dc0        9 minutes ago       237MB
nginx               latest              6678c7c2e56c        2 weeks ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
centos              latest              470671670cac        2 months ago        237MB
[root@cloud ~]# 

importation docker: créer un miroir de l'archive

L'utilisation est comme suit:

Importer un fichier docker [OPTIONS] | URL | - Installation de stockage [TAG]

OPENTIONS Description:

-c: commande d'application de menu fixe pour créer un miroir

-m: légende lorsqu'il est soumis

image personnalisée basée Dockerfile

  • Créez un fichier dans la Dockerfile locale
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              local               72fa7440a81c        21 minutes ago      215MB
centos              new                 94b86b016dc0        28 minutes ago      237MB
nginx               latest              6678c7c2e56c        2 weeks ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
centos              latest              470671670cac        2 months ago        237MB
[root@cloud ~]# 

  • Création d'exécuter des scripts et interface web
[root@cloud docker]# pwd
/docker
[root@cloud docker]# vi run.sh
[root@cloud docker]# cat run.sh 
#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND

[root@cloud docker]# echo "this is web test" > index.html
[root@cloud docker]# ls
Dockerfile  index.html  run.sh
[root@cloud docker]# 

  • générer miroir
[root@cloud docker]# docker build -t new_httpd:centos .
。。。。。。
Successfully built bbbb46a6633e
Successfully tagged new_httpd:centos
[root@cloud docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
new_httpd           centos              bbbb46a6633e        46 seconds ago      414MB
debian              local               72fa7440a81c        31 minutes ago      215MB
centos              new                 94b86b016dc0        38 minutes ago      237MB
nginx               latest              6678c7c2e56c        2 weeks ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
centos              latest              470671670cac        2 months ago        237MB
[root@cloud docker]# 
  • L'utilisation de la création d'image et de l'exploitation du navire
[root@cloud docker]# docker run -d -p 1216:80 new_httpd:centos 
3147e2b184ada8128d4ed4dad219c139d2da84bca7036560168b0ad289d1fbb6
[root@cloud docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
3147e2b184ad        new_httpd:centos    "/run.sh"           6 seconds ago       Up 5 seconds        0.0.0.0:1216->80/tcp   lucid_blackwell
[root@cloud docker]# 

explication -p port spécifier le mappage, le trafic réseau suivant docker détaillé

  • conteneur de test, http: //123.57.242.90: 1216

deux instructions détaillées .Dockerfile

concept de Dockerfile

  • Dockerfile est utilisé pour construire fichier de construction en miroir de menu fixe, est une série de commandes et de paramètres, similaire à débourser des scripts
  • Dockerfile logiciel de matières premières et le miroir est docker livrables logiciels.
  • conteneurs Docker peuvent être considérés comme état de fonctionnement du logiciel
  • Chaque instruction Dockerfile mots réservés doit être suivi par des lettres majuscules et un paramètre
  • Dockerfile de chaque instruction va créer une nouvelle couche d'image et d'un miroir commettre

DE

  • 用法: DE <image>
  • DE base de construction pour spécifier la source des images dans l'image, si non spécifié miroir local, le miroir va tirer automatiquement du dépôt public Docker
  • DE doit être la première ligne de l'instruction de commentaire Dockerfile Afrique, la première instruction qui est Dockerfile doit commencer à partir de
  • S'il y a une demande doit créer plusieurs miroirs dans un Dockerfile, FROM peut apparaître plusieurs fois
  • Si la déclaration de RFOM ne spécifie pas la balise miroir, l'utilisation d'étiquettes par défaut dernière

MAINTAINER

  • 用法: MAINTAINER <name>
  • Créez un utilisateur pour spécifier le miroir

COURIR

  • commande d'action RUN doit être exécutée sur la base de l'image actuelle en tant que nouvelle image et soumettre miroir après RUN soumis avant la course suivante sont basées. Mirroring est en couches, peut être soumise par l'un des points pour créer une image historique, similaire au code source de contrôle de version
  • commande RUN mise en œuvre de deux manières

la première

  • RUN « script », « paramètre 1 » et « paramètre 2 »

la deuxième

  • RUN [ "sh", "- c", "echo", "$ HOME"]

Note: La prochaine fois que vous construisez le cache lorsque RUN est généré ne manque pas, il sera réutilisé, peut être utilisé construire docker --no-cache commande

CMD

  • commande CMD de Dockerfile utilisé qu'une seule fois dans le fichier, s'il y a plusieurs fois, seul le dernier fonctionnera
  • CMD but est de fournir une option de commande par défaut lorsque vous démarrez le conteneur. Indique la commande à exécuter si l'utilisateur démarre le conteneur, l'instruction de commande CMD remplacera
  • CMD est utilisé de trois façons
1.CMD "执行文件","参数1","参数2"
2.CMD "参数1","参数2"
3.CMD command 参数1 参数2(shell from)

Note: CMD se produira au démarrage conteneur, la construction n'est pas exécutée, et RUN effectuer que lorsque la construction d'un miroir, après une accumulation d'image ultérieure est terminée, le navire commencera quel que soit le RUN

EXPOSER

  • EXPOSE commande est désigné en dehors du conteneur Docker de mappage de port, vous devez exécuter dans le docker -p / -P prennent effet
  • utilisation EXPOSE: Expose <port> [<port> ...]

ENV

  • commande ENV pour spécifier une variable d'environnement, sera utilisé dans l'instruction ultérieure RUN et restent dans le moteur d'exécution de conteneurs
  • utilisation ENV
1.ENV <key> <value>    #只能设置一个变量
2.ENV <key>=<value>    #允许一次设置多个变量
  • Les exemples sont les suivants
##例子
ENV myName="John Doe" myDog=rex\the\dog \
myCat=fluffy
##等同于
ENV myName John Doe
ENV myDog Rex The Dog
ENV myCat fluffy

AJOUTER

  • ADD Copier le fichier hôte local, un répertoire ou d'un fichier distant urls ajouté au conteneur et le chemin d'accès spécifié
  • GO pris en charge par correspondance floue régulière, les règles spécifiques peuvent être trouvés dans Go filepath.Match
  • Road King Road King doit être absolue, sinon présent, crée automatiquement le répertoire correspondant
  • Road King doit être un chemin relatif où le chemin Dockerfile
  • Si elle est un répertoire, seul le contenu de la réplication d'annuaire et le répertoire lui-même ne sera pas copié
  • utilisation ADD: ADD <src> ... <test>

COPIE

  • COPY copier des fichiers ou des répertoires, et ajouté au chemin d'accès spécifié conteneur. Utilisation avec ADD, la seule différence est que vous ne pouvez pas spécifier un fichier distant URLS
  • COPIE Utilisation <src> .. <test>

POINT D'ACCÈS

  • commande de configuration après le démarrage du conteneur et ne peut pas être couverte paramètres d'exécution de docker fournis, et CMD peut être couverte. Si vous avez besoin de couverture, vous pouvez utiliser docker run --entrypoint
  • Chaque Dockerfile peut avoir qu'un seul ENTRYPOINT, lorsque vous spécifiez plus, seul le dernier travaillera
  • utilisation ENTRYPOINT
1.ENTRYPOINT "exectable","param1","param2"
2.ENTRYPOINT command param1 param2(shell from)

LE VOLUME

  • effet de volume est de monter l'appareil dans le récipient de répertoire cible ou un autre récipient monture point de montage pour monter le vaisseau cible
  • VOLUME Utilisation: VOLUME [ "/ data"]

UTILISATEUR

  • UID spécifie l'utilisateur ou lorsque le récipient est en cours d'exécution, RUN ultérieur, CMD, ENTRYPOINT également spécifié utilisateur
  • utilisation UTILISATEUR: démon UTILISATEUR

WORKDIR

  • WORKDIR pour RUN ultérieure, CMD, des instructions de Entrypoint pour configurer le répertoire de travail. WORKDIR pluralité d'instructions peut être utilisé, si le paramètre de suivi est une commande de chemin relatif, il précise basée sur la trajectoire de commande précédente
  • WORKDIR utilisé comme suit:
##例1
WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd
最终路径为/a/b/c
##WORKDIR指令可以在ENV设置变量之后调用环境变量
ENV DIRPATH /path
WORKDIR $DIRPATH/$DIRNAME
最终路径为/path/$DIRNAME

ONBUILD

  • utilisation ONBUILD: ONBUILD [INSTRUCTIONS]
  • Dockerfile en utilisant l'image générée A, ne pas exécuter la commande ONBUILD nouvelle fois en cas d'une image DOckerfile A en tant que l'image de base pour générer l'image B exécutera la commande ONBUILD
Publié 139 articles originaux · éloge de won 168 · vues 40000 +

Je suppose que tu aimes

Origine blog.csdn.net/qq_42761527/article/details/104976721
conseillé
Classement