Основываясь на ваших пояснениях, один из ответов - "сценарии оболочки". Даже для меня это звучит как язвительный ответ, но на самом деле этого не должно быть, я просто не знаю, как лучше сформулировать это. В итоге вы получите сценарий, который выглядел бы примерно так:
#!/bin/bash
java -jar <jarfile> -option1 -option2 --extended-option-1
Вы также можете добавить $ *
в конец строки java -jar
, чтобы передать любой параметр, который вы указали. сам сценарий к команде java
.
Если вы запускаете контейнер..
например
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
вручную.
Контейнер (не менее):
Kill касается только первого.
Если вы запускаете с опцией --rm
. Затем остановка или уничтожение контейнера также удалит его.
Вы не должны использовать kill (, если вам не нужно ), docker stop
отправлять SIGTERM. (Если вам нужно отправить сигнал SIGKILL процессу, значит, он плохо себя ведет и требует исправления.)