詳解如何使用Docker部署一個(gè)web項(xiàng)目并打包成鏡像文件
docker基本入門(mén)以后,可以試試打包docker鏡像與dockerfile了
docker鏡像
docker hub倉(cāng)庫(kù)有2類(lèi)倉(cāng)庫(kù),用戶(hù)倉(cāng)庫(kù)和頂層倉(cāng)庫(kù),用戶(hù)倉(cāng)庫(kù)由docker用戶(hù)創(chuàng)建的,頂層倉(cāng)庫(kù)由docker內(nèi)部的人來(lái)管理的。倉(cāng)庫(kù)里存放的是鏡像文件,那么問(wèn)題來(lái)了 ,怎么去創(chuàng)建鏡像呢?
how to create image
構(gòu)建docker鏡像的有2種方法:
1.使用docker commit命令。
2.使用docker build 命令和Dockerfile文件。在這里并不推薦使用docker commit命令,而應(yīng)該使用更靈活,更強(qiáng)大的Dockerfile來(lái)構(gòu)建鏡像..
1.創(chuàng)建一個(gè)centos鏡像
通過(guò)命令下載dockerhub上的官方鏡像
docker pull centos
2.創(chuàng)建一個(gè)基于centos鏡像的容器
通過(guò)命令docker images查看服務(wù)器上已有的鏡像
通過(guò)命令
docker run -dit -p 4000:8080 centos鏡像名或id
創(chuàng)建一個(gè)基于centos鏡像的容器在后臺(tái)運(yùn)行并將服務(wù)器的4000端口映射到容器中的8080端口
3.將jdk,tomcat的安裝包和web項(xiàng)目上傳至鏡像中
docker cp /usr/local/jdk安裝包 容器名:容器地址 docker cp /usr/local/tomcat安裝包 容器名:容器地址 docker cp /usr/local/web項(xiàng)目 容器名:容器地址1
4.進(jìn)入容器并操作
通過(guò)命令
docker attach 容器名或id
進(jìn)入容器中
安裝jdk和tomcat的步驟和在linux中安裝步驟一致,你可以把容器當(dāng)成一個(gè)linux虛擬機(jī), 之后啟動(dòng)tomcat服務(wù)
5.驗(yàn)證
在瀏覽器上輸入http://服務(wù)器ip:4000,如果出現(xiàn)tomcat頁(yè)面則成功了
6.將容器打包成鏡像
docker commit -a "runoob.com" -m "my apache" 容器名稱(chēng)或id 打包的鏡像名稱(chēng):標(biāo)簽
OPTIONS說(shuō)明:
-a :提交的鏡像作者;
-c :使用Dockerfile指令來(lái)創(chuàng)建鏡像;
-m :提交時(shí)的說(shuō)明文字;
-p :在commit時(shí),將容器暫停。
7.上傳至你的dockerhub
使用您的Docker ID登錄
如果您沒(méi)有Docker帳戶(hù),請(qǐng)?jiān)赾loud.docker.com注冊(cè)一個(gè) 。記下你的用戶(hù)名。
登錄到本地計(jì)算機(jī)上的Docker公共注冊(cè)表。
docker login
標(biāo)記鏡像
將本地映像與注冊(cè)表上的存儲(chǔ)庫(kù)相關(guān)聯(lián)的符號(hào)是 username/repository:tag。該標(biāo)簽是可選的,但推薦使用,因?yàn)檫@是注冊(cè)管理機(jī)構(gòu)為Docker鏡像提供版本的機(jī)制。給存儲(chǔ)庫(kù)并為上下文標(biāo)記有意義的名稱(chēng),例如 get-started:part2。這將把圖像放入get-started存儲(chǔ)庫(kù)并標(biāo)記為part2。
現(xiàn)在,把它們放在一起來(lái)標(biāo)記鏡像。運(yùn)行docker tag image您的用戶(hù)名,存儲(chǔ)庫(kù)和標(biāo)簽名稱(chēng),以便鏡像將上傳到您想要的目的地。該命令的語(yǔ)法是:
docker tag image username/repository:tag
例如:
docker tag friendlyhello john/get-started:part2
運(yùn)行docker鏡像以查看新標(biāo)記的鏡像。(你也可以用docker image ls。)
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE friendlyhello latest d9e555c53008 3 minutes ago 195MB john/get-started part2 d9e555c53008 3 minutes ago 195MB python 2.7-slim 1c7128a655f6 5 days ago 183MB …
發(fā)布鏡像
將您的標(biāo)記鏡像上傳到存儲(chǔ)庫(kù):
docker push username/repository:tag
8.下載鏡像
一旦完成,這個(gè)上傳的結(jié)果是公開(kāi)的。如果你登錄到Docker Hub,你將會(huì)看到那個(gè)新的鏡像和它的pull命令。
從遠(yuǎn)程存儲(chǔ)庫(kù)中提取并運(yùn)行映像
從現(xiàn)在起,您可以使用docker run此命令在任何機(jī)器上使用并運(yùn)行您的應(yīng)用程序:
docker run -p 4000:80 username/repository:tag
如果圖像在機(jī)器上本地不可用,Docker將從存儲(chǔ)庫(kù)中取出。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于為Windows?Service?2019?使用?Docker的問(wèn)題
最近收到領(lǐng)導(dǎo)通知,甲方需要將原來(lái)的服務(wù)器遷移到新的服務(wù)器,原來(lái)的服務(wù)器上安裝了很多的服務(wù),每次重啟之后總是有很多的問(wèn)題需要人工大量的進(jìn)行干預(yù),今天小編通過(guò)本文給大家介紹下Windows?Service?2019?使用?Docker的問(wèn)題,需要的朋友參考下吧2022-05-05
docker容器無(wú)法ping域名問(wèn)題及解決
這篇文章主要介紹了docker容器無(wú)法ping域名問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
再見(jiàn) Docker如何5分鐘轉(zhuǎn)型 containerd
這篇文章主要介紹了再見(jiàn) Docker如何5分鐘轉(zhuǎn)型 containerd,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
docker安裝Portainer CE的實(shí)現(xiàn)示例
Portainer是一款易用的開(kāi)源容器管理工具,適合各級(jí)經(jīng)驗(yàn)的Docker用戶(hù),它提供直觀的UI,方便管理、部署和監(jiān)控容器,本文就來(lái)介紹一下docker安裝Portainer CE的實(shí)現(xiàn)示例,感興趣的可以了解一下2024-09-09
親手教你Docker Compose安裝DOClever的詳細(xì)過(guò)程
DOClever是一個(gè)可視化免費(fèi)開(kāi)源的接口管理工具,DOClever前后端全部采用了javascript來(lái)作為我們的開(kāi)發(fā)語(yǔ)言。這篇文章主要介紹了Docker Compose安裝DOClever的詳細(xì)過(guò)程,需要的朋友可以參考下2021-09-09
Windows下Docker安裝各種軟件的詳細(xì)過(guò)程
這篇文章主要介紹了Windows下Docker安裝各種軟件的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07

