Я настраиваю в настоящее время Apache karaf внутри контейнера докера. Я использовал следующий код для создания изображения докеров.Как выполнить команды на работе Karaf внутри Docker?
FROM java:8-jdk
MAINTAINER mkroli
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64
ENV KARAF_VERSION=4.0.5
RUN wget http://apache.openmirror.de/karaf/${KARAF_VERSION}/apache-karaf-${KARAF_VERSION}.tar.gz; \
mkdir /opt/karaf; \
tar --strip-components=1 -C /opt/karaf -xzf apache-karaf-${KARAF_VERSION}.tar.gz; \
rm apache-karaf-${KARAF_VERSION}.tar.gz; \
mkdir /deploy; \
sed -i 's/^\(felix\.fileinstall\.dir\s*=\s*\).*$/\1\/deploy/' /opt/karaf/etc/org.apache.felix.fileinstall-deploy.cfg
VOLUME ["/deploy"]
EXPOSE 1099 8101 44444
ENTRYPOINT ["/opt/karaf/bin/karaf"]
В моем контейнере-докере работает Karaf. После запуска Karaf мне нужно запустить основные команды внутри karaf (пример: список, функция: установить), чтобы я мог установить мои функции/пакеты и перечислить их.
- Я попытался запустить команды в интерактивной оболочке, но проблема в том, что я не могу вернуться к оболочке докера, если я вернусь, контейнер Karaf будет остановлен.
Как я могу выполнять команды по работе с Karaf внутри Docker?
Вы попробовали 'docker exec -it container_id bash', а затем запустили свои команды? doc https://docs.docker.com/engine/reference/commandline/exec/ – user2915097
и имейте в виду, что 'docker run Karaf bash' запускает новый контейнер, он не попадает в ваш контейнер Karaf – user2915097
Если я это сделаю поэтому с помощью exec или run я могу попасть в оболочку karaf, но если я попытаюсь добраться до оболочки докера, мне нужно выйти из системы (что останавливает сервер Karaf), и дескриптор попадает в контейнер докеров. – mnsndr