docker .netcore 项目一键部署

1:安装docker需要开启虚拟化:

1)按Windows键后直接输入控制面板

2)点击控制面板中的程序

3)点击启用或关闭Windows功能

4)如图将虚拟化打开(注意:如果不存在Hyper-V,请看第七步)

5)点击确定,开始安装Hyper-V功能,安装完成后,点击“立即重新启动”,重启电脑。

6)电脑重启后,就可以在“开始”—“Windows 管理工具”下看到 “Hyper-V”管理器等 Hyper-V 功能。

7)如果不存在Hyper-V,需要执行我提供的Hyper-V.cmd(右键以管理员身份执行),然后弹出一个 用户帐户控制 - Windows命令处理程序 对话框,我们点击:是;

8)紧接着进行Windows命令处理,我们等待处理完成以后,在最末处输入:Y,电脑自动重启,进行配置更新。注意:不能关闭计算机。

9)电脑重启之后,在window管理中可以看到已经成功安装了Hyper-V

2:安装WSL(未确定是否必须)

1)根据Windows跳出的提示框或者使用我提供的安装包安装。(就根据提示安装就可以,无其他操作)

3:安装docker

1)下载地址:https://docs.docker.com/docker-for-windows/install/

根据提示安装即可,安装后重启。(此网站是国外的网站,下载慢,可以使用我提供的安装包安装)

Docker操作手册

1:docker镜像的加载

1)在客户现场部署项目时大多数情况都没有网,所以需要在有网的环境下下载好所需要的镜像。例如:ASPNET SDK,nginx等镜像,然后再加载这些镜像。(实际部署直接查看第四步)

2)拉取镜像到本地命令:docker pull xxx(镜像名称和版本号,例如:docker pull nginx,这个命令默认拉取最新镜像,如果需要指定版本,确定支持的版本需要去dockerHub上查询支持的版本)

3)导出镜像命令:docker save nginx(要导出的镜像) -o nginx.jar(保存在本地的名称)

4)导入本地的镜像到docker:docker load -i nginx.ja(如果存在多个需要导入的镜像则依次导入)

5)查看镜像的命令:docker images(通过此命令可以查看都有哪些镜像,镜像导入是否成功)

2:docker-compose

1)docker-compose简介:Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。Compose 通过一个配置文件(docker-compose.yml)来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。Windows自带docker-compose,不需要安装,Linux需要安装。

2)docker-compose命令介绍:

docker-compose build:构建(重新构建)项目中的服务容器。

docker-compose up:运行服务容器。

docker-compose up -d:在后台运行服务容器。

docker-compose ps:列出项目中所有容器。

docker-compose stop:停止正在运行的容器,可以通过docker-compose start再次启动。

docker-compose down:停止和删除容器。

docker-compose logs:查看服务容器的输出。

docker-compose restart:重启服务中的项目。

docker-compose rm:删除所有(停止状态)的容器。

docker-compose start:启动已经存在的服务器。

docker-compose stop:停止运行的容器。

3)docker-compose.yml介绍

 

1:version的问题。docker version可以查看docker engine的版本。docker-compse version和docker engine的版本关系如下:目前我们采用3.3。

2:我们所提供的运行项目的文件结构如图。

在任意位置创建文件夹,文件夹名称自定义(尽可能见名知意),我在此命名net。

core文件夹对应的是.net core项目相关配置。

db文件夹对应的是数据库相关配置,真实部署时不需要此配置(因为我们数据库不会放在docker中,防止数据丢失等问题)

vue文件夹对应前端项目相关配置。

aspnet.jar 和 nginx.jar是我们在有网环境下拉取的Nginx和.net core项目所需的镜像导出的包,导出的命令上面已经介绍过了,需要可以去查看,在2-2。

3:core文件夹介绍:

1)api为后端项目,由后端开发人员提供。

2)Dockerfile:Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

Dockerfile文件讲解:

注意:在创建Dockerfile文件时不可以有后缀。

4:vue文件夹介绍

1)dist文件夹由前端开发人员提供前端项目打好的包。

2)Dockerfile为前端项目相关配置

3)nginx.conf:nginx的相关配置

5:db文件夹介绍:(学习了解即可,部署不需要)

1)core.sql:core项目的初始化sql脚本

2)dockerfile:数据库相关配置

3)mysqld.cnf:这个文件为MySQL安装后自带文件,只需要在文件最后加上lower_case_table_names=1这个就可以解决MySQL区分大小写的问题,改为不区分大小写。

                                                               Docker部署

第一步:修改core/api文件夹下的appsettings.json文件的数据库地址

将截图中的server=后面的地址改为部署机器的地址,userid=root(这个目前就使用root),pwd=root(不是必须为root,与docker-compose.yml文件中MYSQL_ROOT_PASSWORD的值需要相等)。

第二步:进入开发人员提供的文件夹,在地址栏敲入cmd,然后回车,进入dos窗口。

第三步:通过导入镜像命令,将nginx和apsnet镜像导入。

1) docker load -i nginx.jar

2) docker load -i aspnet.jar

3) 通过docker images命令查看镜像导入是否成功。

第四步:执行docker-compose up -d命令来构建镜像启动容器。

第五步:

1)通过docker images 命令查看我们的镜像是否存在。

2)通过docker ps 命令查看容器是否成功启动。

第六步:使用浏览器打开项目地址,查看是否可以正常使用。

原文地址:https://www.cnblogs.com/zwbsoft/p/14171280.html