Maison  >  Article  >  Opération et maintenance  >  Comment Docker personnalise les images

Comment Docker personnalise les images

WJ
WJoriginal
2020-06-08 17:06:143506parcourir

Comment Docker personnalise les images

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

chmod +x qd.sh //Ajouter des autorisations d'exécution


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

Mappez le port 80 du conteneur au port 80 de la machine physique, et mappez le port 22. du conteneur vers le port de la machine physique 2022.


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

Références associées :

tutoriel docker

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn