项目国产化(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
本文来自博客园,作者:WantRemake,转载请注明原文链接:https://www.cnblogs.com/SmallChen/p/17573808.html