Как показать команду запуска контейнера докера

Я использую сторонний GUI (пакет Synology Docker) для настройки контейнера докеров. Однако это ограничение заставляет меня запускать контейнер из командной строки. (Я хочу сопоставить другой IP-адрес хоста, чтобы связать порт)

Теперь, поскольку есть много настроек, которые уже были выполнены, я хотел бы получить исходную команду запуска, которая запускает этот контейнер, а затем я могу изменить порт сопоставления портов на новый. например. " docker run -p 80:8080 gitlab"

Я не могу найти способ сделать это, использование событий «докер-инспектор», никакой такой информации не предусмотрено.

Просьба дать некоторые рекомендации для решения этой проблемы.

docker,

40

Ответов: 9


52 ов принято

Итак, как отменить инженерную команду 0.1.2?

Существует репозиторий github, который пытается перестроить технику $ sudo pip install runlike # запустить образ ubuntu $ docker run -ti ubuntu bash $ docker ps -a # предположим, что вы получаете идентификатор контейнера 1dfff2ba0226 # Запускаете runlike, чтобы получить команду запуска docker. $ runlike 1dfff2ba0226 docker run --name = elated_cray -t команда Ubuntu bash, но в настоящее время она не идеальна, версия есть docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike YOUR-CONTAINER . Вы должны следовать за ним для обновления. Возможно, однажды вы сможете использовать его, чтобы получить правильную команду запуска с ним.

docker run

Репозиторий Github: runlike

Обновления:

Запуск без установки (спасибо @tilo)

$ npm i -g rekcod
$ rekcod redis_container

docker run -d --name redis_container --restart always -h a44159e148e1 
--expose 6379/tcp -e PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
-e REDIS_VERSION=3.0.7 -e REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-3.0.7.tar.gz 
-e REDIS_DOWNLOAD_SHA1=e56b4b7e033ae8dbf311f9191cf6fdf3ae974d1c 
--entrypoint "/entrypoint.sh" redis "redis-server"

12 ов

Я написал простой инструмент CLI на основе узлов для генерации docker runкоманды из существующего контейнера.

https://www.npmjs.com/package/rekcod

Вот пример:

$ docker inspect foo/bar
[
    {
        # a€¦
        "Config": {
            # a€¦
            "Cmd": [
                "/usr/local/bin/script.sh"
            ],
            # a€¦
        }
    }
]

Также обрабатывает ссылки и смонтированные тома и прочее.

На данный момент он не очень надежный, но обрабатывает больше, чем некоторые другие, упомянутые выше, и это было больше того, что я искал.


7 ов

Использовать докер-инспекцию :

$ docker inspect foo/bar | jq -r '.[0]["Config"]["Cmd"][0]'
/usr/local/bin/script.sh

Вы можете программно проанализировать это с помощью jq :

docker run

3

В настоящее время кажется, что нам нужно пройти «проверку докеров», а затем вручную воссоздать команду запуска.

Я нашел, что кто-то пытается написать сценарий bash, чтобы сделать это: https://gist.github.com/miracle2k/c85b7b077fdb8d54bc89

но он неполный и зависит от jq.


2

Более простая (?) Альтернатива заключается в том, чтобы запустить этот шаблон проверки докеров , который использует встроенные возможности Go templating для вывода docker runсовместимой команды. Шаблон охватывает только самые обычные параметры командной строки, но его можно легко расширить.

Это решение не имеет зависимости от других инструментов, кроме самого докера.

докер,
Похожие вопросы
Яндекс.Метрика