如何从Java项目运行Docker容器?(How to run Docker container from Java project?)
请问任何人都可以告诉我如何从java代码运行一个docker容器,我正在尝试使用docker创建一个SaaS,一旦用户登录,我应该从java代码启动一个memcached容器,这个解决方案不起作用:
Process p = Runtime.getRuntime().exec("docker images");
Docker cmds通常在git bash上运行,而不是在cmd上运行。
PS:我在windows上使用docker。谢谢。
Please can anyone tell me how to run a docker container from java code, I'm trying to make a SaaS using docker, once the user logs in, I should start a memcached container from java code, this solution doesn't work:
Process p = Runtime.getRuntime().exec("docker images");
Docker cmds run usually on git bash, not on cmd.
PS : I'm using docker on windows.Thank you.
原文:https://stackoverflow.com/questions/34706601
最满意答案
您可以尝试这种纯JS方法:
let obj = [{'vote':999,'name':'D'},{'vote':341,'name':'A'},{'vote':789,'name':'A'},{'mid':555,'name':'B'}] let result = []; obj.reduce(function(p, c){ if(p[c.name] === undefined){ result.push(c); p[c.name] = c.vote; } else if(c.vote > p[c.name]){ let o = result.find(x=> x.name === c.name); o.vote = c.vote } return p; }, {}); console.log(result)
Lodash方法
逻辑
- 按
name
升序排序数组,按vote
降序排序。- 现在使用
_.uniqBy
因为它会选择第一次出现。注意:我无法使用lodash(
4.17
)进行排序(没有太多使用它),所以我使用纯JS来对它进行排序。Lodash 4.17
正如@ Ori Drori正确指出的那样 ,我们应该使用
_.sortedUniqBy
而不是_.uniqBy
因为它针对排序数组进行了优化。let obj = [{'vote':999,'name':'D'},{'vote':341,'name':'A'},{'vote':789,'name':'A'},{'mid':555,'name':'B'}] var sortedArray = obj.sort(function(a,b){ return a.name.localeCompare(b.name) || b.vote - a.vote }); var result = _.sortedUniqBy(sortedArray, 'name'); console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
Lodash 3.10
let obj = [{'vote':999,'name':'D'},{'vote':341,'name':'A'},{'vote':789,'name':'A'},{'mid':555,'name':'B'}] var result =_.uniq( _.sortByOrder( obj, ["name", "vote"], ["asc", "desc"] ), "name"); console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.min.js"></script>
You can try this pure JS approach:
let obj = [{'vote':999,'name':'D'},{'vote':341,'name':'A'},{'vote':789,'name':'A'},{'mid':555,'name':'B'}] let result = []; obj.reduce(function(p, c){ if(p[c.name] === undefined){ result.push(c); p[c.name] = c.vote; } else if(c.vote > p[c.name]){ let o = result.find(x=> x.name === c.name); o.vote = c.vote } return p; }, {}); console.log(result)
Lodash approach
Logic
- Sort array in ascending order by
name
and descending order byvote
.- Now use
_.uniqBy
as it will pick first occurrence.Note: I was unable to sort using lodash (
4.17
) (have not used it much), so I have use pure JS to sort it.Lodash 4.17
As correctly pointed by @Ori Drori, we should use
_.sortedUniqBy
instead of_.uniqBy
as it is optimised for sorted arrays.let obj = [{'vote':999,'name':'D'},{'vote':341,'name':'A'},{'vote':789,'name':'A'},{'mid':555,'name':'B'}] var sortedArray = obj.sort(function(a,b){ return a.name.localeCompare(b.name) || b.vote - a.vote }); var result = _.sortedUniqBy(sortedArray, 'name'); console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
Lodash 3.10
let obj = [{'vote':999,'name':'D'},{'vote':341,'name':'A'},{'vote':789,'name':'A'},{'mid':555,'name':'B'}] var result =_.uniq( _.sortByOrder( obj, ["name", "vote"], ["asc", "desc"] ), "name"); console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.min.js"></script>
相关问答
更多-
TCP/IP模型是一个________。[2023-05-19]
a -
下列中不属于面向对象的编程语言的是?[2022-05-30]
a -
Lodash有一个_.pickBy功能 ,它正是你正在寻找的。 var thing = { "a": 123, "b": 456, "abc": 6789 }; var result = _.pickBy(thing, function(value, key) { return _.startsWith(key, "a"); }); console.log(result.abc) // 6789 console.log(result.b) // undefine ...
-
使用_.uniqBy在lodash中保留一个具有较大键值的对象(Using _.uniqBy to keep an object that has a larger value of a key in lodash)[2023-08-13]
您可以尝试这种纯JS方法: let obj = [{'vote':999,'name':'D'},{'vote':341,'name':'A'},{'vote':789,'name':'A'},{'mid':555,'name':'B'}] let result = []; obj.reduce(function(p, c){ if(p[c.name] === undefined){ result.push(c); p[c.name] = c.vote; } els ... -
你可以使用lodash的_.mergeWith() : var o1 = { a:12, b:8, c:17 }; var o2 = { a:2, b:3, c:1 }; var result = _.mergeWith({}, o1, o2, function(objValue, srcValue) { return _.isNumber(objValue) ? objValue + srcValue : srcValue; }); console.log(result);我不认为你需要lodash,我只是使用Object.keys ,筛选匹配,然后减少回像这样的对象(未经测试,但应该工作): export function keysThatMatch (pattern) { return (data) => { return Object.keys(data).filter((key) => { return key.match(pattern); }).reduce((obj, curKey) => { obj[curKey] ...如果它是其他所有价值,你可以减少它 var arr = ['a',1,'b',2,'c',3]; var obj = arr.reduce( (a,b,i) => {return i%2===0 ? (a[arr[i]] = arr[i+1],a) : a}, {}); console.log(obj) If it's every other value, you could just reduce that var arr = ['a',1,'b',2,'c',3]; var obj = ...根据Lodash文档,结果值的顺序由它们在数组中出现的顺序决定。 因此,您需要使用'c'属性对数组进行排序,以获得预期的结果。 为此,您可以使用_.sortBy。 它根据属性或iteratee以asc顺序对集合进行排序。 我认为您的问题可以直接使用属性解决,但您可以使用函数在需要时提供更准确的比较器。 之后,您只需执行uniqBy操作并检索结果: var res = _(arrayOfObj) .orderBy('c') .uniqBy('a', 'b') .value(); console. ...不确定你究竟在尝试什么。 使用_.find的理想方法是为匹配return true (并且它不会迭代下一个元素)。 当您从谓词return true , _.find将返回该键的值。 从谓词中为匹配元素return true : _.find返回第一个匹配的值 _.findLast返回上次匹配的值 _.findKey返回第一场比赛的关键 _.findLastKey返回最后一场比赛的关键 _.filter将所有匹配项的值作为数组返回 注意:如果您想获得最近的即将到来的时间,您需要在传递给任何这些lodash函 ...
Lodash功能(Lodash Function)[2022-02-09]
是的,它被称为_.mapValues 。 var example = { a: 2 }; _.mapValues(example, function(value) { return value + 1; }); // => { a: 3 } Yep, it's called _.mapValues. var example = { a: 2 }; _.mapValues(example, function(value) { return value + 1; }); // => { a: 3 ...相关文章
更多- Docker 容器创建并运行MySQL
- Docker常用命令
- 【Hadoop】Build and Run HDFS
- python top project of 2013
- 关于Thread类中的start()方法和run()方法
- pychseg - A Python Chinese Segment Project - Google Project Hosting
- solr和project集成-Java环境变量
- 揭开Docker神秘的面纱-传智播客Docker视频教程
- maven jetty:run “找不到符号”
最新问答
更多- python的访问器方法有哪些
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。
- 响应navi重叠h1和nav上的h1链接不起作用(Responsive navi overlaps h1 and navi links on h1 isn't working)
- 在C中读取文件:“r”和“a +”标志的不同行为(Reading a File in C: different behavior for “r” and “a+” flags)
- NFC提供什么样的带宽?(What Kind of Bandwidth does NFC Provide?)
元素上的盒子阴影行为(box-shadow behaviour on elements) - Laravel检查是否存在记录(Laravel Checking If a Record Exists)
- 设置base64图像的大小javascript - angularjs(set size of a base64 image javascript - angularjs)
- 想学Linux 运维 深圳有哪个培训机构好一点
- 为什么有时不需要在lambda中捕获一个常量变量?(Why is a const variable sometimes not required to be captured in a lambda?)
- 在Framework 3.5中使用服务器标签<%=%>设置Visible属性(Set Visible property with server tag <%= %> in Framework 3.5)
- AdoNetAppender中的log4net连接类型无效(log4net connection type invalid in AdoNetAppender)
- 错误:发送后无法设置标题。(Error: Can't set headers after they are sent. authentication system)
- 等待EC2实例重启(Wait for an EC2 instance to reboot)
- 如何在红宝石中使用正则表达式?(How to do this in regex in ruby?)
- 使用鼠标在OpenGL GLUT中绘制多边形(Draw a polygon in OpenGL GLUT with mouse)
- 江民杀毒软件的KSysnon.sys模块是什么东西?
- 处理器在传递到add_xpath()或add_value()时调用了什么顺序?(What order are processors called when passed into add_xpath() or add_value()?)
- sp_updatestats是否导致SQL Server 2005中无法访问表?(Does sp_updatestats cause tables to be inaccessible in SQL Server 2005?)
- 如何创建一个可以与持续运行的服务交互的CLI,类似于MySQL的shell?(How to create a CLI that can interact with a continuously running service, similar to MySQL's shell?)
- AESGCM解密失败的MAC(AESGCM decryption failing with MAC)
- SQL查询,其中字段不包含$ x(SQL Query Where Field DOES NOT Contain $x)
- PerSession与PerCall(PerSession vs. PerCall)
- C#:有两个构造函数的对象:如何限制哪些属性设置在一起?(C#: Object having two constructors: how to limit which properties are set together?)
- 平衡一个精灵(Balancing a sprite)
- n2cms Asp.net在“文件”菜单上给出错误(文件管理器)(n2cms Asp.net give error on Files menu (File Manager))
- Zurb Foundation 4 - 嵌套网格对齐问题(Zurb Foundation 4 - Nested grid alignment issues)
- 湖北京山哪里有修平板计算机的