私は、現在稼働中のApache karafをドッキング・コンテナ内にセットアップしています。私はドッカーイメージを作成するために次のコードを使用しました。Dockerで実行中のKarafでコマンドを実行するにはどうすればよいですか?
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"]
My Dockerコンテナには、カラフが動作しています。 Karafが起動したら、私は自分の機能/バンドルをインストールしてリストするために、karaf(例:list、feature:install)の中で基本コマンドを実行する必要があります。
- 私は対話型シェルでコマンドを実行しようとしましたが、問題は、私が戻ってくるとKarafコンテナが停止した場合、ドッカーシェルに戻れません。
Docker内で実行されているKarafでコマンドを実行するにはどうすればよいですか?
あなたは '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