最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker學(xué)習(xí)之基于Dockerfile搭建JAVA Tomcat運(yùn)行環(huán)境的方法

 更新時(shí)間:2017年02月03日 09:33:35   作者:聶永  
本篇文章主要介紹了Docker學(xué)習(xí)之基于Dockerfile搭建JAVA Tomcat運(yùn)行環(huán)境的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。

前言

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

最終目的:打造一個(gè)支持SSH終端登錄、Tomcat7自動(dòng)運(yùn)行的Docker鏡像。

編寫一個(gè)Dockerfile

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

sudo vim Dockerfile

編輯一個(gè)Dockerfile文件了,下面就是具體文件內(nèi)容:

# VERSION 0.0.1
# 默認(rèn)ubuntu server長期支持版本,當(dāng)前是12.04
FROM ubuntu
# 簽名啦
MAINTAINER yongboy "yongboy@gmail.com"

# 更新源,安裝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

# 設(shè)置root ssh遠(yuǎn)程登錄密碼為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

# 設(shè)置JAVA_HOME環(huán)境變量
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

# 設(shè)置Tomcat7初始化運(yùn)行,SSH終端服務(wù)器作為后臺(tái)運(yùn)行
ENTRYPOINT service tomcat7 start && /usr/sbin/sshd -D

需要注意:

  • ENTRYPOINT,表示鏡像在初始化時(shí)需要執(zhí)行的命令,不可被重寫覆蓋,需謹(jǐn)記
  • CMD,表示鏡像運(yùn)行默認(rèn)參數(shù),可被重寫覆蓋
  • ENTRYPOINT/CMD都只能在文件中存在一次,并且最后一個(gè)生效 多個(gè)存在,只有最后一個(gè)生效,其它無效!
  • 需要初始化運(yùn)行多個(gè)命令,彼此之間可以使用 && 隔開,但最后一個(gè)須要為無限運(yùn)行的命令,需切記!

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

ENTRYPOINT ["/usr/sbin/sshd"]
CMD ["-D"]

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

以下無效方式:

 ENTRYPOINT service tomcat7 start #運(yùn)行幾秒鐘之后,容器就會(huì)退出
 CMD service tomcat7 start #運(yùn)行幾秒鐘之后,容器就會(huì)退出

這樣有效:

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

這樣也有效:

 ENTRYPOINT ["/usr/sbin/sshd"]
 CMD ["-D"]

構(gòu)建鏡像

腳本寫好了,需要轉(zhuǎn)換成鏡像:

docker build -t yongboy/java7 .

-t: 為構(gòu)建的鏡像制定一個(gè)標(biāo)簽,便于記憶/索引等

. : 指定Dockerfile文件在當(dāng)前目錄下

網(wǎng)速不太好,會(huì)等待很長時(shí)間。很多操作可能需要科學(xué)上網(wǎng),逼得我只能一直掛著VPN,方能暢通無阻。

構(gòu)建鏡像完成之后,看看運(yùn)行效果:

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

在運(yùn)行命令中,還得需要顯式指定 -p 22 -p 8080:8080,否則在Docker 0.8.1版本中不會(huì)主動(dòng)映射到宿主機(jī)上。據(jù)悉在Docker 0.4.8版本時(shí),就不擔(dān)心這個(gè)問題。 或者,您要有好的方式,不妨告知于我,謝謝。

在Dockerfile中,若沒有使用ENTRYPOINT/CMD指令,若運(yùn)行多個(gè)命令,可以這樣做:

復(fù)制代碼 代碼如下:

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

提交/保存鏡像

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

1、https://index.docker.io/ 注冊(cè)一個(gè)賬號(hào),例如yongboy

2、構(gòu)建鏡像

docker build -t yongboy/java7 .

上面已經(jīng)構(gòu)建OK的話,可省略此步。

3、登陸

docker login

4、提交到Docker索引倉庫

docker push yongboy/java7

現(xiàn)在可以起來喝杯熱水,出去溜達(dá)會(huì),也不一定能夠上傳完畢,那叫一個(gè)慢??!

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

5、如何使用鏡像

docker pull yongboy/java7

剩下的步驟,就很簡(jiǎn)單了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決docker run 或者 docker restart 啟動(dòng)鏡像就自動(dòng)退出

    解決docker run 或者 docker restart 啟動(dòng)鏡像就自動(dòng)退出

    這篇文章主要介紹了解決docker run 或者 docker restart 啟動(dòng)鏡像就自動(dòng)退出的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docker之蘋果Mac安裝Docker的兩種方式小結(jié)

    Docker之蘋果Mac安裝Docker的兩種方式小結(jié)

    這篇文章主要介紹了Docker之蘋果Mac安裝Docker的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Docker容器簡(jiǎn)單部署nginx過程解析

    Docker容器簡(jiǎn)單部署nginx過程解析

    這篇文章主要介紹了Docker容器簡(jiǎn)單部署nginx過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • docker快速安裝Es和kibana的實(shí)現(xiàn)步驟

    docker快速安裝Es和kibana的實(shí)現(xiàn)步驟

    在工作過程中,經(jīng)常需要測(cè)試環(huán)境搭建Es環(huán)境,本文主要介紹了docker快速安裝Es和kibana,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • docker-compose啟動(dòng)的容器一直處于restarting狀態(tài)的問題解決

    docker-compose啟動(dòng)的容器一直處于restarting狀態(tài)的問題解決

    本文主要介紹了docker-compose啟動(dòng)的容器一直處于restarting狀態(tài)的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Docker部署Tomcat及Web應(yīng)用的實(shí)現(xiàn)

    Docker部署Tomcat及Web應(yīng)用的實(shí)現(xiàn)

    這篇文章主要介紹了Docker部署Tomcat及Web應(yīng)用的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • docker-compose快速搭建docker私有倉庫的步驟

    docker-compose快速搭建docker私有倉庫的步驟

    這篇文章主要介紹了docker-compose快速搭建docker私有倉庫的步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Docker安裝anythingllm流程

    Docker安裝anythingllm流程

    該文介紹了如何使用Docker安裝并運(yùn)行anythingllm應(yīng)用程序,通過掛載兩個(gè)本地目錄(C:\anythingllm\storage和C:\anythingllm\env)到Docker容器中,并在瀏覽器中訪問http://localhost:3001/,即可啟動(dòng)并使用anythingllm,作者分享個(gè)人經(jīng)驗(yàn),鼓勵(lì)大家參考并支持腳本之家
    2025-02-02
  • idea集合docker實(shí)現(xiàn)鏡像打包一鍵部署

    idea集合docker實(shí)現(xiàn)鏡像打包一鍵部署

    這篇文章主要介紹了idea集合docker實(shí)現(xiàn)鏡像打包一鍵部署
    2021-02-02
  • Docker安裝配置RabbitMQ的實(shí)現(xiàn)步驟

    Docker安裝配置RabbitMQ的實(shí)現(xiàn)步驟

    RabbitMQ是基于AMQP的一款消息管理系統(tǒng)。AMQP(Advanced?Message?Queuing?Protocol),是一個(gè)提供消息服務(wù)的應(yīng)用層標(biāo)準(zhǔn)高級(jí)消息隊(duì)列協(xié)議,其中RabbitMQ就是基于這種協(xié)議的一種實(shí)現(xiàn)
    2021-11-11

最新評(píng)論

恭城| 新和县| 云阳县| 高台县| 常德市| 新民市| 吉林省| 湖州市| 登封市| 长宁县| 化州市| 调兵山市| 广州市| 杭州市| 金山区| 基隆市| 靖安县| 南宫市| 百色市| 荥经县| 义乌市| 龙陵县| 高淳县| 五莲县| 富源县| 泰来县| 新邵县| 浦江县| 宜昌市| 钟祥市| 崇州市| 桓仁| 合山市| 定西市| 蓝山县| 奉新县| 余庆县| 延长县| 武夷山市| 潢川县| 霍城县|