一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - Docker學習之基于Dockerfile搭建JAVA Tomcat運行環境的方法

Docker學習之基于Dockerfile搭建JAVA Tomcat運行環境的方法

2021-01-11 23:21聶永 服務器知識

本篇文章主要介紹了Docker學習之基于Dockerfile搭建JAVA Tomcat運行環境的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

前言

在第一篇文字中,我們完全人工方式,一個命令一個命令輸入,實現一個java tomcat運行環境,雖然也初見成效,但很累人。如果依靠依靠腳本構建一個Tomcat容器實例,一個命令可以搞定,何樂而不為呢。好在Docker提供了Dockerfile作為構建Docker鏡像腳本,避免人們一行一行的輸入,真是善莫大焉。Dockerfile腳本可以做到隨時維護修改,即可以分享,更有利于在模板化,更不用說傳輸了,好處那是一大籮筐!

最終目的:打造一個支持SSH終端登錄、Tomcat7自動運行的Docker鏡像。

編寫一個Dockerfile

所有環境,同第一篇文字。在ubuntu下安裝好vim之后(吐槽一下,ubuntu系統內置vi命令十分難用,只好求助于vim ):

?
1
sudo vim Dockerfile

編輯一個Dockerfile文件了,下面就是具體文件內容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# VERSION 0.0.1
# 默認ubuntu server長期支持版本,當前是12.04
FROM ubuntu
# 簽名啦
MAINTAINER yongboy "[email protected]"
 
# 更新源,安裝ssh server
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe"> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y openssh-server
RUN mkdir -p /var/run/sshd
 
# 設置root ssh遠程登錄密碼為123456
RUN echo "root:123456" | chpasswd
 
# 添加orache java7源,一次性安裝vim,wget,curl,java7,tomcat7等必備軟件
RUN apt-get install python-software-properties
RUN add-apt-repository ppa:webupd8team/java
RUN apt-get update
RUN apt-get install -y vim wget curl oracle-java7-installer tomcat7
 
# 設置JAVA_HOME環境變量
RUN update-alternatives --display java
RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle">> /etc/environment
RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle">> /etc/default/tomcat7
 
# 容器需要開放SSH 22端口
EXPOSE 22
 
# 容器需要開放Tomcat 8080端口
EXPOSE 8080
 
# 設置Tomcat7初始化運行,SSH終端服務器作為后臺運行
ENTRYPOINT service tomcat7 start && /usr/sbin/sshd -D

需要注意:

  • ENTRYPOINT,表示鏡像在初始化時需要執行的命令,不可被重寫覆蓋,需謹記

  • CMD,表示鏡像運行默認參數,可被重寫覆蓋

  • ENTRYPOINT/CMD都只能在文件中存在一次,并且最后一個生效 多個存在,只有最后一個生效,其它無效!

  • 需要初始化運行多個命令,彼此之間可以使用 && 隔開,但最后一個須要為無限運行的命令,需切記!

ENTRYPOINT/CMD,一般兩者可以配合使用,比如:

?
1
2
ENTRYPOINT ["/usr/sbin/sshd"]
CMD ["-D"]

在Docker daemon模式下,無論你是使用ENTRYPOINT,還是CMD,最后的命令,一定要是當前進程需要一直運行的,才能夠防容器退出。

以下無效方式:

?
1
2
ENTRYPOINT service tomcat7 start #運行幾秒鐘之后,容器就會退出
CMD service tomcat7 start #運行幾秒鐘之后,容器就會退出

這樣有效:

?
1
2
3
ENTRYPOINT service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out
# 或者
CMD service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out

這樣也有效:

?
1
2
ENTRYPOINT ["/usr/sbin/sshd"]
CMD ["-D"]

構建鏡像

腳本寫好了,需要轉換成鏡像:

?
1
docker build -t yongboy/java7 .

-t: 為構建的鏡像制定一個標簽,便于記憶/索引等

. : 指定Dockerfile文件在當前目錄下

網速不太好,會等待很長時間。很多操作可能需要科學上網,逼得我只能一直掛著VPN,方能暢通無阻。

構建鏡像完成之后,看看運行效果:

?
1
docker run -d -p 22 -p 8080:8080 yongboy/java7

在運行命令中,還得需要顯式指定 -p 22 -p 8080:8080,否則在Docker 0.8.1版本中不會主動映射到宿主機上。據悉在Docker 0.4.8版本時,就不擔心這個問題。 或者,您要有好的方式,不妨告知于我,謝謝。

在Dockerfile中,若沒有使用ENTRYPOINT/CMD指令,若運行多個命令,可以這樣做:

 

復制代碼 代碼如下:

docker run -d -p 22 -p 8080 yongboy/java7 /bin/sh -c "service tomcat7 start && /usr/sbin/sshd -D"

 

提交/保存鏡像

創建好的鏡像,可以保存到索引倉庫中,便于下次使用(當然,我們直接共享Dockerfile,是最簡單的事情,:)) ),但畢竟鏡像可以做到開箱即用。

1、https://index.docker.io/ 注冊一個賬號,例如yongboy

2、構建鏡像

?
1
docker build -t yongboy/java7 .

上面已經構建OK的話,可省略此步。

3、登陸

?
1
docker login

4、提交到Docker索引倉庫

?
1
docker push yongboy/java7

現在可以起來喝杯熱水,出去溜達會,也不一定能夠上傳完畢,那叫一個慢啊!

上傳OK的話,可以得到類似地址:https://index.docker.io/u/yongboy/java7/

5、如何使用鏡像

?
1
docker pull yongboy/java7

剩下的步驟,就很簡單了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.blogjava.net/yongboy/archive/2013/12/16/407643.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区三区四卡 | 精品亚洲永久免费精品 | 美人的淫事[纯hh] | 四虎在线视频免费观看视频 | 日韩毛片大全免费高清 | 青青青手机在线观看 | 成年美女黄网色大观看全 | gay中国| 亚洲国产精品成 | 国产亚洲欧美在线中文bt天堂网 | 日韩一区国产二区欧美三 | 亚洲社区在线 | 久久精品男人影院 | 亚洲高清视频在线 | 日本深夜视频 | 99国内精品久久久久久久黑人 | 美女禁18 | aika跟黑人太猛了 | 精品福利一区二区免费视频 | 日本高清免费观看 | 日韩首页 | 女同久久另类99精品国产 | 色聚网久久综合 | 91麻豆精品国产 | free极度另类性欧美 | 色综合久久最新中文字幕 | 日本三级在丈面前被耍了 | 91外围| 成人免费视频大全 | 扒开老师两片湿漉的肉 | 男人肌肌捅女人肌肌 | h版欧美大片免费观看 | 日韩欧美高清一区 | 国产精品久久久久久久久久久威 | 日韩日b视频 | 99热这里只有精品一区二区三区 | 视频在线免费看 | 婷射吧 | 欧美肥bb| 国产欧美日韩不卡一区二区三区 | 国产日韩欧美色视频色在线观看 |