@nekolov

Как найти причину не удачного запуска своего docker контейнера?

Вечер добрый,

Cоздал простенький контейнер на основе дистрибутива Linux Alpine добавил несколько мне необходимых утилит:
docker build -t username/scaner:v0.1 .

Проверяю что образ был удачно создан:
docker images

после пробую запустить его в фоне:
docker run -d MYIMAGEID sh

Вопросы:
1. Дело в том что после запуска я вижу id вновь созданного контейнера но в списке активных(ps) его нет, зато он висит в списке остановленных(ps -a). Как посмотреть все логи при запуске чтобы понять в чем проблема, ниже привожу мой конфиг, возможно кому то станет сразу ясно в чем проблема.

2. Мне требуется добавить в свой образ мой скрипт написанный на Python но на git его нет, думаю как грамотней это сделать, добавить скрипт и после сделать просто commit?

Dockerfile
# This is a comment
FROM mhart/alpine-node
MAINTAINER Kate Smith <ksmith@example.com>

RUN apk update
RUN apk add nmap git 
RUN git clone https://github.com/vulnersCom/nmap-vulners.git

RUN apk add --no-cache \
	ca-certificates \
	libpcap-dev

ENV MASSCAN_VERSION 1.0.5

RUN set -x \
	&& apk add --no-cache --virtual .build-deps \
		build-base \
		clang \
		clang-dev \
		git \
		linux-headers \
	&& rm -rf /var/lib/apt/lists/* \
	&& git clone --depth 1 --branch "$MASSCAN_VERSION" https://github.com/robertdavidgraham/masscan.git /usr/src/masscan \
	&& ( \
	cd /usr/src/masscan \
	&& make \
	&& make install \
	) \
	&& rm -rf /usr/src/masscan \
	&& apk del .build-deps
  • Вопрос задан
  • 293 просмотра
Пригласить эксперта
Ответы на вопрос 2
kumaxim
@kumaxim
Web-программист
1. Дело в том что после запуска я вижу id вновь созданного контейнера но в списке активных(ps) его нет, зато он висит в списке остановленных(ps -a). Как посмотреть все логи при запуске чтобы понять в чем проблема, ниже привожу мой конфиг, возможно кому то станет сразу ясно в чем проблема.

Смотри, когда ты запускаешь docker run... твой только что созданный контейнер выполнит команду, указанную после имени образа. Эта команда отработает, сделает какой-то результат и завершиться. Поскольку внитри твоего контейнера больше нет никаких активных процессов, докер остановит твой контейнер за ненадобностью. Именно так он работает. Если хочешь посмотреть логи своего контейнера, тогда смотри мануал по команде docker logs

2. Мне требуется добавить в свой образ мой скрипт написанный на Python но на git его нет, думаю как грамотней это сделать, добавить скрипт и после сделать просто commit?

Если тебе надо образ собрать один раз на своей локальной машине, тогда смотри мануал по ADD/COPY. Если же тебе этот образ надо будет собирать на CI-сервере или он понадобится твоим коллегам в дальнейшем - выкладывай на git
Ответ написан
Комментировать
@Norkotik
Копать в сторону PID=1, как только процес с этим пид завешается, контейнер гаснет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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