2016-05-11 17 views
0

私は、現在稼働中の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)の中で基本コマンドを実行する必要があります。

  1. 私は対話型シェルでコマンドを実行しようとしましたが、問題は、私が戻ってくるとKarafコンテナが停止した場合、ドッカーシェルに戻れません。

Docker内で実行されているKarafでコマンドを実行するにはどうすればよいですか?

+0

あなたは 'docker exec -it container_id bash'を試してからコマンドを起動しましたか? doc https://docs.docker.com/engine/reference/commandline/exec/ – user2915097

+0

と、 'docker run Karaf bash'は新しいコンテナを起動しますが、実行中のKarafコンテナには入りません。 – user2915097

+0

もしそうならexecやrunによって私はkarafシェルに入ることができますが、私がドッカーシェルに到達しようとすると私はログアウトする必要があります(これはKarafサーバーを停止します)。ハンドルはドッカーコンテナになります。 – mnsndr

答えて

0

docker-Karaf Imageにssh'ingして、そこからシェルコマンドを発行するのはどうですか?しかし、あなたはsshのエクスポート用のポートことを持っていることを確認する:

EXPOSE 8081 
0

ご使用のホスト・マシン8101からkarafにアクセスする必要がありますと、コンテナ内で使用されるポートです。 -dオプションを使用して、その背景には、このコンテナを実行することができ、インタラクティブモード

docker run -it -p 8101:8080 mkroli/karaf 

で容器を実行するには、このコマンドを実行してください。

関連する問題