【Docker】1、在Linux裏使用Docker部署一個Asp.NetCore HelloWord項目

我在騰訊雲活動期間買了兩臺ECS,操作系統是Linux CentOS 7.0以上版本
爲啥買兩臺呢?
其一:一臺用來搭建私有鏡像倉庫
其二:做Docker集羣

一、在CentOS 7.0上安裝 .NET SDK或 .NET 運行時

https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos

安裝 .NET 之前,請運行以下命令,將 Microsoft 包簽名密鑰添加到受信任密鑰列表,並添加 Microsoft 包存儲庫。 打開終端並運行以下命令:
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

1.1、安裝AspNetCore運行時(注:我是3.1和5.0兩個版本的運行時都安裝了)
sudo yum install aspnetcore-runtime-5.0

sudo yum install aspnetcore-runtime-3.1

1.2、安裝AspNetCoreSDK (注:我是3.1和5.0兩個版本的SDK都安裝了)

sudo yum install dotnet-sdk-5.0

sudo yum install dotnet-sdk-3.1

1.3、查看Dotnet的Runtime,SDK
dotnet --info

如果出現下圖證明,AspNetCore運行時和SDK都安裝好了

 

二、Linux上安裝Docker

2.1、Centos7.0以上的版本

2.2、安裝Docker的版本倉庫-Docker的版本

2.2.1、設置倉庫
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2.2.2、穩定倉庫的連接
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

2.3、安裝Docker(注:默認安裝最新版本)
sudo yum install docker-ce docker-ce-cli containerd.io

2.4、Docker啓動
sudo systemctl start docker

2.5、查看Docker版本
docker version

如果出現下圖證明,docker安裝好了

 

 

三、Docker上部署AspNetCore項目
3.1、vs2019做的Asp.NetCore項目

 

3.2、Dockerfile文件

 

3.3、準備.Net Core SDK和.Net Core Runtime運行時(注:在第一步的時候已經安裝了)

3.4、拉取AspNetCore 運行時鏡像(注:我是3.1和5.0兩個版本的鏡像都拉取了)
docker pull mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim

docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim

3.5、拉取AspNetCore SDK鏡像(注:我是3.1和5.0兩個版本的鏡像都拉取了)
docker pull mcr.microsoft.com/dotnet/sdk:5.0-buster-slim

docker pull mcr.microsoft.com/dotnet/core/sdk:3.1-buster

3.6、寫一個簡單的HelloWorld-Asp.NetCore項目傳入到主機的HelloWorld目錄裏


3.7、移動Dockerfile文件到HelloWorld工作目錄

mv Dockerfile ../Dockerfile

3.8、根據Dockerfile文件生成鏡像
docker build -t hellocore .

docker build -t hellocore -f Dockerfile .

 hellocore:鏡像名稱(注:鏡像名稱只能小寫字母,大寫字母會報錯)

 

3.9、查看鏡像列表,看hellocore是否創建成功

docker images

 

注:這裏有個坑,正常來說應該在外面目錄執行上述命令,但是總是報找不到項目文件,所以我在HelloWorld/HelloWorld裏面執行的命令


3.10、在Docker上運行AspNetCore(注:我使用hellocore這個鏡像運行兩個不同端口的docker實例)

docker run -d -p 8081:80 hellocore
docker run -d -p 8082:80 hellocore

 -d:後臺運行,新啓動一個線程去創建容器實例

-p 8082:80:8082是宿主機端口也就是我這臺ECS的端口,80是容器的端口
hellocore:鏡像名稱

3.11、查看容器實例是否運行

docker ps -a

 

如果看到如下圖,status列是Up,證明實例已經正常運轉了

 

3.12、這時候就可以通過下面命令去查看項目是否正常或者去瀏覽器查看
curl http://*****:8081

、、

一些常用命令
1、查看鏡像列表
docker images

2、查看容器列表
docker ps -a

3、停止指定容器
docker stop 容器ID或容器名

4、刪除指定容器
docker rm 容器ID或容器名(注:只有先停止服務才能刪除)

5、刪除所有容器
docker rm $(docker ps -aq)

6、查看容器資源
docker stats <容器ID或容器名>

7、搜索鏡像
docker search <鏡像名稱>

8、拉取鏡像
docker pull <鏡像名稱>

9、鏡像刪除
docker image rm <鏡像id/鏡像名稱>

10、鏡像設置標籤,也叫鏡像設置版本
docker image tag 鏡像名稱:v1 鏡像名稱

11、後臺運行容器
docker run -d <鏡像名稱>
或自定義端口
docker run -d -p 8082:80 <鏡像名稱>

12、停止容器
docker stop <鏡像名稱>

13、啓動容器
docker start <鏡像名稱>

14、停止Docker服務
service docker stop

15、重啓Docker服務
service docker restart

systemctl restart docker.service(注:所有Docker實例要重啓)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章