docker容器化部署.NETCORE

1.安装docker

1.1 查看docker是否安装

命令如下:

Docker -v

1.2 未安装执行以下命令安装

1.2.1 添加 Docker 软件源

dnf config-manager --add-repo=http://mirrors.tencent.com/docker-ce/linux/centos/docker-ce.repo

1.2.2 查看已添加的 Docker 软件源。

dnf list docker-ce

1.2.3 安装docker

dnf install -y docker-ce --nobest

1.2.4 运行docker

systemctl start docker

1.2.5 查看docker信息

docker info

2.项目支持Docker

2.1 项目右键添加docker文件

2.2 添加完成后会自动生成一个Dockerfile文件内容如下

# 1. 设置基础镜像
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build

# 2. 指定(编译和发布)工作目录
WORKDIR /app

# 3. 将.csporj文件复制到工作目录“/app”下,然后执行“dotnet restore”还原nuget包
COPY *.csproj ./
RUN dotnet restore

# 4. 将所有文件辅助到工作目录"/app"下,然后使用"dotnet publish"命令发布到“/app/out”目录下
COPY . ./
RUN dotnet publish -c Release -o out

# 5. 编译生成Docker镜像
# 5.1 指定基础镜像
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS runtime

# 5.2 设置工作目录,并将发布的所有文件复制到out目录下
WORKDIR /app
COPY --from=build /app/out .

# 5.3 设置环境变量(指定端口80,443)
#ENV ASPNETCORE_URLS http://0.0.0.0:80;https://0.0.0.0:443

# 5.4 执行dotnet命令启动应用
ENTRYPOINT ["dotnet", "myapp.dll" ]

打开项目 目录 Properties 下 launchSettings.json 文件,将会看到新增的如下内容:

需要注意的是Dockerfile文件中的 EXPOSE后方的端口需要与 Properties\launchSettings.json 文件中的 ASPNETCORE_HTTP_PORTS 指定端端口一致,该端口在部署到 docker 后,将作为容器端口使用。

2.3 将发布好得文件上传ubuntu

在publish上一级创建Dockerfile文件进行数据编辑

定位到public同级目录,创建Dockerfile文件

touch Dockerfile vim Dockerfile

2.3 vim编辑,输入下面的内容

FROM mcr.microsoft.com/dotnet/aspnet:8.0.0

WORKDIR /publish

EXPOSE 8080

EXPOSE 443 COPY ./publish/ .

ENV ASPNETCORE_URLS http://+:8080

ENTRYPOINT ["dotnet","Acme.BookStore.Web.dll"]

注意:ENTRYPOINT ["dotnet","Acme.BookStore.Web.dll"]Acme.BookStore.Web.dll是我项目的dll。项目不一样名字就不一样。这里请用实际项目的dll名称哦

3.生成镜像

3.1 生成镜像

【推荐使用,注意镜像名字需要字母小写】命令:docker build -t 镜像名称:版本号 .

sudo docker build -t aspnetcorewebapi:1.0.0 .

docker build -t aspnetcorewebapi .

3.2 查看镜像

docker images

4.运行镜像

docker run -d -p 18080:18080 --name mywebapicontainer aspnetcorewebapi

#-d:后台运行 -P:暴露端口给客户端访问 --name 创建一个容器 指定镜像

【注意:如果有指定版本的项目运行镜像时需要加版本号,这个取决于你生成的镜像,如果不带版本号,默认运行是最新的, docker run -d -p 18080:18080 --name mywebapicontainer aspnetcorewebapi:1.0.0】

运行成功后,输入下列命令。查看运行的进程。方便定位信息,如果有容器id说明成功了

docker ps

4.1 删除镜像文件

# 查看所有镜像

docker images

# 删除特定镜像

docker rmi my-image:latest

# 强制删除特定镜像

docker rmi -f my-image:latest

# 删除所有未关联容器的镜像

docker image prune -a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值