aspnetcore的docker鏡像在docker官網是有的,是由微軟提供的。它的依賴鏡像是microsoft/dotnet。經過訪問網址:https://hub.docker.com/explore/,搜索關鍵字aspnetcore就會找到鏡像。可是若是直接從官網拉取鏡像,速度會比較慢。以前咱們對docker鏡像加速器作過設置,用的是阿里雲的,因此之後拉取鏡像都是從阿里雲拉取的。web
執行如下命令拉取aspnetcore最新鏡像:docker
[root@localhost ~]# docker pull microsoft/aspnetcore
拉取成功後執行docker images命令,若是能看到aspnetcore鏡像,則表示拉取成功。centos
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/microsoft/aspnetcore latest c4ca78cf9dca 2 weeks ago 325 MB
咱們能夠執行下面的命令基於該鏡像建立一個容器,並進入該容器:瀏覽器
[root@localhost ~]# docker run -it c4ca78cf9dca
執行下面的命令便可退出當前容器:asp.net
root@66095a66dce1:/# exit
1.建立Dockerfile文件curl
咱們先在臨時目錄建立Dockerfile,待會咱們的asp.net core web應用也會放在臨時目錄。網站
[root@localhost ~]# cd /tmp [root@localhost tmp]# vi Dockerfile
將下面代碼拷貝進去,保存並退出。ui
FROM docker.io/microsoft/aspnetcore WORKDIR /dockertest COPY ./PublishOutput . EXPOSE 8080 CMD ["dotnet", "Docker.Web.dll"]
對上面五行代碼作下說明:阿里雲
FROM表示新鏡像所依賴的基礎鏡像。url
WORKDIR表示你的asp.net core web應用放在容器的哪一個目錄,這裏是/dockertest目錄,沒有會自動建立
COPY表示拷貝當前系統下的哪一個目錄,這裏是PublishOutput目錄
EXPOSE表示暴露出來的端口號,和容器的端口號對應。這裏默認是80。
CMD表示執行的命令,即運行咱們本身的asp.net core web程序。
想辦法將你的asp.net core web發佈程序拷貝到centos系統的/tmp臨時目錄
2.建立鏡像
[root@localhost tmp]# docker build -t mycore .
後面的英文符號「.」不能去掉,mycore表示你的鏡像名稱。若是出現Step1-Step5,則表示鏡像建立成功。
再次查看全部鏡像
[root@localhost tmp]# docker images
再次查看全部鏡像,咱們會看到:
REPOSITORY TAG IMAGE ID CREATED SIZE mycore latest 44150b234924 About a minute ago 332 MB docker.io/microsoft/aspnetcore latest c4ca78cf9dca 2 weeks ago 325 MB
除了咱們從官網拉取的aspnetcore鏡像,還有一個咱們本身建立的鏡像:mycore。
3.運行容器
[root@localhost tmp]# docker run --name mycore -p 8080:80 -d mycore
第一個mycore表示容器名稱,第二個mycore表示鏡像名稱
執行後會出現新容器的ID:2859330db3a5c6113b0ccdf6e9d78e7e36ea17f6c4de495514c4ec8901ed9218
4.執行curl命令訪問咱們的網站
[root@localhost tmp]# curl http://localhost:8080
在瀏覽器中輸入 http://192.168.84.137:8080/