按照以下步骤逐步执行即可
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容器中(注:后面有一个空格和一个点)
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 查看下有没有,如
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,无所谓了),也可以访问到了:
6、上面就完结了,但是服务器如果宕机或重启了,docker容器就会终止,此时就可以使用命令:
docker start containId 开启容器
containId可以用 docker ps -a 查询出所有的容器列表之后得到:
上面这只是其中一种容器的启动方式。如果想做其他的容器方式的话可自行百度或者参考大佬:
常用命令:
- 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