Действительно ли docker container rm и docker container kill достигают того же?

Основываясь на ваших пояснениях, один из ответов - "сценарии оболочки". Даже для меня это звучит как язвительный ответ, но на самом деле этого не должно быть, я просто не знаю, как лучше сформулировать это. В итоге вы получите сценарий, который выглядел бы примерно так:

#!/bin/bash
java -jar <jarfile> -option1 -option2 --extended-option-1

Вы также можете добавить $ * в конец строки java -jar , чтобы передать любой параметр, который вы указали. сам сценарий к команде java .

2
31.03.2019, 00:22
2 ответа

Если вы запускаете контейнер..

например

docker run alpine echo hello

Похоже, после этого он очищается...

% docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Но это не так, оно все еще здесь.

% docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
3a4772c0f165        alpine              "echo hello"        22 seconds ago      Exited (0) 20 seconds ago                       relaxed_ramanujan

Это можно исправить с помощью команды rm

% docker container rm 3a4772c0f165 
3a4772c0f165

% docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Так:

  • docker killубьет контейнер.
  • docker rmочистит завершенный контейнер.

Это разные вещи.

Примечание :вы можете настроить контейнеры на автоматическую -очистку:

% docker run --rm alpine echo hello
hello

% docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Тогда вам не нужно rmвручную.

10
27.01.2020, 21:51

Контейнер (не менее):

  • запущенные процессы
  • верхний эфемерный слой, в его файловую -систему.
  • сопоставления томов и сетей.

Kill касается только первого.

Если вы запускаете с опцией --rm. Затем остановка или уничтожение контейнера также удалит его.

Вы не должны использовать kill (, если вам не нужно ), docker stopотправлять SIGTERM. (Если вам нужно отправить сигнал SIGKILL процессу, значит, он плохо себя ведет и требует исправления.)

7
27.01.2020, 21:51

Теги

Похожие вопросы