亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

詳解使用Docker搭建Java Web運行環境

2024-09-01 13:49:20
字體:
來源:轉載
供稿:網友

這周末體驗了一下挺火的Docker技術,記錄學習筆記。

>Docker是干什么的

Docker 是一個基于Linux容器(LXC-linux container)的高級容器引擎,基于go語言開發,

源代碼托管在 Github 上, 遵從Apache2.0協議開源。Docker的目標是實現輕量級的操作系統虛擬化解決方案。

學習Docker首先要了解幾個概念:

鏡像—Docker的鏡像和常見的系統ISO鏡像類似,包含了應用程序的信息;

容器—容器相當于一個可以運行起來的虛擬機,應用程序運行在容器中,Docker運行在“Docker”上;

倉庫—倉庫是存放鏡像的地方,有類似git的版本控制,同樣分為公開倉庫(Public)和私有倉庫(Private)兩種形式;

Docker支持大部分的Linux發行版,通過使用Docker容器,就可以在不同的操作系統,

不同的機器上運行自己的應用,不用關心硬件、運行環境之類的配置,應用程序的遷移變得非常簡單。

>Docker和傳統虛擬化技術的對比

相比傳統虛擬機技術,Docker資源占用少,啟動更快,很大的方便了項目的部署和運維。

Docker是在操作系統層面上實現虛擬化,復用本地主機的操作系統,傳統方式是在硬件的基礎上,虛擬出多個操作系統,然后在系統上部署相關的應用。

下面的這張圖片參考相關博文,很形象的說明了Docker和VM之類的傳統虛擬化技術的區別:

docker搭建java,web,docker,運行java,搭建web應用vsdocker搭建java,web,docker,運行java,搭建web應用

 >搭建Docker環境

我使用的是Ubuntu 14.04,在這上面安裝Docker服務。

快速安裝Docker

14.04版本的Ubuntu倉庫中已經支持Docker的安裝,
可以使用快速安裝的方式,

sudo apt-get updatesudo apt-get install docker.io

啟動服務和守護進程

service docker.io statusservice docker.io start

這種方式安裝通常不是Docker的最新版本,

如果想要安裝最新版本,可以去Docker官網下載安裝。

>創建第一個Docker鏡像

構建Docker鏡像的一般過程是首先創建一個容器,并在容器里修改鏡像,配置相關環境等,最后將修改提交為一個新鏡像。

(1)下載鏡像文件

下載用于制作鏡像的系統,

sudo docker pull index.alauda.cn/alauda/ubuntu

docker搭建java,web,docker,運行java,搭建web應用
這里我從靈雀云的鏡像中心拉取。

或者也可以直接從Docker的鏡像中心拉取,不過貌似非常慢:

sudo docker pull ubuntu

下載成功后,使用images命令查看本地的鏡像列表:

docker images

docker搭建java,web,docker,運行java,搭建web應用這里需要注意,使用Docker的時候請添加sudo。

默認安裝完 docker 后,每次執行 docker 都需要運行 sudo 命令,如果不跟 sudo,直接執行 docker 命令會報一些權限錯誤。

(2)啟動容器并修改鏡像

鏡像下載到本地以后,就可以使用Docker運行,

通過下面的命令參數啟動容器,

docker run <相關參數> <鏡像 ID> <初始命令>

-i:表示以“交互模式”運行容器

-t:表示容器啟動后會進入其命令行

-v:表示需要將本地哪個目錄掛載到容器中,

格式:-v <宿主機目錄>:<容器目錄>

我的相關程序都在當前機器的/data/software/目錄下,并且想把它掛載到容器的相同目錄下:

sudo docker run -i -t -v /data/software/:/data/software/ ae983d5e88ce /bin/bash

“鏡像 ID”,也可以使用“倉庫名:標簽名”,例如:index.alauda.cn/alauda/ubuntu :latest。

上面的命令,可以使用指定的鏡像運行一個shell,如果想退出該終端,可以使用exit命令,或者依次按下CTRL -p+CTRL -q,即可切換到宿主機器。不過這種方式,容器依然在后天運行。

啟動終端后,進入/data/software/目錄,可以發現當前機器目錄下的文件已經同步過來:docker搭建java,web,docker,運行java,搭建web應用

(3)安裝JDK和Tomcat等

安裝相關的JDK等程序,這里全部安裝到/data/目錄:

tar -zxvf jdk-7u25-linux-x64.tar.gz -C /data/mv jdk1.7.0_25 jdkunzip apache-tomcat-7.0.54.zip -d /data/mv apache-tomcat-7.0.54 tomcat

配置環境變量

vi /etc/profile

添加下面的配置:

#set java environment  export JAVA_HOME=/data/jdk  export JRE_HOME=${JAVA_HOME}/jre  export CLASSPATH=.:JAVAHOME/lib:JAVAHOME/lib:{JRE_HOME}/lib  export PATH=JAVAHOME/bin:JAVAHOME/bin:PATH export CATALINA_HOME=/data/tomcat export CATALINA_BASE=/data/tomcat 

保存并退出,設置立即生效:

source /etc/profile

(4)編寫啟動腳本

啟動tomcat時必須通過TOMCATHOME/bin/catalina.sh實現,不能使用TOMCATHOME/bin/catalina.sh實現,不能使用TOMCAT_HOME/bin/startup.sh啟動,否則腳本執行后容器會馬上退出。

vi /data/start.sh

添加以下內容:

#!/bin/bash# Export environment variablesource /etc/profile# Start tomcatbash /data/tomcat/bin/catalina.sh run

添加可執行權限:chmod u+x /data/start.sh

(5)構建鏡像

使用Docker構建鏡像的兩種方法:

使用docker commit 命令,更直觀一些;

使用docker build命令和Dockerfile文件,可以模板化鏡像構建過程;

這里使用docker commit的方式創建鏡像。

查看容器列表:

sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES39b2cf60a4c1 ae983d5e88ce:latest "/bin/bash" 5 hours ago Exited (0) 9 seconds ago dreamy_euclid

提交一個新的鏡像:

sudo docker commit 39b2cf60a4c1 bingyue/docdemo

如果有Docker賬號,可以將鏡像推送到Docker Hub或資金的私有Registry中。

現在查看本地的docker鏡像,

sudo docker images

docker搭建java,web,docker,運行java,搭建web應用

可以看到本地倉庫已經有剛剛創建的docker鏡像。

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEbingyue/docdemo latest bfc7ed316d42 About a minute ago 528.2 MBindex.alauda.cn/alauda/ubuntu latest ae983d5e88ce 10 months ago 255.1 MB

docker inspect可以查看新創建的鏡像的詳細信息:

sudo docker inspect bingyue/docdemodocker搭建java,web,docker,運行java,搭建web應用

(6)運行新創建的鏡像

docker run -d -p 18080:8080 --name docdemo bingyue/docdemo /data/start.sh

-p:表示宿主機與容器的端口映射,此時將容器內部的 8080 端口映射為宿主機的 18080 端口,

這樣就向外界暴露了 18080 端口,可通過 Docker 網橋來訪問容器內部的 8080 端口了。

查看后臺是否啟動成功:

docker ps 

測試訪問:docker搭建java,web,docker,運行java,搭建web應用

(7)提交至docker倉庫

如果有Docker倉庫的賬戶,可以將本地創建的鏡像提交至倉庫。

 >使用體驗

到這一步,差不多完成了Docker的初體驗,Docker應用還是比較簡單的,真正復雜的應該是背后的虛擬化技術。

一步一步部署下來,的確Docker相比傳統的虛擬機技術要簡單了很多,有機會繼續深入學習。

附:添加Docker用戶組,避免sudo輸入

默認安裝完 docker 后,每次執行 docker 都需要運行 sudo 命令,影響效率。如果不跟 sudo,直接執行 docker images 命令會有如下問題:
Get http:///var/run/docker.sock/v1.18/images/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?

把當前用戶執行權限添加到相應的docker用戶組里面就可以解決這個問題。

添加一個新的docker用戶組

sudo groupadd docker

# 添加當前用戶到docker用戶組里

sudo gpasswd -a bingyue docker

# 重啟Docker后臺監護進程

sudo service docker restart

# 重啟之后,嘗試一下,是否生效

docker version

#若還未生效,則系統重啟,則生效

sudo reboot

Docker常用命令

# 下載一個ubuntu鏡像

sudo docker pull ubuntu

# 使用ubuntu運行一個交互性的shell

sudo docker run -i -t ubuntu /bin/bash

#docker ps命令

sudo docker ps #列出當前所有正在運行的containersudo docker ps -l #列出最近一次啟動的,且正在運行的containersudo docker ps -a #列出所有的container

#port命令

docker run -p 80:8080 <image> <cmd> #映射容器的8080端口到宿主機的80端口

#刪除容器命令

sudo docker rm `sudo docker ps -a -q`#刪除所有容器sudo docker rm $CONTAINER_ID#刪除容器id為CONTAINER_ID的容器

#其他命令快速參考:

sudo docker images #查看本地鏡像sudo docker attach $CONTAINER_ID #啟動一個已存在的docker實例sudo docker stop $CONTAINER_ID #停止docker實例sudo docker logs $CONTAINER_ID #查看docker實例運行日志,確保正常運行sudo docker inspect $CONTAINER_ID #查看container的實例屬性,比如ip等等

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国产免费观看| 中文字幕在线观看日韩| 91国语精品自产拍在线观看性色| 色婷婷av一区二区三区在线观看| 77777少妇光屁股久久一区| 国产精品久久久久久久久影视| 日韩av第一页| www.久久久久| 久久久久久久av| 日韩久久免费电影| 日韩av三级在线观看| 日韩不卡中文字幕| 亚洲人成亚洲人成在线观看| 国产亚洲综合久久| 中文字幕无线精品亚洲乱码一区| 992tv成人免费视频| 精品无人区太爽高潮在线播放| 亚洲成人中文字幕| 一区国产精品视频| 国产在线视频一区| 久久久亚洲天堂| 日韩成人高清在线| 国语自产精品视频在线看| 欧亚精品在线观看| 欧美性受xxx| 国产成人精品一区二区在线| 日韩av在线网| 亚洲精品wwww| 亚洲国产精品久久久久久| 国产精品福利在线观看| 中文字幕一区二区三区电影| 亚洲精品国产精品久久清纯直播| 亚洲成人网在线| 91高潮精品免费porn| 精品国产一区二区三区久久狼黑人| 日韩av片电影专区| 久久99国产综合精品女同| 欧美视频精品一区| 91产国在线观看动作片喷水| 国产九九精品视频| 日韩国产在线播放| 国产成人亚洲综合青青| 国模精品一区二区三区色天香| 亚洲天堂精品在线| 中文在线资源观看视频网站免费不卡| 久久精品国产一区二区电影| 疯狂做受xxxx欧美肥白少妇| 欧美影院成年免费版| 久久亚洲一区二区三区四区五区高| 国产精品亚洲片夜色在线| 国产香蕉97碰碰久久人人| 91在线观看免费观看| 在线观看精品自拍私拍| 国产精品一区二区三区免费视频| 不用播放器成人网| 久久精品视频中文字幕| 欧美黑人国产人伦爽爽爽| 欧美一级电影久久| 日本不卡免费高清视频| 日韩一区二区福利| 日韩一区二区av| 日韩视频免费大全中文字幕| 国产狼人综合免费视频| 国产美女精彩久久| 一区二区三区动漫| 精品国产一区av| 日韩中文在线中文网三级| 国产精品久久久久久久久久ktv| 国产aⅴ夜夜欢一区二区三区| 日本欧美中文字幕| 欧美日产国产成人免费图片| 岛国av在线不卡| 中文字幕日韩高清| 久久91精品国产| 欧美视频免费在线| 欧洲美女7788成人免费视频| 欧美日韩成人在线播放| 成人伊人精品色xxxx视频| 国产精品福利小视频| 久久这里有精品| 日韩影视在线观看| 456国产精品| 久久九九全国免费精品观看| 久久久久久久影视| 最近日韩中文字幕中文| 久久精品一本久久99精品| 国产免费成人av| 国产成+人+综合+亚洲欧美丁香花| 91在线播放国产| 2020久久国产精品| 在线电影av不卡网址| 日韩欧美中文字幕在线播放| 久久这里只有精品视频首页| 欧美成人激情在线| 97免费视频在线| 黄色精品一区二区| 福利微拍一区二区| 97视频在线观看免费| 亚洲午夜未删减在线观看| 国产日韩欧美日韩大片| 国产精品久久久久久久久影视| 日韩欧美一区二区在线| 热门国产精品亚洲第一区在线| 中文国产亚洲喷潮| 亚洲美女自拍视频| 久久久免费高清电视剧观看| 成人午夜激情免费视频| 成人h视频在线| 一区二区三区亚洲| 亚洲综合日韩在线| 日韩亚洲国产中文字幕| 日韩国产激情在线| 久久艳片www.17c.com| 国产精品久久久久久久电影| 欧美激情精品久久久久久黑人| 91深夜福利视频| 亚洲成人aaa| 一区二区三区www| 成人欧美一区二区三区在线| 91精品国产99久久久久久| 91高潮在线观看| 久久精品视频导航| 国产精品电影网站| 97久久久免费福利网址| 91精品国产99久久久久久| 日韩精品极品毛片系列视频| 国产精品视频久久| 国产亚洲欧洲高清一区| 久久天堂电影网| 色偷偷av一区二区三区乱| 国产精品99免视看9| 久久久久久国产精品三级玉女聊斋| 性色av一区二区三区红粉影视| 国内精品久久久久久中文字幕| 久久精品视频网站| 国产国语videosex另类| 久久男人资源视频| 国产精品一区二区久久精品| 色婷婷亚洲mv天堂mv在影片| 麻豆国产va免费精品高清在线| 97久久精品国产| 国产精品激情自拍| 国产精品九九久久久久久久| 精品日本高清在线播放| 91色琪琪电影亚洲精品久久| 亚洲高清一二三区| 亚洲黄色成人网| 欧美在线视频观看免费网站| 亚洲欧美国产日韩中文字幕| 欧美性20hd另类| 亚洲影视九九影院在线观看| 永久免费毛片在线播放不卡| 国产美女精品视频| 免费不卡欧美自拍视频| 久久久精品在线| 国产精品亚洲视频在线观看| 91精品一区二区| 日韩av中文字幕在线| 日韩美女在线看| 欧美日韩国产精品专区| 日韩精品中文字幕在线播放| 欧美国产高跟鞋裸体秀xxxhd| 国产精品午夜视频| 欧美成年人视频网站欧美|