docker run start stop rm J'étais confus car je ne comprenais pas ces différences, alors je les ai organisées.

Je viens d'écrire la trajectoire pour résoudre la question, mais je l'ai également postée à la fin que j'ai trouvée dans le processus d'enquête [Cartoon](https://linuxhandbook.com/sigterm-vs-sigkill/#:~:text = Bien que% 20both% 20of% 20these% 20signals, ne peut pas% 20be% 20handled% 20or% 20blocked.) C'est intéressant donc je pense que ça vaut la peine d'être lu.

Confus

❯ docker-compose down && docker-compose build && docker-compose up -d

Lorsque j'ai essayé de lancer le conteneur avec, j'ai eu l'erreur suivante.

xxxxx is already in use by container XXXX. You have to remove (or rename) that container to be able to reuse that name.

Statut

J'ai fait quelques changements, donc j'ai vérifié le fonctionnement.

❯ docker-compose down && docker-compose build && docker-compose up -d

ERROR: error while removing network: network api_default id 60787690a4b735345074058c898ff548a05bb40620df966be71b49f199b3143d has active endpoints
❯ docker ps                                                                                               ✘ 1
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                                                          NAMES
f82550be9b32        my_fluent-bit   "/fluent-bit/bin/flu…"   55 minutes ago      Up 55 minutes       2020/tcp, 0.0.0.0:24224->24224/tcp, 0.0.0.0:24224->24224/udp   fluent-bit

Seul le conteneur fluent-bit fonctionne. Je ne peux pas docker-composer down parce qu'il a attrapé le réseau.

❯ docker stop fluent-bit
fluent-bit

encore une fois

❯ docker-compose down && docker-compose build && docker-compose up -d

Voici l'erreur d'ouverture

xxxxx is already in use by container XXXX. You have to remove (or rename) that container to be able to reuse that name.

Question J'ai vu cette erreur plusieurs fois, mais pourquoi est-ce que j'obtiens une erreur indiquant que le nom est utilisé alors qu'il n'y a pas de conteneur fonctionnel? ?? Je pensais qu'un conteneur est une instance exécutée en mémoire, créée à partir d'une image Docker créée en construisant un Dockerfile.

Rangé

Au fait, quand j'ai cherché Anki,

Un conteneur est une instance d'exécution d'une image. En d'autres termes, quelque chose qui passe de l'image à la mémoire et le fait réellement.

Il y avait. Si vous essayez google, la source est https://man.plustar.jp/docker/get-started/index.html C'est une page assez fiable, mais est-ce différent? Je me demande si cela a différentes significations.

Trouvez une solution à cette erreur

L'exécution de docker rm fluent-bit a résolu ce problème.

docker stop est inutile et doit être docker rm ...?

Déplacement de conteneurs, de conteneurs fixes et de conteneurs supprimés

docker stop preserves the container in the docker ps -a list (which gives the opportunity to commit it if you want to save its state in a new image).

J'en ai beaucoup quand j'ai fait docker ps -a, qu'est-ce que cette commande affiche?

-a is short form for --all. It shows all the containers both stopped and running. Normal docker ps shows only the running containers. When you provide the option -a, it shows all the containers. https://stackoverflow.com/questions/58869556/what-is-the-meaning-of-docker-ps-a

Alors c'est tout. Certains conteneurs sont en mouvement et certains sont stationnaires. Ensuite, il semble que ma perception était un peu fausse.

En regardant à nouveau l'instance ici, l'instance est quelque chose qui peut fonctionner avec de la mémoire créée à partir de ce que l'on peut dire être un dessin de conception tel que la classe et Dockerfile, et comme l'instance est une instance, il n'est pas toujours nécessaire de fonctionner avec la mémoire. J'ai compris qu'il n'y en avait pas.

Dans le domaine des logiciels, il s'agit d'un état dans lequel un programme informatique ou une structure de données prédéfinis est étendu sur la mémoire principale afin de pouvoir être traité et exécuté. http://e-words.jp/w/%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9.html

Il est dans un état où il peut être étendu sur la mémoire principale pour le traitement et l'exécution, mais cela ne signifie pas nécessairement qu'il est étendu sur la mémoire principale pour le traitement et l'exécution.

Ensuite, il est compréhensible que le conteneur en mouvement et le conteneur stationnaire soient tous deux appelés instances.

docker rm will remove the container from docker ps -a list, losing its "state" (the layered filesystems written on top of the image filesystem). It cannot remove a running container (unless called with -f, in which case it sends SIGKILL directly).

À propos, dans le document, l'explication de docker-compose down est la suivante.

Stops containers and removes containers, networks, volumes, and images created by up.

Après tout, supprimez-vous même?

comportement d'arrêt du docker du démarrage du docker

En d'autres termes, si seul l'arrêt est utilisé, l'instance ne sera pas supprimée. Pour exécuter à nouveau le conteneur arrêté, il existe une commande appelée docker start au lieu de docker run, vous devez donc l'utiliser.

Lors de la reconstruction, si vous voulez utiliser le même nom, vous devrez docker rm.

Si vous utilisez docker rm, le système de fichiers sera réinitialisé, mais si vous arrêtez docker, le système de fichiers du conteneur sera conservé tel quel.

docker run --name app -d app
docker exec -it app bash
mkdir aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

docker stop app

docker start app

root@63e4214977ef:/dir# ls
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

ici,

docker stop app

docker run --name app -d app

Savez-vous déjà quel type d'erreur vous obtenez?

"app" is already in use by container "63e4214977ef803a2ec8e0ab13c76cd051f0da10120c02c4642ea28ab07f9d6d". You have to remove (or rename) that container to be able to reuse that name.

J'obtiens l'erreur.

Au fait, à propos de l'arrêt de docker

Lorsque docker stop est exécuté, il semble que le démon docker envoie SIGTERM et SIGKILL à tous les processus du conteneur. Par conséquent, même s'il existe de nombreux conteneurs à l'état arrêté, il ne semble y avoir aucun effet indésirable sur la machine hôte autre que la capacité de l'hôte en cours de compression.

Il y avait un dessin animé très intéressant expliquant la différence entre SIGTERM et SIGKILL, alors lisez-le! ↓ https://linuxhandbook.com/sigterm-vs-sigkill/#:~:text=Though%20both%20of%20these%20signals,cannot%20be%20handled%20or%20blocked.

Regarder en arrière

Au début,

Pourquoi est-ce que j'obtiens une erreur indiquant que le nom est utilisé lorsqu'il n'y a pas de conteneur fonctionnel? ?? Je pensais qu'un conteneur est une instance exécutée en mémoire, créée à partir d'une image Docker créée en construisant un Dockerfile.

On peut dire que la question s'est posée parce que je n'étais pas conscient de la différence entre l'arrêt du conteneur et rm.

Je suis content de l'avoir résolu.

Recommended Posts

docker run start stop rm J'étais confus car je ne comprenais pas ces différences, alors je les ai organisées.