docker~从Dockerfile到Container的过程(终于算是OK了)
回到目錄
上一文章,主要介紹Dockerfile里各參數(shù)的含義,以及在項(xiàng)目文件里這些內(nèi)容的含義,因?yàn)榇笫逭J(rèn)為官方和網(wǎng)上其它文章說的有些模棱兩可,不太好讓大家理解,所有我又從新寫了一個(gè)大白話的文章,希望可以給大家一些幫助.<DotNetCore跨平臺(tái)~Dockerfile的解釋>
本文章主要對一個(gè)windows下的dotnet new api生成的項(xiàng)目進(jìn)行遷移,將它存儲(chǔ)為一個(gè)鏡像,然后運(yùn)行這個(gè)鏡像,生成一個(gè)容器,容器對外開放5000端口,大家就可以通過5000來訪問它了,說起來很容易,做起來有些坑!
Docerfile和DotnetCore部署的過程
做起來
1 通過dotnet new生成一個(gè)項(xiàng)目,路徑:C:\Users\lind\hellomvc
2 我們在docker里使用的是生成后的東西,比較如目錄是項(xiàng)目下的obj/docker/publish
3 你的Dockerfile與obj目錄是同一級(jí)的
Dockerfile的內(nèi)容如下
#基于microsoft/dotnet 來構(gòu)建我們的鏡像,它有800多兆,不是300多兆那個(gè) FROM docker.io/microsoft/dotnet MAINTAINER lind #設(shè)置Docker容器對外暴露5000端口 EXPOSE 5000 #輸入?yún)?shù) ARG source #如果輸入?yún)?shù)source為空,就使用當(dāng)前目錄下的bin/Release/PublishOutput作為發(fā)布目錄 COPY ${source:-obj/Docker/publish} ./hellomvc #將容器當(dāng)前目錄設(shè)為hellmvc WORKDIR hellomvc #在容器中運(yùn)行dotnet這個(gè)命令 ENTRYPOINT ["dotnet","hellomvc.dll"]4 使用docker build '加你的項(xiàng)目根目錄路徑"
這個(gè)命令是在linux平臺(tái)執(zhí)行的,下面看一下我們項(xiàng)目的路徑,可以使用xft,xshell等工具,方式操作,使用xft把整個(gè)項(xiàng)目都復(fù)制到linux下的/root/project目錄
在xshell中連接你的linux主機(jī),輸入下面的命令,生成一個(gè)新的鏡像
如果希望為source輸入?yún)?shù)指定新的值,可以使用下面語句
#docker build "/root/project/coreMvc/" --build-arg source="/root/project/coreMvc/bin/Release/PublishOutput"
如果上面出現(xiàn)目錄未找到的問題,請像發(fā)布目錄設(shè)備為:obj\Docker\publish
5 使用docker run -it -p 5000:5000 imageId 運(yùn)行起一個(gè)容器來,同時(shí)向外監(jiān)聽了5000端口
鏡像生成后,我們使用docker run 去啟動(dòng)一個(gè)容器!
啟動(dòng)后,它將監(jiān)聽5000這個(gè)端口,IP地址就是linux主機(jī)的,我們在外面可以通過linux ip:5000來訪問它
如果你希望對外暴露8000端口,可以這樣寫docker run -it -p 8000:5000 7c8d43fe67f9,這樣,相同的網(wǎng)站被你在兩個(gè)容器中共同執(zhí)行了,或者說一個(gè)網(wǎng)站多了一個(gè)"負(fù)載"的支持,看到這里你是否想起什么了,對就是負(fù)載均衡,你的環(huán)境部署更簡單了,一個(gè)項(xiàng)目可以在很短的時(shí)間被部署起來,再配上反射代理(nginx,lvs),一個(gè)網(wǎng)站負(fù)載就搭好了!
這個(gè)命令可以為你的鏡像重命名
docker tag 7c8d43fe67f9 helloapi:1.0
當(dāng)然,如果你的阿里云有自己的鏡像,也可以把這個(gè)鏡像改名成阿里云的獎(jiǎng)項(xiàng),然后把這個(gè)本地的鏡像push到云上,方便在其它服務(wù)器上使用它
希望這篇文章可以幫助剛開始學(xué)docker的學(xué)生們,大家有問題可以直接與我聯(lián)系!
docker是一種新的技術(shù),它在未來將會(huì)再火一把!
一個(gè)鏡像,到處執(zhí)行!
?回到目錄
轉(zhuǎn)載于:https://www.cnblogs.com/lori/p/7169816.html
總結(jié)
以上是生活随笔為你收集整理的docker~从Dockerfile到Container的过程(终于算是OK了)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 指静脉识别技术在安防行业的应用前景
- 下一篇: C/C++中const关键字的用法及其与