市环保应急中心郭小龙 發表於 2025-3-27 17:37:00

.net core项目docker部署

<p>此为手动打包更新版</p>
<p>发布.net core程序,然后放到linux目录:<strong>/data/app/docker_name&nbsp;</strong></p>
<p><span style="font-size: 18px"><strong>一、打包到容器</strong></span></p>
<p>1、安装docker</p>
<p>&nbsp;</p>
<p>2、编写Dockerfile&nbsp; (放到目录:/data/app/docker_name)</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> #See https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.</span>
<span style="color: rgba(0, 128, 128, 1)"> 2</span>
<span style="color: rgba(0, 128, 128, 1)"> 3</span> FROM mcr.microsoft.com/dotnet/aspnet:<span style="color: rgba(128, 0, 128, 1)">6.0</span> AS <span style="color: rgba(0, 0, 255, 1)">base</span>
<span style="color: rgba(0, 128, 128, 1)"> 4</span> WORKDIR /<span style="color: rgba(0, 0, 0, 1)">app
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span>
<span style="color: rgba(0, 128, 128, 1)"> 6</span> FROM mcr.microsoft.com/dotnet/sdk:<span style="color: rgba(128, 0, 128, 1)">6.0</span><span style="color: rgba(0, 0, 0, 1)"> AS build
</span><span style="color: rgba(0, 128, 128, 1)"> 7</span> WORKDIR /<span style="color: rgba(0, 0, 0, 1)">src
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span> <span style="color: rgba(0, 0, 0, 1)">COPY . .
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span>
<span style="color: rgba(0, 128, 128, 1)">10</span> RUN apt-<span style="color: rgba(0, 0, 255, 1)">get</span> update -<span style="color: rgba(0, 0, 0, 1)">y
</span><span style="color: rgba(0, 128, 128, 1)">11</span> RUN apt-<span style="color: rgba(0, 0, 255, 1)">get</span> install -<span style="color: rgba(0, 0, 0, 1)">y libgdiplus
</span><span style="color: rgba(0, 128, 128, 1)">12</span> RUN apt-<span style="color: rgba(0, 0, 255, 1)">get</span><span style="color: rgba(0, 0, 0, 1)"> clean
</span><span style="color: rgba(0, 128, 128, 1)">13</span> RUN ln -s /usr/lib/libgdiplus.so /usr/lib/<span style="color: rgba(0, 0, 0, 1)">gdiplus.dll
</span><span style="color: rgba(0, 128, 128, 1)">14</span>
<span style="color: rgba(0, 128, 128, 1)">15</span> RUN rm -f /etc/localtime &amp;&amp;<span style="color: rgba(0, 0, 0, 1)"> \
</span><span style="color: rgba(0, 128, 128, 1)">16</span> ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/<span style="color: rgba(0, 0, 0, 1)">localtime
</span><span style="color: rgba(0, 128, 128, 1)">17</span>
<span style="color: rgba(0, 128, 128, 1)">18</span> ENTRYPOINT [<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">dotnet</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Api.dll</span><span style="color: rgba(128, 0, 0, 1)">"</span>]</pre>
</div>
<p>下面内容为安装.net core基础依赖包,可根据自己选择(如果服务器不可访问外网,需要从本地导出image镜像,在服务器导入image镜像)</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> FROMmcr.microsoft.com/dotnet/aspnet:<span style="color: rgba(128, 0, 128, 1)">6.0</span> AS <span style="color: rgba(0, 0, 255, 1)">base</span>
<span style="color: rgba(0, 128, 128, 1)">2</span> WORKDIR /<span style="color: rgba(0, 0, 0, 1)">app
</span><span style="color: rgba(0, 128, 128, 1)">3</span>
<span style="color: rgba(0, 128, 128, 1)">4</span> FROM mcr.microsoft.com/dotnet/sdk:<span style="color: rgba(128, 0, 128, 1)">6.0</span><span style="color: rgba(0, 0, 0, 1)"> AS build
</span><span style="color: rgba(0, 128, 128, 1)">5</span> WORKDIR /<span style="color: rgba(0, 0, 0, 1)">src
</span><span style="color: rgba(0, 128, 128, 1)">6</span> COPY . .</pre>
</div>
<p>下面内容为安装libgdiplus,主要作用:由于window上操作图片是Draw,但是linux上没有,此时需要安装libgdiplus,如果不需要可以删掉</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> RUN apt-<span style="color: rgba(0, 0, 255, 1)">get</span> update -<span style="color: rgba(0, 0, 0, 1)">y
</span><span style="color: rgba(0, 128, 128, 1)">2</span> RUN apt-<span style="color: rgba(0, 0, 255, 1)">get</span> install -<span style="color: rgba(0, 0, 0, 1)">y libgdiplus
</span><span style="color: rgba(0, 128, 128, 1)">3</span> RUN apt-<span style="color: rgba(0, 0, 255, 1)">get</span><span style="color: rgba(0, 0, 0, 1)"> clean
</span><span style="color: rgba(0, 128, 128, 1)">4</span> RUN ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll</pre>
</div>
<p>下面内容为同步docker容器内部时间与宿主机时间(不设置会导致相差8小时)</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> RUN rm -f /etc/localtime &amp;&amp;<span style="color: rgba(0, 0, 0, 1)"> \
</span><span style="color: rgba(0, 128, 128, 1)">2</span>   ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime</pre>
</div>
<p>&nbsp;</p>
<p>3、生成镜像</p>
<div class="cnblogs_code">
<pre>docker build -t docker_name:v1 .   </pre>
</div>
<p>&nbsp;</p>
<p>4、运行容器</p>
<div class="cnblogs_code">
<pre>docker run -dit --name docker_name --add-host www.baidu.com:<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">1.100</span>-p <span style="color: rgba(128, 0, 128, 1)">8888</span>:<span style="color: rgba(128, 0, 128, 1)">8000</span>--log-driver json-file --log-opt max-size=5120m --log-opt max-file=<span style="color: rgba(128, 0, 128, 1)">2</span> --restart=always -v /data/app/docker_name:/src:rw docker_name:v1 /bin/bash</pre>
</div>
<p><strong>-dit</strong>&nbsp; 不清楚</p>
<p><strong>--name docker_name</strong>&nbsp; 定义docker容器的名称,如果不填会随机分配一个名字,建议还是填一个</p>
<p><strong>--add-host&nbsp;www.baidu.com:192.168.1.100</strong>&nbsp; 设置host,如果一切没问题,这个可以不要</p>
<p><strong>-p 8888:8000&nbsp;</strong>&nbsp;&nbsp;设置端口映射,8888为宿主机端口,8000为docker内部端口,含义:访问宿主机8888的时候,相当于访问docker里的8000端口</p>
<p><strong>--log-driver json-file --log-opt max-size=5120m --log-opt max-file=2</strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--log-opt max-size=5120m为设置日志文件单个大小为 5120M&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--log-opt max-file=2&nbsp;设置文件最多为2个,多余的会删掉&nbsp; &nbsp; &nbsp; (这一步建议根据自己服务器设置,不设置的话会无限增长)</p>
<p><strong>--restart=always&nbsp;</strong>&nbsp;&nbsp;设置会一直重启,重启dockers后会自启动,防止以外终止</p>
<p><strong>-v /data/app/docker_name:/src:rw&nbsp;</strong>&nbsp;&nbsp; 服务器文件夹与docker里文件夹映射,含义:宿主机/data/app/docker_name 这个文件夹对应容器里的/src ,容器对这个文件夹具有 rw权限,r : 独&nbsp; w:写,&nbsp;&nbsp;&nbsp; 重要文件最好都这样,比如用户上传的图片等,防止docker rm&nbsp;docker_name 后丢失</p>
<p><strong>docker_name:v1</strong>&nbsp; &nbsp; &nbsp;image的名称和版本号</p>
<p><strong>/bin/bash&nbsp;</strong>&nbsp;不清楚</p>
<p>&nbsp;</p>
<p>5、此时,我们就可以访问&nbsp; http://127.0.0.1:8888了</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 18px">二、更新代码</span></strong></p>
<p>手动更新:(需要执行两个命令)</p>
<p>1、发布程序,需要更新的dll打包到zip</p>
<p>2、将zip上传到/data/app/docker_name</p>
<p>3、解压zip,解压命令:&nbsp; unzip&nbsp; zip_name.zip<br>4、重启容器,docker restart&nbsp;docker_name</p>
<p>此时最新程序就更新了</p>
<p>&nbsp;</p>
<p>脚本更新:(只需要执行一个命令,包含备份和回滚)</p>
<p>准备工作:</p>
<p>1、新建文件夹&nbsp;/data/bak</p>
<p>2、新建文件夹&nbsp;/data/bak/docker_name</p>
<p>3、在/data/bak文件夹下新建文件&nbsp; update.sh&nbsp; &nbsp;和&nbsp; bak.sh 两个文件&nbsp; &nbsp;</p>
<p>以下是 update.sh 文件内容</p>
<p>注:第30-32行,第39-41行,请替换成自己需要更新的文件</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)"> 2</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)"> 3</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)"> 4</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)"> 5</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)"> 6</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">------------------------------------------------------------------------------------</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)"> 7</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">需要更新的文件:$1</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)"> 8</span>
<span style="color: rgba(0, 128, 128, 1)"> 9</span> mulu=/data/<span style="color: rgba(0, 0, 0, 1)">app
</span><span style="color: rgba(0, 128, 128, 1)">10</span>
<span style="color: rgba(0, 128, 128, 1)">11</span> cd $mulu/bak/<span style="color: rgba(0, 0, 0, 1)">docker_name
</span><span style="color: rgba(0, 128, 128, 1)">12</span>
<span style="color: rgba(0, 128, 128, 1)">13</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">解压文件 开始</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">14</span> unzip -o $<span style="color: rgba(128, 0, 128, 1)">1</span>
<span style="color: rgba(0, 128, 128, 1)">15</span>
<span style="color: rgba(0, 128, 128, 1)">16</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">文件解压 完成</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">17</span>
<span style="color: rgba(0, 128, 128, 1)">18</span>
<span style="color: rgba(0, 128, 128, 1)">19</span> current_date=`date -d <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">-1 day</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">+%Y%m%d_%H%M</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">`
</span><span style="color: rgba(0, 128, 128, 1)">20</span>
<span style="color: rgba(0, 128, 128, 1)">21</span>
<span style="color: rgba(0, 128, 128, 1)">22</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">备份文件夹名为 :$current_date</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">23</span>
<span style="color: rgba(0, 128, 128, 1)">24</span> <span style="color: rgba(0, 0, 0, 1)">mkdir $current_date
</span><span style="color: rgba(0, 128, 128, 1)">25</span>
<span style="color: rgba(0, 128, 128, 1)">26</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">创建备份文件夹成功</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">27</span>
<span style="color: rgba(0, 128, 128, 1)">28</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">将dll剪切到备份文件夹 start</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">29</span>
<span style="color: rgba(0, 128, 128, 1)">30</span> cp $mulu/docker_name/api.dll $mulu/bak/docker_name/$current_date/<span style="color: rgba(0, 0, 0, 1)">api.dll
</span><span style="color: rgba(0, 128, 128, 1)">31</span> cp $mulu/docker_name/api.exe $mulu/bak/docker_name/$current_date/<span style="color: rgba(0, 0, 0, 1)">api.exe
</span><span style="color: rgba(0, 128, 128, 1)">32</span> cp $mulu/docker_name/api.pdb $mulu/bak/docker_name/$current_date/<span style="color: rgba(0, 0, 0, 1)">api.pdb
</span><span style="color: rgba(0, 128, 128, 1)">33</span>
<span style="color: rgba(0, 128, 128, 1)">34</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">将dll剪切到备份文件夹 end</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">35</span>
<span style="color: rgba(0, 128, 128, 1)">36</span>
<span style="color: rgba(0, 128, 128, 1)">37</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">将解压完的dll剪切到程序所在目录   start</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">38</span>
<span style="color: rgba(0, 128, 128, 1)">39</span> mv $mulu/bak/docker_name/api.dll $mulu/docker_name/<span style="color: rgba(0, 0, 0, 1)">api.dll
</span><span style="color: rgba(0, 128, 128, 1)">40</span> mv$mulu/bak/docker_name/api.exe $mulu/docker_name/<span style="color: rgba(0, 0, 0, 1)">api.exe
</span><span style="color: rgba(0, 128, 128, 1)">41</span> mv $mulu/bak/docker_name/api.pdb $mulu/docker_name/<span style="color: rgba(0, 0, 0, 1)">api.pdb
</span><span style="color: rgba(0, 128, 128, 1)">42</span>
<span style="color: rgba(0, 128, 128, 1)">43</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">将解压完的dll剪切到程序所在目录   end</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">44</span>
<span style="color: rgba(0, 128, 128, 1)">45</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">启动程序 start</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">46</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">47</span>
<span style="color: rgba(0, 128, 128, 1)">48</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">docker restart docker_name</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">49</span>
<span style="color: rgba(0, 128, 128, 1)">50</span> <span style="color: rgba(0, 0, 0, 1)">docker restart docker_name
</span><span style="color: rgba(0, 128, 128, 1)">51</span>
<span style="color: rgba(0, 128, 128, 1)">52</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">53</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">启动结束 end</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">54</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">55</span> <span style="color: rgba(0, 0, 0, 1)">docker ps
</span><span style="color: rgba(0, 128, 128, 1)">56</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">57</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">这次备份的版本号为:$current_date,如果需要回滚,可以执行命令:   bash $mulu/bak/bak.sh $current_date</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">58</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">------------------------------------------------------------------------------------</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">59</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">60</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">61</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">62</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">63</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span></pre>
</div>
<p>以下是bak.sh文件的内容</p>
<p>注:第13-15行请替换成自己需要回滚的内容</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)"> 2</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)"> 3</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)"> 4</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)"> 5</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)"> 6</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">------------------------------------------------------------------------------------</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)"> 7</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">需要回滚的版本号:$1</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)"> 8</span>
<span style="color: rgba(0, 128, 128, 1)"> 9</span> mulu=/data/<span style="color: rgba(0, 0, 0, 1)">app
</span><span style="color: rgba(0, 128, 128, 1)">10</span>
<span style="color: rgba(0, 128, 128, 1)">11</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">将备份目录[$1]的dll剪切到程序所在目录   start</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">12</span>
<span style="color: rgba(0, 128, 128, 1)">13</span> cp $mulu/bak/docker_name/$<span style="color: rgba(128, 0, 128, 1)">1</span>/api.dll $mulu/docker_name/<span style="color: rgba(0, 0, 0, 1)">api.dll
</span><span style="color: rgba(0, 128, 128, 1)">14</span> cp $mulu/bak/docker_name/$<span style="color: rgba(128, 0, 128, 1)">1</span>/api.exe $mulu/docker_name/<span style="color: rgba(0, 0, 0, 1)">api.exe
</span><span style="color: rgba(0, 128, 128, 1)">15</span> cp $mulu/bak/docker_name/$<span style="color: rgba(128, 0, 128, 1)">1</span>/api.pdb $mulu/docker_name/<span style="color: rgba(0, 0, 0, 1)">api.pdb
</span><span style="color: rgba(0, 128, 128, 1)">16</span>
<span style="color: rgba(0, 128, 128, 1)">17</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">将备份目录[$1]的dll剪切到程序所在目录   end</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">18</span>
<span style="color: rgba(0, 128, 128, 1)">19</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">启动程序 start</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">20</span>
<span style="color: rgba(0, 128, 128, 1)">21</span> docker restart <span style="color: rgba(0, 0, 255, 1)">base</span>
<span style="color: rgba(0, 128, 128, 1)">22</span>
<span style="color: rgba(0, 128, 128, 1)">23</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">24</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">25</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">启动结束 end回滚完成</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">26</span> echo <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">------------------------------------------------------------------------------------</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 128, 128, 1)">27</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">28</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">29</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">30</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">31</span> echo <span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 128, 128, 1)">32</span> docker ps</pre>
</div>
<p>更新步骤:</p>
<p>1、发布程序,需要更新的dll打包到zip</p>
<p>2、将zip上传到/data/bak/docker_name</p>
<p>3、cd /data/bak&nbsp;&nbsp;</p>
<p>4、bash update.sh&nbsp; zip_name.zip&nbsp; &nbsp; &nbsp;(每次更新替换zip_name)</p>
<p>此时最新程序就更新了</p>
<p>如果需要回滚请执行第4步出来的回滚语句</p><br><br>
来源:https://www.cnblogs.com/LinryBaker/p/18796527
頁: [1]
查看完整版本: .net core项目docker部署