2016-07-21 86 views
2

我試過使用docker。我安裝工具docker並運行。我卸載了Ubuntu鏡像並在Docker上運行。我做所有這link如何在Docker上安裝java到ubuntu?

對於安裝ubuntu我以前docker run -it ubuntu bash

後,我跑這個Ubuntu的docker run -i -t ubuntu:latest /bin/bash

開始我把[email protected]:/#

現在我想安裝java和啓動一些應用程序後這個java。

我試圖安裝java [email protected]:/# apt-get install default-jre

當此安裝我嘗試運行此命令java -version,我看到

[email protected]:/# java -version 
openjdk version "1.8.0_91" 
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-0ubuntu4~16.04.1-b14) 
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) 

,我退出之後,從Ubuntu的

[email protected]:/# exit 

,並再次運行。當Ubuntu的開始我試試

[email protected]:/# java -version 
bash: java: command not found 

我該如何安裝java或啓動這個Java版本?

+0

你試圖用一個碼頭工人容器像一個普通的虛擬機?這不是真的如何運作。你應該寫一個'Dockerfile',以你想要的基本Ubuntu鏡像開始,安裝Java,拷貝你的應用程序並設置它運行。 – jonrsharpe

+0

@jonrsharpe行。比方說,我已經創建了一個文件泊塢窗。那我用它做什麼?我想這是如此 - 我運行碼頭工人。安裝所有需要的程序(java,db,一些實用程序)。測試它的工作原理。如果一切順利,我會創建一個圖像。然後我將該圖像安裝在另一臺計算機上的另一個泊塢窗中。 – user5620472

+0

在Docker中,數據不會保留在容器中,除非它與映射到文件系統的卷相關聯。 –

回答

0

你將有運行容器上安裝Java之後安裝Ubuntu.Try以下之後提交更新後的圖像:

docker ps -l #get current container ID , let's sat it is "container_id" 

然後:

docker commit container_id ubuntu_with_java 

這將創建一個新的圖像名稱爲「ubuntu_with_java」。

+2

[*「一般情況下,最好是使用Dockerfiles在記錄和維護的方式來管理您的圖片。*](https://docs.docker.com/engine/reference/commandline/commit/) – jonrsharpe

1

爲什麼不使用官方Java圖像,或高山的Java,只是把你的Dockerfile

FROM java

FROM anapsix/alpine-java

?你已經安裝了一個功能性的Java,可以做你想做的任何事情。

http://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=java&starCount=0

的某些與Java從泊塢窗樞紐

你應該閱讀jonrsharpe

+0

我怎樣才能編輯dockerfile? – user5620472

+0

與任何文本編輯器,vim,emacs,vi,gedit,geany,kate ... – user2915097

+0

當你使用Windows時,記事本++是一個很好的編輯器 – user2915097

0

的容器是一個包含的實體提供了良好的聯繫。當您退出並重新啓動時,所做的所有更改實質上都會丟失。有2個解決方案,他雖然:

  1. 做正確,並在您Dockerfile,添加Java的運行apt-get線 或
  2. (壞壞人壞事)加入,並希望您的主機永不熄滅下。

取決於你想要的(Ubuntu或者一個容器來運行一個Java應用程序)的東西,您應該使用方法1或創建一個新的Dockerfile,抓住FROM Java8基本圖像。