按照以下步骤逐步执行即可

1、安装docker

本人文章:

2、发布netcore项目,bin\Debug\netcoreapp2.2\publish\    我是发布到这个路径下。

然后把打包好的文件上传到服务器,我是使用的FTP,我在计算机根目录新建了一个web文件夹,路径是:

web/netcore-jinruihomefurnishing/publish

publish是打包好的项目 。

3、在publish文件夹同级创建文本文件命名为(Dockerfile)内容:

FROM microsoft/dotnet:2.2-aspnetcore-runtime
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
WORKDIR /app
COPY /publish .
ENV enableDistribution=false
ENTRYPOINT ["dotnet", "JinRuiHomeFurnishingNetCoreMVC.dll"]

直接替换即可

FROM :选择自己的dotnet版本,来构建我们的镜像;

COPY:拷贝项目publish文件夹中的所有文件到 docker容器中(注:后面有一个空格和一个点)

dotnet docker 底包 docker部署net_docker


ENTRYPOINT:使用`dotnet JinRuiHomeFurnishingNetCoreMVC.dll`来运行应用程序

4、上面上传文件和配置好Dockerfile文件之后。我们需要来构建一个docker的镜像,首先cd切换到publish文件夹的上一级文件夹,

切换目录:首先切换到计算机根目录:cd ..

然后切换到publish文件夹的上一级文件夹:cd web/netcore-jinruihomefurnishing

然后在当前目录下构建镜像,命令: docker build -t haha:1.0.0 .

haha:1.0.0 .           前面是自定义名称,1.0.0是自定义版本号

haha要打包的目录同级必须有Dockerfile,且Dockerfile内路径对应:COPY /publish .

 应该会下载两个镜像,第一个就是我们构建的镜像,第二个就是微软拉取的dotnet:2.2-aspnetcore-runtime镜像,

可以用命令: docker images  查看下有没有,如

 

dotnet docker 底包 docker部署net_.net_02

 5、然后就可以创建docker容器,并启动容器,然后就可以跑项目了

使用命令:

docker run -dt -p 5032:80 -v /log:/app/log --name JinRuiHomeFurnishingNetCoreMVC haha:1.0.0

解释:-p 指定端口;--name 后面是自定义容器名称,最后面是镜像名称;

 此时新建的 JinRuiHomeFurnishingNetCoreMVC容器就启动了。

可以使用命令 docker ps 查看当前docker正在运行的容器

最后就可以运行项目了:

比如我的项目(我配置了一个swagger,无所谓了),也可以访问到了:

dotnet docker 底包 docker部署net_.net_03

6、上面就完结了,但是服务器如果宕机或重启了,docker容器就会终止,此时就可以使用命令:

docker start containId   开启容器

containId可以用 docker ps -a 查询出所有的容器列表之后得到:

dotnet docker 底包 docker部署net_docker_04

 上面这只是其中一种容器的启动方式。如果想做其他的容器方式的话可自行百度或者参考大佬:



常用命令:

  • docker rm containerId             根据容器id删除容器
  • docker rmi imageId                  根据镜像id删除镜像
  • docker ps                                  查看docker正在运行的容器
  • docker ps -a                              查看docker运行和关闭的  所有容器
  • docker start containerId          可以用于开始已经终止的容器
  • docker stop containerId          停止正在运行的容器
  • docker images                          查看所有镜像
  • cat Dockerfile                            查看文件内容
  • cd                                               切换目录 例如  cd publish/
  • cd ..                                             回到上一层
  • mkdir                                          用于创建目录。  例如 mkdir haha
  • rm -f                                            删除目录  例:rm -f haha
  • systemctl restart  docker         重启docker服务
  • systemctl start docker              启动docker