Fork me on GitHub

项目国产化(vmware虚拟机安装国产麒麟系统+docker部署.Net6+达梦)

1.Vmware 安装麒麟系统

 2.应用发布

  

   2.1添加docker支持之后会自动生成一个dockerfile文件,里面内容先不动。    

  

   2.2发布成文件夹的形式,然后把生成的dockerfile复制到发布后的文件根目录下

 

  

   2.3到这里文件操作就完成了,然后拷到虚拟机系统中即可,(考不进来可以用WinScp或者xftp上传文件,具体怎么使用我就不多说了,具体百度)

3.docker操作

  3.1docker的安装

3.1.1 下载
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
3.1.2 安装
sudo dpkg -i docker-ce_18.06.3~ce~3-0~debian_amd64.deb

/*有时候可能你前面操作超时等问题,可能会提示前端锁(pkg: 错误: 另外一个进程已经为 dpkg frontend lock 加锁)*/
1.这时候你可以先用命令看看有加锁的进程
sudo lsof /var/lib/dpkg/lock

2.sudo kill使用命令后跟进程 ID (PID)终止进程。例如,如果 PID 为 24830,则运行sudo kill 24830
然后再重复上面的第二步安装操作就好了,然后测试一下,docker有没有安装成功直接输入docker,看到有相关命令提示就代表安装成功了

  

  3.2docker部署  

3.2.1 进入dockerfile所在的目录,构建一个名字叫做webapp的镜像注意build后面还有一个 .  (代表当前构建镜像的上下文路径)

docker build -t webapp .

不出意外的话,会提示你没有权限(原因分析:这是因为你当前的用户没有这个权限。默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。
出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。即我们当前的用户不是root用户。

    解决办法:把我们当前的用户添加到docker组中就可以了,这样他们就是一家人了。
    3.2.1.1  sudo gpasswd -a username docker  #将普通用户username加入到docker组中,我当前用的是  kylin

       gpasswd -a kylin docker

  然后按照提示出入用户密码(输入密码是不会显示出来的,输入完成点击回车即可)
 3.2.1.1  更新docker组(再执行之前的命令就不会再抛出权限问题了)

  newgrp docker

 3.2.2 再重新执行  3.2.1 构建项目步骤,正常是没问题的,但是我这里提示镜像没找到,可能是库里面已经没有相应的镜像了,出现该问题可尝试修改dockerfile文件,改成别的版本试试  

  

  

   这里我之前是3.0不行,然后改成3.1的版本是成功的了 

  

  看到这个就代表离成功就差一步之遥啦!只要启动我们刚刚创建好的容器就行了

  3.2.2 启动:

  docker run --name=webapp -d -p 8044:80 webapp     

 注意:8044代表你要访问的端口号

  

   出现这个就代表已经启动成功了,去浏览器访问   http://localhost:8044/  看看是否能正常访问

  

附带一下常用的docker命令

镜像相关命令:

docker images:列出本地的镜像

docker pull <镜像名>:从Docker仓库中拉取镜像

docker push <镜像名>:将本地镜像推送到Docker仓库

docker rmi <镜像名>:删除本地的镜像

容器相关命令:

docker ps:列出正在运行的容器

docker ps -a:列出所有的容器(包括停止的)

docker run <镜像名>:创建并运行一个容器

docker start <容器ID>:启动一个已经停止的容器

docker stop <容器ID>:停止一个正在运行的容器

docker restart <容器ID>:重启一个容器

docker rm <容器ID>:删除一个容器

docker exec -it <容器ID> <命令>:在运行中的容器中执行命令

网络相关命令:

docker network ls:列出所有的网络

docker network create <网络名>:创建一个网络

docker network connect <网络名> <容器ID>:将容器连接到指定网络

docker network disconnect <网络名> <容器ID>:将容器从指定网络中断开连接

数据卷相关命令:

docker volume ls:列出所有的数据卷

docker volume create <卷名>:创建一个数据卷

docker volume inspect <卷名>:查看数据卷的详细信息

docker volume rm <卷名>:删除一个数据卷

构建镜像相关命令:

docker build -t <镜像名> <Dockerfile路径>:根据Dockerfile构建镜像

docker build -t <镜像名> <URL>:根据远程URL上的Dockerfile构建镜像

日志相关命令:

docker logs <容器ID>:查看容器的日志

docker logs -f <容器ID>:实时查看容器的日志

其他常用命令:

docker version:查看Docker的版本信息

docker info:查看Docker的系统信息

docker search <关键字>:在Docker仓库中搜索镜像

docker cp <本地文件路径> <容器ID>:<容器文件路径>:将本地文件复制到容器中

docker cp <容器ID>:<容器文件路径> <本地文件路径>:将容器中的文件复制到本地

 

最后,不同的环境可能会出现各种奇奇怪怪的问题,一下提供些解决思路:

1)查看应用启动是否正常,如果有错误日志,复制错误日志去百度搜索!!!!!!!特别重要         

2)启动正常,则先在本机使用 CURL "http://localhost:8044/"  访问对应的接口,看是否有响应,如果有的话会返回对应页面的html源码

3)启动正常,且curl有响应,则检查是否有关闭防火墙,或者开放对应的访问端口,开放端口才可以访问

4)腾讯云和阿里云都是有安全组,类似外层防火墙,一定要去web控制台检查是否有开启端口

 

最后的最后,附带一些参考资料:

1.docker端口映射:https://www.jianshu.com/p/b92d4b845ed6

2.其他博主的简洁部署参考:https://www.jianshu.com/p/85051fbd3873

3.容器使用代码:https://www.runoob.com/docker/docker-container-usage.html

4.麒麟系统的安装:http://www.360doc.com/content/23/0529/21/1082641269_1082641269.shtml

posted @ 2023-07-22 17:53  WantRemake  阅读(565)  评论(0编辑  收藏  举报