.NET Core 发布到Linux 系统中 使用Docker承载

1、将.NET Core 项目先在本地发布一下
2、使用7-z 将文件压缩成.tar 的格式
3、上传到Linux服务器 (使用MobaXterm 工具上传)
4、tar -xvf 压缩包文件名称 (如:tar -xvf FaBu.tar) 命令解压压缩包
5、使用 docker build -t wordtopdf:v1.0 . 打包镜像 其中: wordtopdf 为镜像名称 v1.0 为镜像版本
6、docker run --name=wordtopdf -p 11246:11246 -d wordtopdf:latest 启动容器 wordtopdf 为容器的名称 后面的wordtopdf为镜像的名称 冒号后面的latest为镜像的版本
7、开发过程中每次测试更新步骤 指的是只修改了代码没有引用其他的程序集的情况下,如果变更了引入的程序集 则需要重新打包生成镜像 
1、将要替换的文件复制到测试服务器上
2、参见附2


镜像与容器的关系:
前文已经向读者介绍过容器的使用了,细心的读者可能已经发现,容器在启动或者创建时,必须指定一个镜像的名称或者 id ,其实,这时镜像所扮演的角色就是容器的模版,不同的镜像可以构造出不同的容器,同一个镜像,我们也可以通过配置不同参数来构造出不通的容器。如下命令:

docker run -itd --name nginx nginx
命令中的最后一个 nginx 即表示创建该容器所需要的镜像(模版),当然这里还省略了一些信息,例如版本号等doc


附:
1、服务操作相关命令
docker service ls 查看所有服务
docker service rm xenodochial_ritchie 移除指定名称的服务 xenodochial_ritchie 为服务名称
docker service scale 服务名=0 是停服务
docker service scale 服务名=1 是启动服务

2、 单独更新代码时操作步骤
docker service ls //显示服务列表

docker stack rm middleware //删除中间件

docker stack rm indrive //删除indrive

docker stack deploy -c middleware-master-standalone.yml middleware //从配置文件中加载中间件

docker stack deploy -c /opt/docker-compose-v5.13.0.0.yml indrive //从配置文件中启动 indrive
docker service ls

说明:
也可以使用docker service scale 服务名=0 是停服务和 docker service scale 服务名=1 是启动服务 单独重启要更新的服务 不必删除所有的服务之后再创建

单独更新的前提是: 先在/opt/ 目录下的docker-compose-v5.13.0.0.yml 文件中的services节点下配置自己的服务 如下示例
wordtopdf: //容器名称
hostname: wordtopdf //容器名称
image: wordtopdf:latest //镜像名称
volumes: //文件映射路径(先把要映射的文件复制到/opt/目录中,要和publish 文件夹在同一级)
- /opt/lipengxu/appsettings.json:/app/appsettings.json //前面是每次修改更新的文件 后面是要映射到的app目录下的文件
- /opt/lipengxu/Edoc.WordToPdf.dll:/app/Edoc.WordToPdf.dll //前面是每次修改更新的文件 后面是要映射到的app目录下的文件
ports:
- 11246:11246 //端口号
labels:
"type": "1"
networks:
- edoc2
environment:
- SSLPATH=xxx
- SSLPWD=xxx
- SSL=false
deploy:
replicas: 1
restart_policy:
condition: on-failure

posted @ 2022-03-03 22:30  探索的动机  阅读(188)  评论(0编辑  收藏  举报