docker 创建.netcore2.2 api容器 以及连接mysql容器
1】环境说明
操作系统:Window 10 专业版
开发工具 Vs2019专业版
Docker: Docker for Windows
#region MyRegion private TestContext _testContext; public ValuesController(TestContext estContext) { _testContext = estContext; } [HttpGet] public string Get() { string reMsg = "无数据"; //1先保存一个数据 int num = 1; var getall = _testContext.User.Where(c => true).OrderByDescending(c => c.Id).FirstOrDefault(); if (getall != null) { num = getall.Id + 1; } _testContext.User.Add(new Models.User { Id = num, Name = "测试" + num, Age = "2" + num }); _testContext.SaveChanges(); //2获取一个数据,然后返回 if (getall != null) { var get = _testContext.User.SingleOrDefault(c => c.Id == 1); reMsg = get.Id + get.Name; } return (reMsg); } #endregionView Code
然后打开 程序包管理器空值台 输入代码迁移数据库
在控制台输入以下代码【注意执行这段命令之前。先把 appsettings.json中连接数据库的 server=mysql 改成 server=localhost 因为mysql是项目发布到docker中使用。而localhost是在本地使用 如果这里不该。程序将连接不上数据库】
#程序包管理器控制台 Add-Migration Init/[自定义名称] Update-Database
(update-database 代码太多,就不截全了)
执行完毕之后可以看到数据库已经生成【本地通过navicat看】
4】将创建的项目制作成镜像并且弄成容器运行
1创建dockerfile文件并且发布项目
由于使用的是vs编辑器。建议在vs上生成dockerfile
右键项目,添加docker支持。然后弹出框中选择linux。将dockerfile文件修改好之后修改属性为 【始终支持】 然后发布项目
dockerfile代码
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. #FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base #WORKDIR /app #EXPOSE 80 #EXPOSE 443 # #FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build #WORKDIR /src #COPY ["dockerTs/dockerTs.csproj", "dockerTs/"] #RUN dotnet restore "dockerTs/dockerTs.csproj" #COPY . . #WORKDIR "/src/dockerTs" #RUN dotnet build "dockerTs.csproj" -c Release -o /app/build # #FROM build AS publish #RUN dotnet publish "dockerTs.csproj" -c Release -o /app/publish # #FROM base AS final #WORKDIR /app #COPY --from=publish /app/publish . #ENTRYPOINT ["dotnet", "dockerTs.dll"] FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base WORKDIR /app COPY . . EXPOSE 80 EXPOSE 443 ENTRYPOINT ["dotnet", "WebApplication1.dll"]
项目发布注意选择 【文件夹】格式 =》注意 发布的时候 appsettings.json中连接数据库的 server=localhost 改成 server=mysql 因为mysql是项目发布到docker中使用
2将项目文件制作成镜像
打开windowsPowerShell。cd到项目的发布文件地址
然后创建镜像 运行下列代码
docker build -t dockersample .
【docker build -t 镜像名称:版本号 . 】 注意.不要漏掉了
【docker build -t 镜像名称 . 】 注意.不要漏掉了
3使用network方式创建容器连接
在docker的容器中有link和network两种方式连接。考虑到link被docker放弃。这里就使用network
3.1首先创建一个network
docker network create -d bridge Mybridge # docker network create -d bridge 名称
3.2 network创建完毕之后。就来创建容器(发布的.netCore项目)
docker run -d -p 8002:80 --net Mybridge --name dockersampleRQ dockersample docker run -d -p 访问端口:程序设置带你看 --net network名称 --name 创建的容器名称 镜像名称
3.3network桥接mysql容器
docker network connect Mybridge mysql docker network connect network Bridge方式创建的名称 要连接的数据库容器
3.4修改mysql名称
因为之前发布的.netCore项目中appsettings.josn中连接的名称是 mysqlTS而mysql容器的名称是mysql所以,想让程序运行。需要修改一下mysql容器名称
docker rename mysql mysqlTS docker rename mysql容器名称 修改后名称
访问8002端口就可以看见正常方位
当然不能每次都去修改容器名称
这里提供另外种方法就是通过vim去修改appsettings.josn文件
4通过vim修改appsettings.josn文件
4.1首先进入需要修改的容器
docker exec -it dockersampleRQ bash docker exec -it 容器名称 bash
4.2安装vim
依次输入
apt-get update 回车 apt-get install -y vim 回车
vim安装完毕之后,进入appsettings.josn文件
vim appsettings.json vim 文件名.后缀
回车之后看见页面如图
进入编辑状态需要进行以下操作
先按ESC 然后按 i
就可以进行编辑了
编辑完毕之后
先按ESC 冒号键 按 w 按 q 按 enter 键 esc :wq
保存完毕之后,看看文件修改效果
然后把项目的容器重启
打开网页查看效果
- Docker创建Mysql容器并通过命令行连接到容器
- Docker创建Mysql容器并通过命令行连接到容器
- 详解Docker创建Mysql容器并通过命令行连接到容器
- Docker创建Mysql容器并通过命令行连接到容器
- Docker-创建mysql容器进行持久化&设置远程连接&导入sql文件(centos7)
- 通过Docker搭建Mysql容器+Tomcat容器连接环境
- Docker多容器连接(以Tomcat+Mysql为例)
- MySQL专题4之MySQL连接、MySQL数据类型、MySQL创建和删除以及选择数据库
- Docker的容器创建以及基本命令
- Docker创建一个mysql容器并保存为本地镜像
- 用docker容器创建的MySQL无法访问的问题
- Docker创建运行多个mysql容器的方法示例
- Docker mysql 和 flask容器连接 bug解决
- docker:从 tomcat 容器连接到 mysql 容器
- navicat连接虚拟机里面docker容器中的mysql
- docker通过模板创建镜像以及容器、仓库和数据管理
- docker连接spring boot和mysql容器方法介绍
- docker连接spring boot和mysql容器
- 在Docker创建的Mysql容器启动时执行sql
- Docker-创建一个mysql容器,并保存为本地镜像