Как я могу переопределить CMD при выполнении изображения докера?

Я заметил, что у Вас есть два namservers, перечисленные для opencraft.org:

$ dig -t ns opencraft.org

; <<>> DiG 9.4.3-P3 <<>> -t ns opencraft.org
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1394
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2

;; QUESTION SECTION:
;opencraft.org.         IN  NS

;; ANSWER SECTION:
opencraft.org.      86400   IN  NS  ns1.vivitec.com.au.
opencraft.org.      86400   IN  NS  ns2.vivitec.com.

;; ADDITIONAL SECTION:
ns2.vivitec.com.    1685    IN  A   76.74.253.37
ns1.vivitec.com.au. 1685    IN  A   111.223.232.30

;; Query time: 88 msec
;; SERVER: 68.87.76.182#53(68.87.76.182)
;; WHEN: Sun Apr 24 18:11:03 2011
;; MSG SIZE  rcvd: 124

Когда я запрашиваю первый сервер имен непосредственно для www.opencraft.org, я добираюсь: 111.223.232.30, когда я поразил Ваш второй сервер имен, мне говорят перейти в: 76.74.253.37. Смотря на записи выше, кажется, что Вы заставили хост www решить к тому же IP-адресу как сервер DNS.

Это говорит мне, что Вы не выполняете конфигурацию DNS "главный-подчиненный", и похож на Вас, делают попытку некоторой основанной на гео-IP конфигурации.

При обновлении этих записей недавно необходимо будет ожидать их для распространения к кэшированию серверов имен по всей сети.

127
задан 10 May 2014 в 15:59
3 ответа

Вы можете просто войти через docker run -it --entrypoint = / bin / bash $ IMAGE -i (вы запустите новый контейнер из образа и получите оболочку bash в интерактивном режиме), затем запустите команду точки входа в этом контейнере.

Затем вы можете проверить работающий контейнер в том состоянии, в котором он должен работать.

РЕДАКТИРОВАТЬ: Начиная с Docker 1.3 вы можете использовать exec для запуска процесса в работающем контейнере. Запустите свой контейнер, как обычно, а затем введите его, введя:

docker exec -it $ CONTAINER_ID / bin / bash

Предполагая, что bash установлен, вам будет предоставлен доступ оболочки к работающему контейнеру.

132
ответ дан 28 November 2019 в 19:19

Смотри: https://docs.docker.com/engine/reference/run/#overriding-dockerfile-image-defaults

Соответствующая часть:

CMD (команда или опции по умолчанию) Вспомните необязательный COMMAND в командной строке Docker:

$ docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]

Эта команда является необязательной, поскольку человек, создавший IMAGE, возможно, уже предоставил COMMAND по умолчанию с помощью Dockerfile CMD. В качестве оператора (человека, выполняющего контейнер с образа), вы можете переопределить этот CMD, просто указав новый COMMAND.

Если образ также указывает ENTRYPOINT, то CMD или COMMAND добавляется в качестве аргументов к ENTRYPOINT.

Итак, чтобы сделать то, что вам нужно, вы должны только указать cmd, а переопределить его, используя /bin/bash. Не совсем "пусто", но получится 99%.

.
28
ответ дан 28 November 2019 в 19:19

Յուրաքանչյուրի համար, ով այստեղ է գալիս մուտքի կետը չեղյալ համարելու համար և հրամանը փոխանցում է այլ հրաման, օրինակ. գործարկել bash ելակետային սցենարի փոխարեն և ապա գործարկել պարամետրերով մի քանի այլ հրաման (ինձ համար պարզ չէր այլ պատասխաններից).

 docker run [other options] --entrypoint '/bin/sh' $IMAGE -c 'npm link gulp gulp-sass gulp-sourcemaps'

-c 'npm link ...' պարամետր է / bin / sh- ի համար այնպես որ այստեղ դուք կարող եք փոխանցել ցանկացած հրաման, որը կցանկանաք գործարկել տարայի մեջ: / bin / sh ալպյան պատկերների համար է, / bin / bash , ամենայն հավանականությամբ, այլ պատկերների համար:

17
ответ дан 28 November 2019 в 19:19

Теги

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