使用Docker 安装jdk8
拿到新的服務器后,第一步就是先搞定環境了,這里是安裝docker環境后,開始安裝服務器的軟件。
安裝jdk8:
1. 拉取jdk鏡像
這里使用的是我原來打包的jdk鏡像,上傳到服務器的/usr/目錄下了
2. 導入鏡像
使用命令:docker load -i 鏡像絕對路徑
這里直接使用:docker load -i /usr/centos_jdk8.tar
可以看到,成功導入docker鏡像了。
接著改下jdk鏡像的名稱,也就是從新打個tag:
使用命令:docker tag <原鏡像IMAGE ID> <新鏡像名稱>:<tag>
運行jdk鏡像:
docker run -i -t -v /usr/soft/java/:/mnt/software 鏡像名稱:版本 /bin/bash
這里將容器的jdk安裝路徑/jdk1.8.0_121/掛載到宿主機的/usr/soft/java/jdk1.8.0_121,這樣訪問宿主機的該文件夾,就可以看到jdk所需要的相關文件。
這里使用的是交互模式啟動的鏡像,啟動成功后直接進入容器內部。
可以看到鏡像運行成功了,并且自動進入容器內部了??蓪Ρ让钚衦oot@后面的主機名稱,已經改變了。
剛開始試了下這樣運行鏡像,直接將鏡像內部的jdk文件夾映射到宿主機上:
docker run -i -t -v /usr/soft/java/jdk1.8.0_121:/jdk1.8.0_121/ 鏡像名稱:版本 /bin/bash
這里將容器的jdk安裝路徑/jdk1.8.0_121/掛載到宿主機的/usr/soft/java/jdk1.8.0_121
命令正常執行了,鏡像也正常啟動了。按照docker容器掛載目錄的方式,這樣也確實沒毛病,這樣訪問宿主機的/usr/soft/java/jdk1.8.0_121文件夾,就可以看到鏡像運行時,/jdk1.8.0_121/文件夾下產生的文件了。
但是在我啟動后,進入容器內部,發現java -version命令不好使了,提示找不到java命令。
這就很神奇了哈。。。。。第一次運行就正常,這次只不多改了下掛載目錄,就崩了????
腦子瓦特了半天才反應過來,容器啟動時掛載目錄的作用是:將容器運行期間對應文件夾產生的新文件,放于掛載目錄下。這里強調下新文件,意思就是,如果宿主機在運行期間產生的新文件,通過掛載目錄,宿主機可以直接訪問。這點很容易理解。
還有一種情況就是,啟動鏡像時,鏡像內部的某個文件夾如果不為空,也就是上面命令中使用的/jdk1.8.0_121/文件夾不為空,但是恰巧又被掛載到宿主機上某個文件夾了,恰好該文件夾是空的,那么鏡像運行后,鏡像內部的文件夾也會被置空。
這就是為什么我用了上面命令后,進入容器內部,發現java命令不好使了的原因。因為/jdk1.8.0_121/是空的,java命令怎么可能會正常。
退出容器內部,使用命令:ctrl+D 或者exit,退出后,容器會自動停止,再次啟動,可使用docker ps -a 查看鏡像運行痕跡,使用docker start 容器ID重啟容器。
總結
以上是生活随笔為你收集整理的使用Docker 安装jdk8的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring-boot+swagger实
- 下一篇: 21.判断栈弹出顺序是否正确