質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

1428閲覧

javaからdockerを起動する方法

swift_dev_1989

総合スコア24

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2018/10/01 10:15

編集2018/10/02 00:22

やりたいことは下記です。

Webアプリを実装しています(Javaにて実装中)

ボタン押下にてdockerのあるコンテナをrunする。

コマンドでは下記にて簡単に実行できますが、Webからどうすればよいのでしょうか。

$ docker run xxxxxxxx

コマンドはexec関数を使用できるようですが
こんな感じでしょうか。

Runtime r = Runtime.getRuntime();
Process process = r.exec("docker run xxxxxxxx");

ただ上記だと起動は出来ませんでした。

根本的に何か違う方法でも構いません。
よろしくお願いします。

また docker ps にてコンテナIDの一覧も取得したいです。
方法分かる方ご教授いただけないでしょうか。

java

1 Runtime r = Runtime.getRuntime(); 2 Process process = r.exec("docker ps"); 3 try { 4 process.waitFor(); // プロセスの正常終了まで待機させる 5 } catch (InterruptedException e) { 6 e.printStackTrace(); 7 } 8 9 InputStream is = process.getInputStream(); 10 11 BufferedReader br = new BufferedReader(new InputStreamReader(is)); 12 try { 13 for (;;) { 14 br.readLine();15 } 16 } finally { 17 br.close(); 18 }

コードは上記となります。

dockerを起動するだけならシェルスクリプトに記載して
それをたたくなどの方がよいのでしょうか。

ただ起動しているコンテナ一覧を取得したいので
シェルスクリプトなら戻り値が取れないのかなと思っています。

dockerに限らず、Webから例えばどこかの階層のファイル一覧($ls -l でコマンドなら表示できる情報)を
取得するには一般的にどのような方法があるのでしょうか。
調べた限り分かりませんでした。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/01 23:44

エラー(コード含む)が取得できるはずなので取得して追記してください
swift_dev_1989

2018/10/02 00:23

追記致しました。dockerに限らず、Webから例えばどこかの階層のファイル一覧($ls -l でコマンドなら表示できる情報)を 取得するには一般的にどのような方法があるのでしょうか。 調べた限り分かりませんでした。 よろしくお願いいたします。
guest

回答1

0

ベストアンサー

起動しているコンテナ一覧を取得

https://docs.docker.com/develop/sdk/#sdk-and-api-quickstart
APIがあるので、そちらを叩くことで情報を取得できるかと。

https://github.com/amihaiemil/docker-java-api

投稿2018/10/02 00:44

t_obara

総合スコア5488

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問