docker run和docker create命令有什么区别?
我经常使用run但有时在我看到的文档中create.
码头工人--help告诉
create Create a new container
run Run a command in a new container
Run Code Online (Sandbox Code Playgroud)
这是否意味着run在我们需要将命令传递给新容器时使用?那么目的是create什么?
我使用nodejs与node-mongodb-native驱动程序(http://mongodb.github.io/node-mongodb-native/).
我有一个日期属性存储为ISODate类型的文档.
通过nodejs,我正在使用此查询:
db.collection("log").find({
localHitDate: {
'$gte': '2013-12-12T16:00:00.000Z',
'$lt': '2013-12-12T18:00:00.000Z'
}
})
Run Code Online (Sandbox Code Playgroud)
它什么都不返回.为了使它工作,我需要做以下事情:
db.collection("log").find({
localHitDate: {
'$gte': ISODate('2013-12-12T16:00:00.000Z'),
'$lt': ISODate('2013-12-12T18:00:00.000Z')
}
})
Run Code Online (Sandbox Code Playgroud)
但是ISODate在我的nodejs代码中无法识别.
那么如何通过我的nodejs程序对mongo日期字段进行查询呢?
谢谢
我有一个nodejs用Passport模块表示REST api进行身份验证.登录方法(GET)在标头中返回一个cookie.当我从Chrome调用它时,它运行正常,我的cookie在我的浏览器中设置.
但是如果我通过Angularjs的$ http调用它,则cookie不会被设置.
Set-Cookie:connect.sid=s%3Ad7cZf3DSnz-IbLA_eNjQr-YR.R%2FytSJyd9cEhX%2BTBkmAQ6WFcEHAuPJjdXk3oq3YyFfI; Path=/; HttpOnly
Run Code Online (Sandbox Code Playgroud)
如您所见,Set-Cookie存在于http服务响应的标头中.
也许HttpOnly可能是这个问题的根源?如果是,我该如何更改?这是我的快速配置:
app.configure(function () {
app.use(allowCrossDomain);
app.use(express.bodyParser());
app.use(express.cookieParser())
app.use(express.session({ secret: 'this is a secret' }));
app.use(flash());
//passport init
app.use(passport.initialize());
app.use(passport.session());
app.set('port', process.env.PORT || 8080);
});
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助
我使用带有nodejs REST服务的MongoDB,它暴露了我存储在里面的数据.我有一个关于如何查询使用$ ref的数据的问题.
以下是Object的示例,其中包含对其他对象(详细信息)的引用:
{
"_id" : ObjectId("5962c7b53b6a02100a000085"),
"Title" : "test",
"detail" : {
"$ref" : "ObjDetail",
"$id" : ObjectId("5270c7b11f6a02100a000001")
},
"foo" : bar
}
Run Code Online (Sandbox Code Playgroud)
实际上,使用Node.js和mongodb模块,我执行以下操作:
db.collection("Obj").findOne({"_id" : new ObjectID("5962c7b53b6a02100a000085"},
function(err, item) {
db.collection(item.$ref).findOne({"_id" : item.$id}, function(err,subItem){
...
});
});
Run Code Online (Sandbox Code Playgroud)
实际上我做了2个查询,得到了2个对象.这是一种"懒惰的装载"(不完全是,几乎)
我的问题很简单:是否可以在一个查询中检索整个对象图?
谢谢
我试图使用拦截器的基本样本,所以我盯着一小段代码,但没有成功:
var app = angular.module('app',[]).
config(['$routeProvider','$locationProvider', function($routeProvider,$location) {
$routeProvider.
when('/home', {templateUrl: 'home.html', controller: homeCtrl}).
when('/login', {templateUrl: 'login.html', controller: loginController}).
otherwise({redirectTo : '/home' });
}]);
app.config(function ($httpProvider) {
$httpProvider.interceptors.push('httpRequestInterceptor');
});
Run Code Online (Sandbox Code Playgroud)
当我启动索引页面时,我在控制台中有一条错误消息:
Uncaught TypeError: Cannot call method 'push' of undefined from app
Run Code Online (Sandbox Code Playgroud)
任何的想法?
谢谢
我是GraphQL的新手,但我真的很喜欢它.现在,我正在玩接口和工会,我面临着突变的问题.
假设我有这个架构:
interface FoodType {
id: String
type: String
composition: [Ingredient]
}
type Pizza implements FoodType {
id: String
type: String
pizzaType: String
toppings: [String]
size: String
composition: [Ingredient]
}
type Salad implements FoodType {
id: String
type: String
vegetarian: Boolean
dressing: Boolean
composition: [Ingredient]
}
type BasicFood implements FoodType {
id: String
type: String
composition: [Ingredient]
}
type Ingredient {
name: String
qty: Float
units: String
}
Run Code Online (Sandbox Code Playgroud)
现在,我想创造新的食品,所以我开始做这样的事情:
type Mutation {
addPizza(input:Pizza):FoodType
addSalad(input:Salad):FoodType
addBasic(input:BasicFood):FoodType
}
Run Code Online (Sandbox Code Playgroud)
这不起作用有两个原因:
所以,我需要修改我之前的架构,如下所示: …
我对Helm升级有疑问.我正在使用图表foo-1.0.0,它使用docker图像栏部署一个pod:4.5.1.
我在版本1.0.0中基于此图表foo发布了"myrelease"(带有一个栏:4.5.1在里面运行).
现在,我对条形图进行修复,重建图像栏:4.5.2,更改图表中的图像,但我没有碰到它的版本.它仍然是foo-1.0.0
我发布:
$ helm upgrade myrelease repo/foo --version 1.0.0
Run Code Online (Sandbox Code Playgroud)
我的问题是升级后,我的pod仍在运行栏:4.5.1而不是4.5.2
是分蘖中的"缓存"吗?似乎分蘖没有再次下载foo-1.0.0.有没有办法强迫它下载?
我的MongoDB副本集备份有一个奇怪的问题.我有2台服务器(一台主服务器和一台辅助服务器),我每2小时运行一次备份任务.
我用这个: mongodump.exe --db MyBase --out "d:\Backups"
但是,当我运行此备份时,我的客户端应用程序(c#)会抛出这样的错误:
MongoDB.Driver.MongoConnectionException:无法连接到与读取首选项主要匹配的副本集的成员
我认为mongodump在客户端应用程序上没有这样的影响.所以,那就是说.
我想仅在辅助服务器上强制执行备份操作.我该怎么办?运行的命令是什么?
谢谢您的帮助.
我试图制作一个自托管的web api服务.我按照教程,它在我的本地计算机上工作正常.
localhost/api/values对预期的JSON响应很好.
现在,我有一个绑定到DNS"myserver.mycompany.com"的服务器.当我在此服务器上启动WebApi 2服务并尝试调用myserver.mycompany.com/api/values时,我找不到404页面错误.
如果我在这个服务器上本地浏览并调用localhost/api/values url它可以正常工作.
这是Startup类的代码:
using Owin;
using System.Web.Http;
namespace SelfHostedWebApi2
{
public class Startup
{
// This code configures Web API. The Startup class is specified as a type
// parameter in the WebApp.Start method.
public void Configuration(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
appBuilder.UseWebApi(config);
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我启动服务器的方式:
using Microsoft.Owin.Hosting;
using System;
using System.Net.Http;
namespace …Run Code Online (Sandbox Code Playgroud) 我是 GraphQL 的新手,但我真的很喜欢它。现在我在玩接口和联合,我面临着突变的问题。
假设我有这个架构:
interface FoodType {
id: String
type: String
}
type Pizza implements FoodType {
id: String
type: String
pizzaType: String
toppings: [String]
size: String
}
type Salad implements FoodType {
id: String
type: String
vegetarian: Boolean
dressing: Boolean
}
type BasicFood implements FoodType {
id: String
type: String
}
Run Code Online (Sandbox Code Playgroud)
现在,我想创造新的食物,所以我开始做这样的事情:
type Mutation {
addPizza(input:Pizza):FoodType
addSalad(input:Salad):FoodType
addBasic(input:BasicFood):FoodType
}
Run Code Online (Sandbox Code Playgroud)
这不起作用有两个原因:
所以,我的问题是:如何在接口的这种上下文中处理突变而不必过多地复制类型?我想避免使用 Pizza 类型的查询和 InputPizza 类型的突变。
感谢您的帮助。
我想知道您在管理掌舵图表版本方面的最佳实践(或只是您的实践)是什么。
我想知道处理应用程序版本控制、持续集成/交付和图表打包的最佳方法是什么。
今天,我有许多微服务在生活。每个都有自己的生命周期,并且在自己的 git 存储库中有自己的版本控制。
此外,我们选择为所有图表使用一个 git 存储库。
现在,我们也有选择:
--set image.tag=vx.x.x标志。从“操作”的角度来看,第一种方法的好处是,我们随时都知道集群上正在运行的每个图表(和每个 docker 映像)的版本。缺点是在某个时间我们将有每个图表的许多版本,而只有一个 docker 标签版本发生了变化。
另一方面,第二种方法的好处是,唯一使图表版本发生变化的是图表代码本身的修改,而不是应用程序的更改。它大大减少了每个图表的“无用”高版本号。缺点是我们必须在安装/升级时覆盖 docker 标签,并且我们失去了对集群上运行的版本的可观察性(在灾难恢复计划的情况下很有用)。
那么,你的做法是什么?也许是一种混合方法?
感谢您的帮助
versioning continuous-integration continuous-deployment kubernetes kubernetes-helm
我正在测试Istio,目前正在测试路由流量的“ canary”功能。
为了进行测试,我创建了一个由5个微服务(serviceA,serviceB,serviceC,serviceD,serviceE)组成的小型服务网格。每个人都可以呼叫其他人。我只传递了A,E,C,B,B,D之类的路径,并且请求遵循该路径。为了从集群外部调用我的servicemesh,我有一个Nginx Ingress Controller,其Ingress规则指向serviceA pod。
一切正常。
我面临的问题与使用自定义标头匹配的流量切换有关,如下所示:
kind: VirtualService
metadata:
name: ServiceA
namespace: demo
labels:
app: demo
spec:
hosts:
- service-a
http:
- route:
- destination:
host: service-a
subset: v1
- match:
- headers:
x-internal-request:
exact: true
route:
- destination:
host: service-a
subset: v2
Run Code Online (Sandbox Code Playgroud)
所以在这里,当我将自定义标头x-internal-request设置为true 时,我想尝试将流量路由到ServiceA的v2版本。
问题:
为了使用此功能,我的服务是否必须知道x-internal-header,并将它们传递给请求中的下一个服务?还是因为Istio为他们完成工作,他们不需要处理它?
为了使用此功能,我是否需要使用Istio Ingress Controller(带有Istio网关)而不是Nginx Ingress Controller?
今天,我正在使用Nginx Ingress Controller公开一些服务。我们之所以选择Nginx,是因为它具有“外部授权”之类的功能,可以节省很多工作,并且如果我们需要使用Istio Ingress控制器,我不确定它是否提供与Nginx相同的功能。
也许有一条我看不到的中间道路
谢谢您的帮助
我有关于 MongoDB ISODate 类型和 GraphQL 的问题。我需要mutation在我的 gql 架构中声明一个允许在我的 Mongo 数据库中添加文档的文件。
该文档具有 ISODate 属性,但在我的 gql 架构中,我使用的是String:
mutation addSomething(data: SomeInput)
type SomeInput {
field1: String
field2: Int
created: String
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,在新文档中,该created字段采用字符串格式(不是 ISODate),而我对此是期望的。但我想知道如何让它插入 ISODate。我可以在某个地方使用“自定义类型”来代替 String 吗?
谢谢
PS:我正在使用nodeJS和apollo库。
我发现这个包https://www.npmjs.com/package/graphql-iso-date添加了 3 个日期自定义类型。
这是我的 gql 架构:
const { gql } = require('apollo-server');
const { GraphQLDateTime } = require('graphql-iso-date')
const typeDefs = gql`
scalar GraphQLDateTime
type Resto {
restaurant_id: ID!
borough: String
cuisine: String …Run Code Online (Sandbox Code Playgroud) mongodb ×4
graphql ×3
node.js ×3
angularjs ×2
apollo ×2
interface ×2
kubernetes ×2
binding ×1
dbref ×1
docker ×1
express ×1
hostname ×1
isodate ×1
istio ×1
javascript ×1
mongodump ×1
mutation ×1
replicaset ×1
self-hosting ×1
versioning ×1