Openstack.DockerDevOps

Openstack.DockerDevOps

1艰躺、Nova

nova flavor-list 查看配置模板列表

nova image-list 查看鏡像列表

nova secgroup-list 查看安全規(guī)則
nova boot --flavor m1.tiny --image cirros-0.3.4-x86_64 --nic net-id=DEMO_NET_ID --security-group default --key-name demo-key demo-instance1啟動虛機

nova-manage service list nova服務(wù)列表,服務(wù)所在物理點和域,以及服務(wù)狀態(tài)

nova list 列出虛機,在執(zhí)行該命令前,得先source 帳戶openrc文件

nova show uuid(虛機id) 可以查看該虛機的詳細信息吴趴,如虛機名,鏡像模板侮攀,啟動時間等等锣枝。如果要查看所在物理點,需在執(zhí)行該命令前兰英,先source 管理員openrc文件

nova live-migration 熱遷移
nova evacuate uuid 物理節(jié)點號 冷遷移虛機到新的物理點
nova start uuid 開機

nova stop uuid 關(guān)機

nova delete uuid 刪除虛機

nova reset-state uuid 重置虛機狀態(tài)

nova reboot --hard uuid 對虛機進行硬重啟
nova reset-state --active uuid 將虛機狀態(tài)重置為active撇叁,對于部分error虛機無法刪除時,運行該命令再刪除一般能將虛機刪除

nova get-vnc-console demo-instance1 novncnn 獲取到VNC的web登錄地址畦贸,直接輸入獲取到的http地址到瀏覽器即可登錄虛機

nova volume-list查看volume列表

nova volume-attach demo-instance1 volume_id 將volume掛載到demo-instance1虛機
##########################################################################
簡述 Docker

2017/05/17 | 分類: 行業(yè)資訊 | 0 條評論 | 標簽: DOCKER
分享到:7

原文出處: waylau
Docker 是 Golang 編寫的陨闹, 自 2013 年推出以來,受到越來越多的開發(fā)者的關(guān)注薄坏。如果你關(guān)注最新的技術(shù)發(fā)展趋厉,那么你一定聽說過 Docker。不管是云服務(wù)還是微服務(wù)(Microservices)胶坠,越來越多的廠商都開始基于 Docker 作為基礎(chǔ)設(shè)施自動化的工具君账。那么什么是 Docker?Docker與傳統(tǒng)的虛擬機有什么區(qū)別沈善?為何要采用 Docker乡数?如何使用 Docker椭蹄?
本文,就針對上述提到的問題净赴,來簡單介紹下 Docker塑娇。
什么是 Docker
Docker 是開源的應(yīng)用容器引擎。
Docker 可以讓你將所有應(yīng)用軟件以及它的以來打包成軟件開發(fā)的標準化單元劫侧。
Docker 容器將軟件以及它運行安裝所需的一切文件(代碼埋酬、運行時、系統(tǒng)工具烧栋、系統(tǒng)庫)打包到一起写妥,這就保證了不管是在什么樣的運行環(huán)境,總是能以相同的方式運行审姓。就好像 Java 虛擬機一樣珍特,“一次編寫,到處運行(Write once, run anywhere)”魔吐,而 Docker 是“一次構(gòu)建扎筒,到處運行(Build once,run anywhere)”酬姆。


Docker 是一種“容器即服務(wù)”(Docker Containers as a Service 嗜桌,簡稱 CaaS),使得開發(fā)和IT運營團隊可以對于應(yīng)用的構(gòu)建辞色、發(fā)布骨宠、運行更加敏捷和可控。
概況的說: Docker 是為開發(fā)人員和系統(tǒng)管理員用于構(gòu)建相满、發(fā)布层亿、并運行分布式應(yīng)用程序的開放式平臺。該平臺由 Docker 引擎(一個便攜立美、輕巧的運行時和打包工具) 和 Docker Hub (一個共享應(yīng)用程序和自動化工作流的云服務(wù))等組成匿又。Docker 可以使應(yīng)用程序從組件迅速組裝并消除了開發(fā)、質(zhì)量保證和生產(chǎn)環(huán)境之間的摩擦問題建蹄。這樣一來碌更,IT部門可以更快地發(fā)布,而這些應(yīng)用程序不管是運行在筆記本電腦躲撰、數(shù)據(jù)中心的虛擬機针贬,還是任何的云,其運行過程和結(jié)果都是一致的拢蛋。
我們再來看下 Docker 的 Logo 。很明顯蔫巩,這是一只鯨魚谆棱,它托著許多集裝箱快压。我們可以把宿主機可當做這只鯨魚,把相互隔離的容器可看成集裝箱垃瞧,每個集裝箱中都包含自己的應(yīng)用程序蔫劣。這 Logo 簡直的太形象了!
dockerize-php-application-300x250

Docker 的優(yōu)點
輕量級:所有容器在一臺機器上共享同一個操作系統(tǒng)內(nèi)核个从,這樣他們立即開始脉幢,并更有效地利用內(nèi)存。Image 是從分層文件系統(tǒng)的構(gòu)建嗦锐,這樣他們能夠共享公共文件嫌松,使得磁盤使用率和 Image 的下載更加高效。
開放:Docker 容器是基于開發(fā)的標準奕污,允許容器運行在主流的 Linux 發(fā)布版和 Microsoft 操作系統(tǒng)作為所有的基礎(chǔ)設(shè)施萎羔。
安全:容器使得應(yīng)用程序彼此隔離,而基礎(chǔ)架構(gòu)同時為應(yīng)用程序提供了額外的保護層碳默。

Docker 與 虛擬機的區(qū)別
容器與虛擬機有著類似的資源隔離和分配的優(yōu)點贾陷,但不同的架構(gòu)方法使容器能夠更加便攜,高效等嘱根。
虛擬機的架構(gòu)


每個虛擬機都包括應(yīng)用程序髓废、必要的二進制文件和庫以及一個完整的客戶操作系統(tǒng)(Guest OS),盡管它們被分離该抒,它們共享并利用主機的硬件資源瓦哎,將近需要十幾個 GB 的大小。
容器的架構(gòu)
what-is-vm-diagram

容器包括應(yīng)用程序及其所有的依賴柔逼,但與其他容器共享內(nèi)核蒋譬。它們以獨立的用戶空間進程形式運行在主機操作系統(tǒng)上。他們也不依賴于任何特定的基礎(chǔ)設(shè)施愉适,Docker 容器可以運行在任何計算機上犯助,任何基礎(chǔ)設(shè)施和任何云上。
Docker 的容器利用了 LXC维咸,管理利用了 namespaces 來做權(quán)限的控制和隔離剂买,cgroups 來進行資源的配置,并且還通過 aufs 來進一步提高文件系統(tǒng)的資源利用率癌蓖,而這些技術(shù)都不是 Docker 獨創(chuàng)瞬哼。
LXC
LXC 與虛擬機的不同之處在于,它是一個操作系統(tǒng)級別的虛擬化環(huán)境租副,而不是硬件虛擬化環(huán)境坐慰。他們都做同樣的事情,但 LXC 是操作系統(tǒng)級別的虛擬化環(huán)境用僧,虛擬環(huán)境有它自己的進程和網(wǎng)絡(luò)空間结胀,而不是創(chuàng)建一個完整成熟的虛擬機赞咙。因此,一個 LXC 虛擬操作系統(tǒng)具有最小的資源需求糟港,并啟動只需幾秒鐘攀操。
正如你可以在下圖中看到的,左側(cè)是 LXC 虛擬的 Ubuntu 秸抚,默認安裝使用 11 MB 大小速和。
pic_4

Docker 與 Microservices 的關(guān)系
Microservices(微服務(wù)) 依賴于“基礎(chǔ)設(shè)施自動化”,而 Docker 正是“基礎(chǔ)設(shè)施自動化”的利器剥汤〉叻牛可以說 Docker 的火爆,一定程度上也帶動了微服務(wù)架構(gòu)的興起秀姐,而微服務(wù)的廣泛應(yīng)用也促進了 Docker 繁榮慈迈。可以說兩者相輔相成省有。
有關(guān)微服務(wù)的介紹痒留,可以異步至《簡述 Microservices(微服務(wù))》。
為啥要用 Docker
開發(fā)更加敏捷:Docker 讓開發(fā)人員可以自由定義環(huán)境蠢沿,創(chuàng)建和部署的應(yīng)用程序更快伸头、更容易,IT 運維人員快速應(yīng)對變化也更加靈活性舷蟀。
更加可控:Docker 使得開發(fā)人員保存從基礎(chǔ)設(shè)施到應(yīng)用的代碼恤磷,幫助 IT 運維人管理擁有標準的、安全的野宜、可擴展的操作環(huán)境扫步。
高可移植性:Docker 允許自由選擇,可以是從筆記本電腦到一個團隊匈子,從私人基礎(chǔ)設(shè)施到公共云提供商河胎。

這樣,你可以專注于開發(fā)應(yīng)用虎敦,其他的繁瑣事交給 Docker 去做吧游岳。
如何使用 Docker
真是一個大話題,本文暫時不會詳細涉及其徙,會另外撰文介紹胚迫。如果對 Docker 抱有興趣,可以參閱市面上的書籍:
《The Docker Book》(James Turnbull)
《Docker : Up and Running 》(Karl Matthias唾那、Sean P. Kane)
《Docker in Action》(Jeff Nickoloff)
《Using docker》(Adrian Mouat )

給程序員的開源访锻、免費圖書集合》收錄了幾本 Docker 免費的書籍有:
《Docker —— 從入門到實踐》
《Docker Cheat Sheet》
《Docker 入門實戰(zhàn)》
《Docker 中文指南》

################################################################################
使用 Docker 搭建 Java Web 運行環(huán)境

2016/09/30 | 分類: WEB開發(fā) | 1 條評論 | 標簽: DOCKER, JAVAWEB
分享到:21

Docker 是 2014 年最為火爆的技術(shù)之一,幾乎所有的程序員都聽說過它。Docker 是一種“輕量級”容器技術(shù)朗若,它幾乎動搖了傳統(tǒng)虛擬化技術(shù)的地位恼五,現(xiàn)在國內(nèi)外已經(jīng)有越來越多的公司開始逐步使用 Docker 來替換現(xiàn)有的虛擬化平臺了昌罩。作為一名 Java 程序員哭懈,我們是時候一起把 Docker 學(xué)起來了!
本文會對虛擬化技術(shù)與 Docker 容器技術(shù)做一個對比茎用,然后引出一些 Docker 的名詞術(shù)語遣总,比如:容器、鏡像等轨功,隨后將使用 Docker 搭建一個 Java Web 運行環(huán)境旭斥,最后將對本文做一個總結(jié)。
我們先來回顧一下傳統(tǒng)虛擬化技術(shù)的體系架構(gòu):


虛擬化技術(shù)

可見古涧,我們在宿主機的操作系統(tǒng)上垂券,可安裝了多個虛擬機,而在每個虛擬機中羡滑,通過虛擬化技術(shù)菇爪,實現(xiàn)了一個虛擬操作系統(tǒng),隨后柒昏,就可以在該虛擬操作系統(tǒng)上凳宙,安裝自己所需的應(yīng)用程序了。這一切看似非常簡單职祷,但其中的技術(shù)細節(jié)是相當高深莫測的氏涩,大神級人物都不一定說得清楚。
凡是使用過虛擬機的同學(xué)有梆,應(yīng)該都知道是尖,啟動虛擬機就像啟動一臺計算機,初始化過程是相當慢的泥耀,我們需要等很久饺汹,才能看到登錄界面。一旦虛擬機啟動以后爆袍,就可以與宿主機建立網(wǎng)絡(luò)連接首繁,確保虛擬機與宿主機之間是互聯(lián)互通的。不同的虛擬機之間卻是相互隔離的陨囊,也就是說弦疮,彼此并不知道對方的存在,但每個虛擬機占用的都是宿主機的硬件與網(wǎng)絡(luò)資源蜘醋。
我們再來對比一下 Docker 技術(shù)的體系架構(gòu)吧:


Docker 技術(shù)

可見胁塞,在宿主機的操作系統(tǒng)上,有一個 Docker 服務(wù)在運行(或者稱為“Docker 引擎”),在此服務(wù)上啸罢,我們可開啟多個 Docker 容器编检,而每個 Docker 容器中可運行自己所需的應(yīng)用程序,Docker 容器之間也是相互隔離的扰才,同樣地允懂,都是占用的宿主機的硬件與網(wǎng)絡(luò)資源。
Docker 容器相對于虛擬機而言衩匣,除了在技術(shù)實現(xiàn)上完全不一樣以外蕾总,啟動速度較虛擬機而言有本質(zhì)的飛躍,啟動一個容器只在眨眼瞬間琅捏。不管是虛擬機還是 Docker 容器生百,它們都是為了隔離應(yīng)用程序的運行環(huán)境,節(jié)省我們的硬件資源柄延,為我們開發(fā)人員提供福利蚀浆。
我們再來看看 Docker 的 Logo 吧:
Docker Logo

很明顯,這是一只鯨魚搜吧,它托著許多集裝箱市俊。我們可以把宿主機可當做這只鯨魚,把相互隔離的容器可看成集裝箱赎败,每個集裝箱中都包含自己的應(yīng)用程序秕衙。這 Logo 簡直的太形象了!
需要強調(diào)的是僵刮,筆者并非否定虛擬化技術(shù)据忘,而是想通過本文讓更多的讀者了解如何使用 Docker 技術(shù),讓大家知道除了虛擬化技術(shù)以外搞糕,還有另一種替代技術(shù)勇吊,也能讓應(yīng)用程序隔離起來。

下面窍仰,我們將結(jié)合一個 Java Web 應(yīng)用的部署過程汉规,來描述如何“烹飪”Docker 這份美味佳肴。您準備好了嗎驹吮?我們現(xiàn)在就開始针史!
原料
前提條件
首先,您要準備一個 CentOS 的操作系統(tǒng)碟狞,虛擬機也行啄枕。總之族沃,可以通過 Linux 客戶端工具訪問到 CentOS 操作系統(tǒng)就行频祝。
需要說明的是泌参,Ubuntu 或其它 Linux 操作系統(tǒng)也能玩 Docker,只不過本文選擇了以 CentOS 為例常空,僅此而已沽一。
CentOS 具體要求如下:
必須是 64 位操作系統(tǒng)
建議內(nèi)核在 3.8 以上

通過以下命令查看您的 CentOS 內(nèi)核:
1

uname
-r

如果執(zhí)行以上命令后,輸出的內(nèi)核版本號低于 3.8漓糙,請參考下面的方法來來升級您的 Linux 內(nèi)核铣缠。
對于 CentOS 6.5 而言,內(nèi)核版本默認是 2.6兼蜈。首先攘残,可通過以下命令安裝最新內(nèi)核:
1
2
3

rpm --
import
https:
//www.elrepo.org/RPM-GPG-KEY-elrepo.org

rpm -ivh http:
//www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

yum -y --enablerepo=elrepo-kernel install kernel-lt

隨后拙友,編輯以下配置文件:
1

vi /etc/grub.conf

將default=1
修改為default=0
为狸。
最后,通過reboot
命令重啟操作系統(tǒng)遗契。
重啟后如果不出意外的話辐棒,再次查看內(nèi)核,您的 CentOS 內(nèi)核將會顯示為 3.10牍蜂。
如果到這里漾根,您和我們所期望的結(jié)果是一致的。恭喜您鲫竞!下面我們就一起來安裝 Docker 了辐怕。
安裝 Docker
只需通過以下命令即可安裝 Docker 軟件:
1
2

rpm -Uvh http:
//download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

yum -y install docker-io

可使用以下命令,查看 Docker 是否安裝成功:
1

docker version

若輸出了 Docker 的版本號从绘,則說明安裝成功寄疏,我們下面就可以開始使用 Docker 了。
可通過以下命令啟動 Docker 服務(wù):
1

ervice docker start

做法
就像曾經(jīng)安裝軟件一樣僵井,我們首先需要有一張刻錄了該軟件的光盤陕截,如果您使用的是虛擬光驅(qū),那么就需要運行一種名為“鏡像”的文件批什,通過它來安裝軟件农曲。在 Docker 的世界里,也有一個名為“鏡像”的東西驻债,已經(jīng)安裝我們所需的操作系統(tǒng)乳规,我們一般成為“Docker 鏡像”,本文簡稱“鏡像”合呐。
那么問題來了暮的,我們從哪里下載鏡像呢?
Docker 官網(wǎng) 確實已經(jīng)提供了所有的鏡像下載地址合砂,可惜在國內(nèi)卻是無法訪問的青扔。幸好國內(nèi)好心人提供了一個Docker 中文網(wǎng)源织,在該網(wǎng)站上可以下載我們所需的 Docker 鏡像。
下載鏡像
我們不妨還是以 CentOS 為例微猖,通過以下步驟谈息,下載一個 CentOS 的鏡像。
首先凛剥,訪問 Docker 中文網(wǎng)侠仇,在首頁中搜索名為“centos”的鏡像,在搜索的結(jié)果中犁珠,有一個“官方鏡像”逻炊,它就是我們所需的。
然后犁享,進入 CentOS 官方鏡像頁面余素,在“Pull this repository”輸入框中,有一段命令炊昆,把它復(fù)制下來桨吊,在自己的命令行上運行該命令,隨后將立即下載該鏡像凤巨。
最后视乐,使用以下命令查看本地所有的鏡像:
1

docker images

當下載完成后,您應(yīng)該會看到:
1
2

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

docker.cn/docker/centos centos6 25c5298b1a36
7
weeks ago
215.8
MB

如果看到以上輸出敢茁,說明您可以使用“docker.cn/docker/centos”這個鏡像了佑淀,或?qū)⑵浞Q為倉庫(Repository),該鏡像有一個名為“centos6”的標簽(Tag)彰檬,此外還有一個名為“25c5298b1a36 ”的鏡像 ID(可能您所看到的鏡像 ID 與此處的不一致伸刃,那是正常現(xiàn)象僧叉,因為這個數(shù)字是隨機生成的)奕枝。此外,我們可以看到該鏡像只有 215.8 MB瓶堕,非常小巧隘道,而不像虛擬機的鏡像文件那樣龐大。
現(xiàn)在鏡像已經(jīng)有了郎笆,我們下面就需要使用該鏡像谭梗,來啟動容器。
啟動容器
容器是在鏡像的基礎(chǔ)上來運行的宛蚓,一旦容器啟動了激捏,我們就可以登錄到容器中,安裝自己所需的軟件或應(yīng)用程序凄吏。既然鏡像已經(jīng)下載到本地远舅,那么如何才能啟動容器呢闰蛔?
只需使用以下命令即可啟動容器:
1

docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash

這條命令比較長,我們稍微分解一下图柏,其實包含以下三個部分:
1

docker run <相關(guān)參數(shù)> <鏡像 ID> <初始命令>

其中序六,相關(guān)參數(shù)包括:
-i
:表示以“交互模式”運行容器
-t
:表示容器啟動后會進入其命令行
-v
:表示需要將本地哪個目錄掛載到容器中,格式:-v <宿主機目錄>:<容器目錄>

假設(shè)我們的所有安裝程序都放在了宿主機的/root/software/
目錄下蚤吹,現(xiàn)在需要將其掛載到容器的/mnt/software/
目錄下例诀。
需要說明的是,不一定要使用“鏡像 ID”裁着,也可以使用“倉庫名:標簽名”繁涂,例如:docker.cn/docker/centos:centos6。
初始命令表示一旦容器啟動二驰,需要運行的命令扔罪,此時使用“/bin/bash”哮幢,表示什么也不做慨飘,只需進入命令行即可。
安裝相關(guān)軟件
為了搭建 Java Web 運行環(huán)境,我們需要安裝 JDK 與 Tomcat背犯,下面的過程均在容器內(nèi)部進行。我們不妨選擇/opt/
目錄作為安裝目錄盅抚,首先需要通過cd /opt/
命令進入該目錄漠魏。
安裝 JDK
首先,解壓 JDK 程序包:
1

tar
-zxf
/mnt/software/jdk-7u67-linux-x64
.
tar
.gz -C .

然后妄均,重命名 JDK 目錄:
1

mv
jdk1.7.0_67/ jdk/

安裝 Tomcat
首先柱锹,解壓 Tomcat 程序包:
1

tar
-zxf
/mnt/software/apache-tomcat-7
.0.55.
tar
.gz -C .

然后,重命名 Tomcat 目錄:
1

mv
apache-tomcat-7.0.55/ tomcat/

設(shè)置環(huán)境變量
首先丰包,編輯.bashrc
文件
1

vi
~/.bashrc

然后禁熏,在該文件末尾添加如下配置:
1
2

export
JAVA_HOME=
/opt/jdk

export
PATH=$PATH:$JAVA_HOME

最后,需要使用source
命令邑彪,讓環(huán)境變量生效:
1

source
~/.bashrc

編寫運行腳本
我們需要編寫一個運行腳本瞧毙,當啟動容器時,運行該腳本寄症,啟動 Tomcat宙彪,具體過程如下:
首先,創(chuàng)建運行腳本:
1

vi
/root/run
.sh

然后有巧,編輯腳本內(nèi)容如下:
1
2
3

!/bin/bash

source
~/.bashrc

sh
/opt/tomcat/bin/catalina
.sh run

注意:這里必須先加載環(huán)境變量释漆,然后使用 Tomcat 的運行腳本來啟動 Tomcat 服務(wù)。
最后篮迎,為運行腳本添加執(zhí)行權(quán)限:
1

chmod
u+x
/root/run
.sh

退出容器
當以上步驟全部完成后男图,可使用exit
命令示姿,退出容器。
隨后逊笆,可使用如下命令查看正在運行的容器:
1

docker
ps

此時峻凫,您應(yīng)該看不到任何正在運行的程序,因為剛才已經(jīng)使用exit
命令退出的容器览露,此時容器處于停止狀態(tài)荧琼,可使用如下命令查看所有容器:
1

docker
ps
-a

輸出如下內(nèi)容:
1
2

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

57c312bbaad1 docker.cn
/docker/centos
:centos6
"/bin/bash"
27 minutes ago Exited (0) 19 seconds ago naughty_goldstine

記住以上CONTAINER ID
(容器 ID),隨后我們將通過該容器差牛,創(chuàng)建一個可運行 Java Web 的鏡像命锄。
創(chuàng)建 Java Web 鏡像
使用以下命令,根據(jù)某個“容器 ID”來創(chuàng)建一個新的“鏡像”:
1

docker commit 57c312bbaad1 huangyong
/javaweb
:0.1

該容器的 ID 是“57c312bbaad1”偏化,所創(chuàng)建的鏡像名是“huangyong/javaweb:0.1”脐恩,隨后可使用鏡像來啟動 Java Web 容器。
啟動 Java Web 容器
有必要首先使用docker images
命令侦讨,查看當前所有的鏡像:
1
2
3

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

huangyong
/javaweb
0.1 fc826a4706af 38 seconds ago 562.8 MB

docker.cn
/docker/centos
centos6 25c5298b1a36 7 weeks ago 215.8 MB

可見驶冒,此時已經(jīng)看到了最新創(chuàng)建的鏡像“huangyong/javaweb:0.1”,其鏡像 ID 是“fc826a4706af”韵卤。正如上面所描述的那樣骗污,我們可以通過“鏡像名”或“鏡像 ID”來啟動容器,與上次啟動容器不同的是沈条,我們現(xiàn)在不再進入容器的命令行需忿,而是直接啟動容器內(nèi)部的 Tomcat 服務(wù)。此時蜡歹,需要使用以下命令:
1

docker run -d -p 58080:8080 --name javaweb huangyong
/javaweb
:0.1
/root/run
.sh

稍作解釋:
-d
:表示以“守護模式”執(zhí)行/root/run.sh
腳本屋厘,此時 Tomcat 控制臺不會出現(xiàn)在輸出終端上。
-p
:表示宿主機與容器的端口映射月而,此時將容器內(nèi)部的 8080 端口映射為宿主機的 58080 端口汗洒,這樣就向外界暴露了 58080 端口,可通過 Docker 網(wǎng)橋來訪問容器內(nèi)部的 8080 端口了父款。
--name
:表示容器名稱溢谤,用一個有意義的名稱命名即可。

關(guān)于 Docker 網(wǎng)橋的內(nèi)容铛漓,需要補充說明一下溯香。實際上 Docker 在宿主機與容器之間,搭建了一座網(wǎng)絡(luò)通信的橋梁浓恶,我們可通過宿主機 IP 地址與端口號來映射容器內(nèi)部的 IP 地址與端口號玫坛,
在一系列參數(shù)后面的是“鏡像名”或“鏡像 ID”,怎么方便就怎么來包晰。最后是“初始命令”湿镀,它是上面編寫的運行腳本炕吸,里面封裝了加載環(huán)境變量并啟動 Tomcat 服務(wù)的命令。
當運行以上命令后勉痴,會立即輸出一長串“容器 ID”赫模,我們可通過docker ps
命令來查看當前正在運行的容器。
1
2

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

82f47923f926 huangyong
/javaweb
:0.1
"/root/run.sh"
4 seconds ago Up 3 seconds 0.0.0.0:58080->8080
/tcp
javaweb

品嘗
在瀏覽器中蒸矛,輸入以下地址瀑罗,即可訪問 Tomcat 首頁:
1

http:
//192
.168.65.132:58080/

注意:這里使用的是宿主機的 IP 地址,與對外暴露的端口號 58080雏掠,它映射容器內(nèi)部的端口號 8080斩祭。
總結(jié)
通過本文,我們了解了 Docker 是什么乡话?它與虛擬機的差別在哪里摧玫?以及如何安裝 Docker?如何下載 Docker 鏡像绑青?如何運行 Docker 容器诬像?如何在容器內(nèi)安裝應(yīng)用程序?如何在容器上創(chuàng)建鏡像闸婴?如何以服務(wù)的方式啟動容器坏挠?這一切看似簡單,但操作也是相當繁瑣的掠拳,不過熟能生巧癞揉,需要我們不斷地操練。
除了這種手工生成 Docker 鏡像的方式以外溺欧,還有一種更像是寫代碼一樣,可以自動地創(chuàng)建 Docker 鏡像的方式柏肪。只需要我們編寫一個 Dockerfile 文件姐刁,隨后使用docker build
命令即可完成以上所有的手工操作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末烦味,一起剝皮案震驚了整個濱河市聂使,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谬俄,老刑警劉巖柏靶,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異溃论,居然都是意外死亡屎蜓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門钥勋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炬转,“玉大人辆苔,你說我怎么就攤上這事《笈” “怎么了驻啤?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荐吵。 經(jīng)常有香客問我骑冗,道長,這世上最難降的妖魔是什么先煎? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任贼涩,我火速辦了婚禮,結(jié)果婚禮上榨婆,老公的妹妹穿的比我還像新娘磁携。我一直安慰自己,他們只是感情好良风,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布谊迄。 她就那樣靜靜地躺著,像睡著了一般烟央。 火紅的嫁衣襯著肌膚如雪统诺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天疑俭,我揣著相機與錄音粮呢,去河邊找鬼。 笑死钞艇,一個胖子當著我的面吹牛啄寡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哩照,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼挺物,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了飘弧?” 一聲冷哼從身側(cè)響起识藤,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎次伶,沒想到半個月后痴昧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡冠王,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年赶撰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡扣囊,死狀恐怖乎折,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侵歇,我是刑警寧澤骂澄,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站惕虑,受9級特大地震影響坟冲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜溃蔫,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一健提、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧伟叛,春花似錦私痹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侥蒙,卻和暖如春暗膜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鞭衩。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工学搜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人论衍。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓瑞佩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親坯台。 傳聞我的和親對象是個殘疾皇子钉凌,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容