中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

docker~從Dockerfile到Container的過程(終(zhong)于算是(shi)OK了)

回到目錄

上一文章,主要介紹Dockerfile里各參數的含義,以及在項目文件里這些內容的含義,因為大叔認為官方和網上其它文章說的有些模棱兩可,不太好讓大家理解,所有我又從新寫了一個大白話的文章,希望可以給大家一些幫助.<DotNetCore跨平臺~Dockerfile的解釋

本文章主要對一(yi)個(ge)(ge)windows下的(de)dotnet new api生成(cheng)的(de)項目進行(xing)遷(qian)移,將它(ta)存儲為一(yi)個(ge)(ge)鏡像,然后運行(xing)這個(ge)(ge)鏡像,生成(cheng)一(yi)個(ge)(ge)容(rong)(rong)器,容(rong)(rong)器對外開放(fang)5000端口(kou),大(da)家就(jiu)可以(yi)通過5000來訪問它(ta)了,說起(qi)來很(hen)容(rong)(rong)易,做起(qi)來有些坑!

Docerfile和DotnetCore部署的過程

  1. 項目需要在windows里恢復,生成一下,dotnet restore和dotent publish
  2. 我們在docker里使用的是生成后的東西,比較如目錄是項目下的obj/docker/publish
  3. 你的Dockerfile與obj目錄是同一級的
  4. 使用docker build '加你的項目根目錄路徑"
  5. 使用docker run -it -p 5000:5000 imageId 運行起一個容器來,同時向外監聽了5000端口

做起來

1 通過dotnet new生成一(yi)個項目,路徑:C:\Users\lind\hellomvc

2 我們(men)在docker里使用的是(shi)生(sheng)成后(hou)的東(dong)西,比較(jiao)如目(mu)錄是(shi)項目(mu)下的obj/docker/publish

3 你的(de)Dockerfile與obj目(mu)錄是(shi)同一級的(de)

Dockerfile的內容(rong)如(ru)下

#基于microsoft/dotnet 來構(gou)建我們的鏡像,它有800多兆(zhao),不是(shi)300多兆(zhao)那個
FROM docker.io/microsoft/dotnet
MAINTAINER lind
#設(she)置Docker容器對外暴(bao)露5000端口(kou)
EXPOSE 5000
#輸入(ru)參數(shu)
ARG source 
#如果(guo)輸入(ru)參數source為空,就使(shi)用當前目錄下的bin/Release/PublishOutput作為發布目錄
COPY ${source:-obj/Docker/publish} ./hellomvc
#將容(rong)器(qi)當(dang)前目錄(lu)設(she)為hellmvc
WORKDIR hellomvc
#在(zai)容(rong)器(qi)中運行dotnet這個命令
ENTRYPOINT ["dotnet","hellomvc.dll"]

4 使用docker build '加你的項目根目錄路徑"

這個(ge)命令是在(zai)linux平臺執行的(de),下(xia)面看一下(xia)我們項目的(de)路徑,可(ke)以使用xft,xshell等工具,方式(shi)操作,使用xft把整個(ge)項目都(dou)復(fu)制到(dao)linux下(xia)的(de)/root/project目錄

在xshell中連接你的(de)linux主機,輸入(ru)下(xia)面的(de)命(ming)令,生(sheng)成一個(ge)新的(de)鏡像(xiang)

如(ru)果希望為source輸入參(can)數指定新的值(zhi),可以使用下面語句

#docker build "/root/project/coreMvc/" --build-arg source="/root/project/coreMvc/bin/Release/PublishOutput"

如果上面出現目錄未找到的問題,請像發布目錄設備為:obj\Docker\publish

5 使(shi)用docker run -it -p 5000:5000 imageId 運行起一個容器(qi)來,同時向外監(jian)聽了5000端口

鏡像生成(cheng)后,我們使(shi)用(yong)docker run 去(qu)啟動一個容(rong)器!

啟(qi)動后,它將監聽5000這個(ge)端口,IP地址就是linux主機的,我們在外面可以通過linux ip:5000來訪(fang)問它

如果你希望對外暴露8000端口,可以這樣寫docker run -it -p 8000:5000 7c8d43fe67f9,這樣,相同的網站被你在兩個容器中共同執行了,或者說一個網站多了一個"負載"的支持,看到這里你是否想起什么了,對就是負載均衡,你的環境部署更簡單了,一個項目可以在很短的時間被部署起來,再配上反射代理(nginx,lvs),一個網站負載就搭好了!

這個(ge)命令可以為你的鏡像重命名(ming)

docker tag 7c8d43fe67f9 helloapi:1.0

當(dang)然,如果你的(de)阿里云有(you)自己的(de)鏡像,也可以把這個(ge)鏡像改名成阿里云的(de)獎項,然后把這個(ge)本(ben)地的(de)鏡像push到云上,方便在其它服務器上使用它

希望(wang)這(zhe)篇文章可以(yi)幫助(zhu)剛(gang)開始學(xue)docker的(de)學(xue)生們,大家有問題可以(yi)直(zhi)接(jie)與我聯系!

docker是(shi)一(yi)(yi)種新的技術,它在未(wei)來將會再火一(yi)(yi)把!

一個鏡像,到處執(zhi)行!

 回到目錄

posted @ 2017-07-14 13:45  張占嶺  閱讀(3947)  評論(1)    收藏  舉報