使用使用dockerfile构建webapi镜像然后使用link和bridge两种方式进行桥接
- 首先新增一个webapi的项目
项目核心代码 UserContext
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using User.API.Model;
namespace User.API.Data
{
public class UserContext : DbContext
{
public UserContext(DbContextOptions<UserContext> options) : base(options)
{ }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<UserInfo>()
.ToTable("Users")
.HasKey(u => u.Id); base.OnModelCreating(modelBuilder);
}
public DbSet<UserInfo> Users { get; set; }
}
} 核心代码 userinfo namespace User.API.Model
{
public class UserInfo
{
public int Id { get; set; }
public string Name { get; set; }
public string Company { get; set; }
public string Title { get; set; } }
}startup核心代码
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<UserContext>(options => {
options.UseMySQL(Configuration.GetConnectionString("MysqlUser"));
});
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc();
//InitUserDataBase(app);//初始化数据库脚本再创建数据库之后取消注释
}
public void InitUserDataBase(IApplicationBuilder app)
{
using (var scope=app.ApplicationServices.CreateScope())
{
var userContext = scope.ServiceProvider.GetRequiredService<UserContext>();
userContext.Database.Migrate();
if (!userContext.Users.Any())
{
userContext.Users.Add(new Model.UserInfo { Name = "cyao", Company = "nocompany", Title = "软件工程师" });
userContext.SaveChanges();
}
}
}appsetting
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
},
"ConnectionStrings": {
"MysqlUser": "server=193.112.107.43;port=3306;database=bate_user;userid=test;password=pwd123456"
}
}#DockerFile核心
FROM microsoft/aspnetcore-build as build-env
WORKDIR /code
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out FROM microsoft/aspnetcore
WORKDIR /app
COPY --from=build-env /code/out ./ EXPOSE
ENTRYPOINT [ "dotnet","User.API.dll" ]数据库初始化的命令暂时省略
- 然后使用dockerfile进行镜像的build
首先将整个项目文件夹上传到liunx服务器 /NetCoreProJect/User.API/
#下面是命令
cd /NetCoreProJect/User.API/
#开始镜像的build 这里要注意的是文件的路径问题当build失败的时候docker images 的命令是没有 jess/aspnetcore命名的镜像的
docker build -t jess/aspnetcore:prod . - 运行build的容器并以link的形式进行桥接(渐渐淘汰一般使用network形式)
docker run -d -p : --name aspnetcoretest --link mysqldb:db jess/aspnetcore:prod docker ps -l
- 运行build的容器以network的形式进行桥接,并且将本地文件挂载到容器内部文件(容器与容器之间相互通信的端口号是容器内部映射的端口号而不是主机暴露出去的端口号例如这里是80而不是8003)
#新建一个network
docker network create -d bridge mybridge
#查看所有network
docker network ls
#运行容器并进行network 和资料卷的挂载首先你本地目录必须又appsettings.json文件
docker run -d -p : --net mybridge --name aspnetcorebrige -v /docker/netcore/appsettings.json:/appsettings.json jess/aspnetcore:prod
#命名mysqldb为db
docker rename mysqldb db
#两个容器进行network
docker network connect mybridge db#查看docker的bridge网络的详细情况
docker network inspect mybridge
使用使用dockerfile构建webapi镜像然后使用link和bridge两种方式进行桥接的更多相关文章
- WebApi服务Uri加密及验证的两种方式
最近的一个项目要求服务端与UI层分离,业务层以WebApi方式向外提供所有业务服务,服务在数据保密性方面提出了要求,主要包括: 1:客户端认证: 2:服务请求超时(默认5分钟): 3:服务Get请求的 ...
- 如何使用Dockerfile构建Tomcat镜像并部署war
我们都知道Docker构建一个镜像有两种方式: 使用`docker commit`命令 使用`Dockerfile`文件和`docker build`命令 那么这两种方式有何区别呢? 相同点:底层实现 ...
- 使用dockerfile构建nginx镜像
使用dockerfile构建nginx镜像 docker构建镜像的方法: commit.dockerfile 1.使用commit来构建镜像: commit是基于原有镜像基础上构建的镜像,使用此方 ...
- Dockerfile构建私有镜像
构建第一个镜像 镜像的定制实际上就是定制每一层所添加的配置,文件.我们可以把每一层修改,安装,构建,操作的命令都写入一个脚本,这个脚本就是Dockerfile.Dockerfile是一个文本文件,其内 ...
- Dockerfile构建jar镜像
dockerDockerfilejar包docker-compose 一.安装docker和compose 二.准备jar包 三.编写配置文件 1. Dockerfile 2. docker-comp ...
- Dockerfile构建nginx镜像
Dockerfile构建nginx镜像 [root@bogon ~]# mkdir /opt/docker-file [root@bogon ~]# cd /opt/docker-file/ [roo ...
- Docker学习(六)Dockerfile构建自定义镜像
Docker学习(六)Dockerfile构建自定义镜像 前言 通过前面一篇文章可以知道怎么去使用一个镜像搭建服务,但是,如何构造自己的一个镜像呢,docker提供了dockerfile可以让我们自己 ...
- dockerfile构建Tomcat镜像
dockerfile构建Tomcat镜像 一.镜像分层概念 二.制作tomcat镜像 2.1.创建分层目录 [root@node2 ~]# mkdir /app/{web/{nginx,tomcat, ...
- Docker镜像构建的两种方式
关于Docker里面的几个主要概念 这里用个不太恰当的比方来说明. 大家肯定安装过ghost系统,镜像就像是ghost文件,容器就像是ghost系统.你可以拿别人的ghost文件安装系统(使用镜像运行 ...
随机推荐
- [易学易懂系列|rustlang语言|零基础|快速入门|(2)|VSCODE配置]
我们今天来配置下vscode+rust. vscode开发rust很方便.但配置有点坑,我们都认为vscode很简单,很完善. 但这里很多同学也出现不少问题. 我们在这里简单记录下win7下配置的过程 ...
- Tableau Dashboard
Dashboard仪表盘,用来展示多个图表,并展示之间的联动,分析数据.
- Java并发编程实战 第5章 构建基础模块
同步容器类 Vector和HashTable和Collections.synchronizedXXX 都是使用监视器模式实现的. 暂且不考虑性能问题,使用同步容器类要注意: 只能保证单个操作的同步. ...
- jpa 自定义sql 删除方法注意点
1.jpa自带的delete()方法可以成功删除对象 delete(id),或者delete(entity) 2.自定义删除方法注意点 参考:https://www.jianshu.com/p/9d5 ...
- idea 新手入门配置
1.配置新建类时,创建者信息 2.配置svn 1. 在idea中不显示无用的内容,配置如下 .hprof;.iml;.pyc;.pyo;.rbc;.yarb;~;.DS_Store;.git;.hg ...
- K8S in Action
1,容器的概念 镜像 镜像仓库 容器 镜像层:Docker镜像由多层构成.好处:网络分发效率,减少镜像的存储空间 1.2 k8s 主节点 ,它承载着 Kubernetes 控制和管理整个集群系统的控制 ...
- 这个 'ip' 竟然把我搞蒙圈了……
1.查看redis连接配置(某项目) <bean id="redisCacheServer" class="com.spring.cache.RedisCacheS ...
- luogu P1223 排队接水 x
P1223 排队接水 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行, ...
- Windows和Linux下搭建J2sdk的环境
J2SDK 作为jsp系统配置中必不可少的组件,越来越多的得到应用.下来是我整理的以往工作时搜集的资料.使用时方便查询,希望对广大的工程师有帮助. windows服务器环境下 j2sdk 的安装和环境 ...
- Android应用系列:仿MIUI的Toast动画效果实现
前言 相信有些人用过MIUI,会发现小米的Toast跟Android传统的Toast特么是不一样的,他会从底部向上飞入,然后渐变消失.看起来效果是挺不错的,但是对于Android原生Toast是不支持 ...