Comment Docker personnalise-t-il l'image ?
1. Pour utiliser la technologie Docker, vous devez d'abord installer le package Docker
Cette fois, j'ai utilisé docker-engine-1.12.1-1. .centos.x86_64.rpm ; la technologie Docker est basée sur le système sous-jacent de la machine locale. Au-dessus du système, les applications sont empaquetées et livrées. Il permet de démarrer des conteneurs aussi rapidement qu'un processus.
Basé sur la technologie Docker, les environnements système minimum requis peuvent être encapsulés sous forme de miroir et démarrés comme un processus.
2. Créez une image Docker personnalisée
Téléchargez d'abord une image Docker depuis le site officiel de Docker
docker search docker docker pull docker
Les images sur le site officiel Le site Web est tout Il s'agit d'une installation minimale, vous devez donc d'abord configurer une source yum, installer le logiciel habituel dans l'image centos et démarrer httpd et sshd Les opérations spécifiques sont les suivantes :
yum -y install docker-engine-1.12.1-1.el7.centos.x86_64.rpm mkdir testcd testtouch Dockerfile vim Dockerfile FROM centos:latest RUN rm -f /etc/yum.repos.d/* ADD centos7.repo /etc/yum.repos.d/centos7.repo RUN yum -y install httpd openssh-server net-tools bash-completion.noarch \ iproute vim-enhanced EXPOSE 80 22 RUN echo "123456" |passwd --stdin root RUN /usr/sbin/sshd-keygen ENV EnvironmentFile=/etc/sysconfig/sshd WORKDIR /var/www/html RUN echo "<h1><font color=red>this is centos1:httpd">index.html ENV EnvironmentFile=/etc/sysconfig/httpd ADD qd.sh /root/qd.sh CMD ["/root/qd.sh"] :wq
.
Remarque :
EXPOSE spécifie quels ports du conteneur ouvert ;
ADD transfère les fichiers du répertoire actuel vers le répertoire spécifié dans le conteneur ; il doit s'agir du chemin actuel
RUN fait référence ; à exécuter dans le conteneur Which commands;
FROM spécifie l'image source, c'est-à-dire sur quelle image cette image est basée.
WORKDIR est le répertoire de travail dans le conteneur spécifié, ce qui est équivalent à la commande cd dans le système centos
ENV consiste à définir la variable d'environnement
CMD spécifie la première commande à exécuter après le démarrage du conteneur . Vous devez utiliser [] séparés par des guillemets. S'il y a des options, séparez-les par des virgules, par exemple : ["/usr/sbin/sshd", "-D"]
Le fichier créé doit être appelé Dockerfile<. 🎜>Si vous avez envie d'écrire ces commandes manuellement, comparez C'est compliqué. Vous pouvez saisir l'image de base pour exécuter diverses commandes, puis utiliser l'historique pour afficher les commandes, utiliser la commande cp et la remplacer par le format correspondant ci-dessus.
3. Écrivez le script de démarrage Étant donné que le CMD de l'image docker est la première commande par défaut à exécuter après le démarrage du conteneur, vous ne pouvez que écrivez dans la commande CMD A, et dans ce cas, nous voulons démarrer deux programmes sshd et httpd, nous devons donc écrire un script et laisser CMD exécuter le script directement.
vim qd.sh#!/bin/bash/usr/sbin/sshd -D & /usr/sbin/httpd -DFOREGROUND :wq
4 Pour créer un miroir, doit être exécuté dans le répertoire courant
.
docker build -t wang:sh2 .
5. Démarrez l'image et mappez le port du conteneur
docker run -d -p 80:80 -p 2022:22 wang:sh2
6. Vérification d'accès
firefox http://192.168.1.194(物理机) ssh -p 2022 192.168.1.194
7. ExtensionVous pouvez également créer d'abord un miroir du service sshd, puis créer un conteneur httpd basé sur l'image sshd :
im Dockerfile FROM wang:sshd RUN yum -y httpd EXPOSE 80 22ENV EnvironmentFile=/etc/sysconfig/httpd WORKDIR /var/www/html RUN echo "<h1><font color=red>this is httpd and sshd">index.html ADD qd.sh /root/qd.sh CMD ["/root/qd.sh"] :wq
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!