首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在dockerode的createContainer()函数中添加‘--health-cmd=’mysqladmin ping --静默‘和’-health-interval=‘1s’选项?

如何在dockerode的createContainer()函数中添加‘--health-cmd=’mysqladmin ping --静默‘和’-health-interval=‘1s’选项?
EN

Stack Overflow用户
提问于 2017-12-28 10:03:32
回答 1查看 318关注 0票数 0

我想使用node.js来操作码头容器。我发现了一个名为克罗德的模块,它似乎是我需要的工具。

但是,我还没有找到向--health-cmd函数添加--health-interval--health-interval选项的任何方法。

这两个选项在docker run命令中使用。你可以通过docker run --help | grep health找到它们

-运行以检查健康状况的运行状态-cmd字符串命令--运行检查之间的间隔时间(ms_s_s\m_m_h)(默认为0)

我尝试了下面的代码,但是这两个选项在代码中不起作用。

代码语言:javascript
复制
const Docker = require('dockerode')
const docker = new Docker({socketPath: '/var/run/docker.sock'})

docker.createContainer({
Image: 'mysql:5.7',
name: 'myContainer',
env: ['MYSQL_ROOT_PASSWORD=mypassword'],
'health-cmd': 'mysqladmin ping --silent',
'health-interval': '1s',
HostConfig: {
    PortBindings: {
    '3306/tcp': [
        {
        HostPort: '3306'
        }
    ]
    }
}
}, (err, container) => {
if (err) {
    console.error(`create err:${err}`)
} else {
    container.start((err, data) => {
    if (err) {
        console.error(`start err: ${err}`)
    } else {
        console.log(`data: ${data}`)
    }
    })
}
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-28 10:15:18

感谢这个帖子的帮助。我已经找到了码头引擎API文件,并找到了添加以下两个选项的正确方法:

代码语言:javascript
复制
const Docker = require('dockerode')
const docker = new Docker({socketPath: '/var/run/docker.sock'})

docker.createContainer({
  Image: 'mysql:5.7',
  name: 'myContainer',
  env: ['MYSQL_ROOT_PASSWORD=mypassword'],
  Healthcheck: {
    Test: ['CMD-SHELL', 'mysqladmin ping'],
    Interval: 1000000000
  },
  HostConfig: {
    PortBindings: {
      '3306/tcp': [
        {
          HostPort: '3306'
        }
      ]
    }
  }
}, (err, container) => {
  if (err) {
    console.error(`create err:${err}`)
  } else {
    container.start((err, data) => {
      if (err) {
        console.error(`start err: ${err}`)
      } else {
        console.log(`data: ${data}`)
      }
    })
  }
})

您可以发现,createContainer从位于node_modules/dockerode/lib/docker.js中的源代码调用POST /containers/create

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48005408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档