项目国产化(vmware虚拟机安装国产麒麟系统+docker部署.Net6+达梦)
<h1>1.Vmware 安装麒麟系统</h1><p><img src="https://img2023.cnblogs.com/blog/2431708/202307/2431708-20230722175110978-1636080971.png"></p>
<h1> 2.应用发布</h1>
<p> <img src="https://img2023.cnblogs.com/blog/2431708/202307/2431708-20230723110859219-1962582444.png"></p>
<p> 2.1添加docker支持之后会自动生成一个dockerfile文件,里面内容先不动。 </p>
<p> <img src="https://img2023.cnblogs.com/blog/2431708/202307/2431708-20230723111048913-1821922912.png"></p>
<p> 2.2发布成文件夹的形式,然后把生成的dockerfile复制到发布后的文件根目录下</p>
<p> </p>
<p> <img src="https://img2023.cnblogs.com/blog/2431708/202307/2431708-20230723111207219-1302521672.png"></p>
<p> 2.3到这里文件操作就完成了,然后拷到虚拟机系统中即可,(考不进来可以用<strong>WinScp</strong>或者<strong>xftp</strong>上传文件,具体怎么使用我就不多说了,具体百度)</p>
<h1>3.docker操作</h1>
<p> 3.1docker的安装</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">3.1.1 下载<br>curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun</pre>
<pre class="brush:csharp;gutter:true;">3.1.2 安装</pre>
<pre class="brush:csharp;gutter:true;">sudo dpkg -i docker-ce_18.06.3~ce~3-0~debian_amd64.deb<br><br>/*有时候可能你前面操作超时等问题,可能会提示前端锁(<span style="color: rgba(255, 0, 0, 1)">pkg: 错误: 另外一个进程已经为 dpkg frontend lock 加锁</span>)*/<br>1.这时候你可以先用命令看看有加锁的进程<br>sudo lsof /var/lib/dpkg/lock</pre>
<p><img src="https://img2023.cnblogs.com/blog/2431708/202307/2431708-20230723112109870-2116323084.png"></p>
<pre class="brush:csharp;gutter:true;">2.<code>sudo kill</code>使用命令后跟进程 ID (PID)终止进程。例如,如果 PID 为 24830,则运行<code>sudo kill 24830</code></pre>
<pre class="brush:csharp;gutter:true;">然后再重复上面的第二步安装操作就好了,然后测试一下,docker有没有安装成功直接输入docker,看到有相关命令提示就代表安装成功了</pre>
<p><img src="https://img2023.cnblogs.com/blog/2431708/202307/2431708-20230723112426191-593442792.png"> </p>
</div>
<p> 3.2docker部署 </p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">3.2.1 进入dockerfile所在的目录,构建一个名字叫做webapp的镜像注意build后面还有一个 <strong>.</strong> (代表当前构建镜像的上下文路径)<br><br>docker build -t webapp .<br><br><span style="color: rgba(255, 0, 0, 1)">不出意外的话,会提示你没有权限(</span>原因分析:这是因为你当前的用户没有这个权限。默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。</pre>
<pre class="brush:csharp;gutter:true;">出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。即我们当前的用户不是root用户。<span style="color: rgba(255, 0, 0, 1)">)</span></pre>
<p><img src="https://img2023.cnblogs.com/blog/2431708/202307/2431708-20230723113844874-1817049810.png"></p>
<p> 解决办法:把我们当前的用户添加到docker组中就可以了,这样他们就是一家人了。<br> 3.2.1.1 sudo gpasswd -a username docker #将普通用户username加入到docker组中,我当前用的是 kylin</p>
<p> gpasswd -a kylin docker</p>
<p> <span style="color: rgba(255, 0, 0, 1)">然后按照提示出入用户密码(输入密码是不会显示出来的,输入完成点击回车即可)<br> <span style="color: rgba(0, 0, 0, 1)">3.2.1.1 更新docker组(再执行之前的命令就不会再抛出权限问题了)</span><br></span></p>
<p><span style="color: rgba(255, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)"> newgrp docker</span></span></p>
<p> 3.2.2 再重新执行 3.2.1 构建项目步骤,正常是没问题的,但是我这里提示镜像没找到,可能是库里面已经没有相应的镜像了,出现该问题可尝试修改dockerfile文件,改成别的版本试试 </p>
<p> <img src="https://img2023.cnblogs.com/blog/2431708/202307/2431708-20230723115029241-1166960495.png"></p>
<p> <img src="https://img2023.cnblogs.com/blog/2431708/202307/2431708-20230723115230551-527287378.png"></p>
<p> 这里我之前是3.0不行,然后改成3.1的版本是成功的了 </p>
<p> <img src="https://img2023.cnblogs.com/blog/2431708/202307/2431708-20230723121700954-70941113.png"></p>
<p> <strong>看到这个就代表离成功就差一步之遥啦!只要启动我们刚刚创建好的容器就行了</strong></p>
<p> 3.2.2 启动:</p>
<p> docker run --name=webapp -d -p 8044:80 webapp </p>
<pre class="brush:csharp;gutter:true;"> 注意:<strong>8044代表你要访问的端口号</strong></pre>
<p> <img src="https://img2023.cnblogs.com/blog/2431708/202307/2431708-20230723122144269-1869713937.png"></p>
<p> 出现这个就代表已经启动成功了,去浏览器访问 http://localhost:8044/ 看看是否能正常访问</p>
</div>
<p> </p>
<p>附带一下常用的docker命令</p>
<p class="p">镜像相关命令:</p>
<p class="p">docker images:列出本地的镜像</p>
<p class="p">docker pull <镜像名>:从Docker仓库中拉取镜像</p>
<p class="p">docker push <镜像名>:将本地镜像推送到Docker仓库</p>
<p class="p">docker rmi <镜像名>:删除本地的镜像</p>
<p class="p">容器相关命令:</p>
<p class="p">docker ps:列出正在运行的容器</p>
<p class="p">docker ps -a:列出所有的容器(包括停止的)</p>
<p class="p">docker run <镜像名>:创建并运行一个容器</p>
<p class="p">docker start <容器ID>:启动一个已经停止的容器</p>
<p class="p">docker stop <容器ID>:停止一个正在运行的容器</p>
<p class="p">docker restart <容器ID>:重启一个容器</p>
<p class="p">docker rm <容器ID>:删除一个容器</p>
<p class="p">docker exec -it <容器ID> <命令>:在运行中的容器中执行命令</p>
<p class="p">网络相关命令:</p>
<p class="p">docker network ls:列出所有的网络</p>
<p class="p">docker network create <网络名>:创建一个网络</p>
<p class="p">docker network connect <网络名> <容器ID>:将容器连接到指定网络</p>
<p class="p">docker network disconnect <网络名> <容器ID>:将容器从指定网络中断开连接</p>
<p class="p">数据卷相关命令:</p>
<p class="p">docker volume ls:列出所有的数据卷</p>
<p class="p">docker volume create <卷名>:创建一个数据卷</p>
<p class="p">docker volume inspect <卷名>:查看数据卷的详细信息</p>
<p class="p">docker volume rm <卷名>:删除一个数据卷</p>
<p class="p">构建镜像相关命令:</p>
<p class="p">docker build -t <镜像名> <Dockerfile路径>:根据Dockerfile构建镜像</p>
<p class="p">docker build -t <镜像名> <URL>:根据远程URL上的Dockerfile构建镜像</p>
<p class="p">日志相关命令:</p>
<p class="p">docker logs <容器ID>:查看容器的日志</p>
<p class="p">docker logs -f <容器ID>:实时查看容器的日志</p>
<p class="p">其他常用命令:</p>
<p class="p">docker version:查看Docker的版本信息</p>
<p class="p">docker info:查看Docker的系统信息</p>
<p class="p">docker search <关键字>:在Docker仓库中搜索镜像</p>
<p class="p">docker cp <本地文件路径> <容器ID>:<容器文件路径>:将本地文件复制到容器中</p>
<p class="p">docker cp <容器ID>:<容器文件路径> <本地文件路径>:将容器中的文件复制到本地</p>
<p> </p>
<p><strong>最后,不同的环境可能会出现各种奇奇怪怪的问题,一下提供些解决思路:</strong></p>
<p>1)查看应用启动是否正常,如果有错误日志,复制错误日志去百度搜索!!!!!!!特别重要 </p>
<p><em id="__mceDel">2)启动正常,则先在本机使用 CURL "http://localhost:8044/" 访问对应的接口,看是否有响应,如果有的话会返回对应页面的html源码</em></p>
<p>3)启动正常,且curl有响应,则检查是否有关闭防火墙,或者开放对应的访问端口,开放端口才可以访问</p>
<p>4)腾讯云和阿里云都是有安全组,类似外层防火墙,一定要去web控制台检查是否有开启端口</p>
<p> </p>
<p><strong>最后的最后,附带一些参考资料:</strong></p>
<p>1.docker端口映射:https://www.jianshu.com/p/b92d4b845ed6</p>
<p>2.其他博主的简洁部署参考:https://www.jianshu.com/p/85051fbd3873</p>
<p>3.容器使用代码:https://www.runoob.com/docker/docker-container-usage.html</p>
<p>4.麒麟系统的安装:http://www.360doc.com/content/23/0529/21/1082641269_1082641269.shtml</p><br><br>
来源:https://www.cnblogs.com/SmallChen/p/17573808.html
頁:
[1]