繁体   English   中英

如何在远程机器上运行 docker 容器

[英]How to run docker container in a remote machine

我正在尝试通过 DOCKER 运行这个 jenkins 管道代码。 我在这里使用 AWS ec2-user 作为 VM。 这段代码工作正常,但是......

node{
 stage('SCM CHECKOUT'){
   git 'https://bitbucket.org/rajesh212/myapp.git'    
   }
 stage('MVN BUILD'){
   def mvnHome = tool name: 'maven', type: 'maven'
   sh "${mvnHome}/bin/mvn clean package"
   }
stage('DEPLOYMENT VIA DOCKER'){
   def customImage = docker.build("image:${env.BUILD_ID}")
   docker.image("image:${env.BUILD_ID}").withRun('-p 9090:8080'){sleep 10000}
   }
  1. 如果我没有给出 sleep 命令,那么这项工作会成功运行,但我的 docker 容器会立即启动和停止。 即我无法获得输出。 如何解决这个问题呢?
  2. 我想在远程机器上运行这个 docker 镜像吗? 怎么做?

为了在远程服务器上运行,您必须使用withServer 命令

至于容器停止,请尝试将withRun命令更改为withRun('-d -p 9090:8080')

如果您使用的是声明式管道,请尝试此 ssh 命令。 作为先决条件,您需要设置一个密钥对以允许 Jenkins ssh 进入远程服务器。 对于安全问题,建议使用特定的 ssh 密钥对进行部署:

stage('Deploy to Production') {
      steps{
        sh 'ssh -i path/to/deploy_private_key user@DNS_REMOTE_SERVER "docker run -d REGISTRY/YOUR_DOCKER_IMAGE:TAG"' 
      }
}

使用 -d 参数以分离模式运行容器。 希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM