Creating your first Dockerfile, image and container
Table des matières:
- Docker Run Command
- Exécutez le conteneur au premier plan
- Exécutez le conteneur en mode détaché
- Retirez le conteneur après la sortie
- Définissez le nom du conteneur
- Publication de ports conteneurs
- Partager des données (monter des volumes)
- Exécutez le conteneur de manière interactive
- Conclusion
Docker est une plate-forme qui vous permet de développer, tester et déployer des applications en tant que conteneurs portables et autonomes qui s'exécutent pratiquement n'importe où.
La commande
docker run
crée un conteneur à partir d'une image donnée et démarre le conteneur à l'aide d'une commande donnée. C'est l'une des premières commandes avec lesquelles vous devez vous familiariser lorsque vous commencez à travailler avec Docker., nous utiliserons l'image officielle Nginx pour montrer différentes façons d'exécuter un conteneur Docker.
Docker Run Command
La commande
docker run
prend la forme suivante:
docker run IMAGE
Le nom de l'image à partir de laquelle le conteneur doit être créé est le seul argument requis pour la commande
docker run
. Si l'image n'est pas présente sur le système local, elle est extraite du registre.
Si aucune commande n'est spécifiée, la commande spécifiée dans les instructions
CMD
ou
ENTRYPOINT
est exécutée lors de l'exécution du conteneur.
Depuis la version 1.13, la Docker CLI a été restructurée et toutes les commandes ont été regroupées sous l'objet avec lequel elles interagissent.
Étant donné que la commande
run
interagit avec les conteneurs, il s'agit désormais d'une sous-commande du
docker container
. La syntaxe de la nouvelle commande est la suivante:
docker container run IMAGE
L'ancienne syntaxe antérieure à 1.13 est toujours prise en charge. Sous le capot, la commande
docker run
est un alias de
docker container run
. Les utilisateurs sont encouragés à utiliser la nouvelle syntaxe de commande.
Une liste de toutes les options d'
docker container run
Docker se trouve sur la page de documentation Docker.
Exécutez le conteneur au premier plan
Par défaut, lorsqu'aucune option n'est fournie à la commande
docker run
, le processus racine est démarré au premier plan. Cela signifie que l'entrée, la sortie et l'erreur standard du processus racine sont attachées à la session de terminal.
docker container run nginx
La sortie du processus nginx sera affichée sur votre terminal. Comme il n'y a pas de connexion au serveur Web, le terminal est vide.
Pour arrêter le conteneur, terminez le processus Nginx en cours en appuyant sur
CTRL+C
Exécutez le conteneur en mode détaché
Pour garder le conteneur en cours d'exécution lorsque vous quittez la session de terminal, démarrez-le en mode détaché. Ceci est similaire à l'exécution d'un processus Linux en arrière-plan.
Utilisez l'option
-d
pour démarrer un conteneur détaché:
docker container run -d nginx
050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa
Le conteneur détaché s'arrêtera à la fin du processus racine.
Vous pouvez répertorier les conteneurs en cours d'exécution à l'aide de la commande
docker container ls
.
Pour attacher votre terminal au processus racine du conteneur détaché, utilisez la commande
docker container attach
.
Retirez le conteneur après la sortie
Par défaut, lorsque le conteneur se ferme, son système de fichiers persiste sur le système hôte.
Les options
--rm
indiquent
docker run
commande
--rm
docker run
de supprimer le conteneur lorsqu'il se ferme automatiquement:
docker container run --rm nginx
L'image Nginx n'est peut-être pas le meilleur exemple pour nettoyer le système de fichiers du conteneur après la fermeture du conteneur. Cette option est généralement utilisée sur les conteneurs de premier plan qui effectuent des tâches à court terme telles que des tests ou des sauvegardes de base de données.
Définissez le nom du conteneur
Dans Docker, chaque conteneur est identifié par son
UUID
et son nom. Par défaut, s'il n'est pas explicitement défini, le nom du conteneur est généré automatiquement par le démon Docker.
Utilisez l'option
--name
pour attribuer un nom personnalisé au conteneur:
docker container run -d --name my_nginx nginx
Le nom du conteneur doit être unique. Si vous essayez de démarrer un autre conteneur avec le même nom, vous obtiendrez une erreur similaire à ceci:
docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.
Exécutez le
docker container ls -a
pour répertorier tous les conteneurs et voir leurs noms:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx
Les noms significatifs sont utiles pour référencer le conteneur dans un réseau Docker ou lors de l'exécution de commandes CLI docker.
Publication de ports conteneurs
Par défaut, si aucun port n'est publié, le processus en cours d'exécution dans le conteneur n'est accessible que depuis l'intérieur du conteneur.
La publication de ports signifie mapper les ports de conteneur aux ports de la machine hôte afin que les ports soient disponibles pour les services en dehors de Docker.
Pour publier un port, utilisez les options
-p
comme suit:
-p host_ip:host_port:container_port/protocol
- Si aucun
host_ip
n'est spécifié, sa valeur par défaut est0.0.0.0
. Si aucunprotocol
n'est spécifié, sa valeur par défaut est TCP. Pour publier plusieurs ports, utilisez plusieurs options-p
.
Pour mapper le port TCP 80 (nginx) du conteneur au port 8080 sur l'interface hôte locale, vous devez exécuter:
docker container run --name web_server -d -p 8080:80 nginx
Vous pouvez vérifier que le port est publié en ouvrant
http://localhost:8080
dans votre navigateur ou en exécutant la commande
curl
suivante sur l'hôte Docker:
curl -I
La sortie ressemblera à ceci:
HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes
Partager des données (monter des volumes)
Lorsqu'un conteneur est arrêté, toutes les données générées par le conteneur sont supprimées. Les volumes Docker sont le moyen préféré de faire persister les données et de les partager sur plusieurs conteneurs.
Pour créer et gérer des volumes, utilisez les options
-p
comme suit:
-v host_src:container_dest:options
- Le
host_src
peut être un chemin absolu vers un fichier ou un répertoire sur l'hôte ou un volume nommé. Lecontainer_dest
est un chemin absolu vers un fichier ou un répertoire sur le conteneur. Leshost_src
peuvent êtrerw
(lecture-écriture) etro
(lecture seule)). Si aucune option n'est spécifiée, elle est par défautrw
.
Pour expliquer comment cela fonctionne, créons un répertoire sur l'hôte et y mettons un fichier
index.html
:
mkdir public_html
echo "Testing Docker Volumes" > public_html/index.html
Ensuite, montez le répertoire
public_html
dans
/usr/share/nginx/html
dans le conteneur:
docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx
Au lieu de spécifier le chemin absolu du répertoire
public_html
, nous utilisons la commande
$(pwd)
, qui imprime le répertoire de travail actuel.
Maintenant, si vous tapez
http://localhost:8080
dans votre navigateur, vous devriez voir le contenu du fichier
index.html
. Vous pouvez également utiliser
curl
:
curl
Exécutez le conteneur de manière interactive
Lorsque vous traitez avec des processus interactifs comme
bash
, utilisez les options
-i
et
-t
pour démarrer le conteneur.
L'option
-it
indique à Docker de conserver l'entrée standard attachée au terminal et d'allouer un pseudo-tty:
docker container run -it nginx /bin/bash
Le shell Bash du conteneur sera attaché au terminal et l'invite de commande changera:
root@1da70f1937f5:/#
Maintenant, vous pouvez interagir avec le shell du conteneur et exécuter n'importe quelle commande à l'intérieur de celui-ci.
Dans cet exemple, nous avons fourni une commande (
/bin/bash
) comme argument à la commande
docker run
qui a été exécutée au lieu de celle spécifiée dans le Dockerfile.
Conclusion
Docker est la norme pour l'empaquetage et le déploiement d'applications et un composant essentiel de CI / CD, de l'automatisation et de DevOps.
La commande d'exécution du conteneur Docker est utilisée pour créer et exécuter des conteneurs Docker.
dockerMicrosoft profite en vendant des publicités en ligne sur son moteur de recherche à des gangs criminels gérant des sites Web pharmaceutiques offrant des médicaments Selon une nouvelle étude, Microsoft vend des publicités en ligne sur son moteur de recherche à des gangs criminels qui gèrent des sites Web pharmaceutiques offrant des médicaments à des personnes sans ordonnance adéquate.

Environ 89,7% des Selon le rapport, les pharmacies qui paient des publicités sur le dernier moteur de recherche de la société, Bing.com, sont frauduleuses ou se livrent à des activités illégales. KnujOn, une compagnie antispam, et LegitScript, qui offre un service qui vérifie la légitimité de certaines pharmacies en ligne, ont publié le rapport.
Microsoft prend au sérieux les allégations selon lesquelles des partenaires commerciaux se livrent à des pots-de-vin pour obtenir des marchés publics dans trois pays en dehors des États-Unis, le Microsoft a pris mardi au sérieux les accusations selon lesquelles des partenaires commerciaux se seraient livrés à des pots-de-vin pour obtenir des marchés publics dans trois pays en dehors des Etats-Unis, a annoncé mardi le Wall Street Journal. la Securities and Exchange Commission des États-Unis enquê

[Lectures supplémentaires: Votre nouvel ordinateur a besoin de ces 15 programmes gratuits et excellents]
Télécharger des exemples de code gratuits sur la programmation parallèle avec Microsoft .NET

Programmation parallèle avec Microsoft .NET: Modèles de conception pour la décomposition et la coordination multicœur Architectures est un livre sur la programmation parallèle.