如何在远程计算机中运行docker容器

时间:2018-05-07 09:58:18

标签: docker jenkins docker-compose dockerfile jenkins-pipeline

我试图通过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. 如果我没有给睡眠命令,那么这项工作就开始了 成功,但我的docker容器立即启动和停止。即 我无法获得输出。如何解决这个问题呢?
  2. 我想在远程计算机上运行此docker镜像?怎么做?

2 个答案:

答案 0 :(得分:0)

要在远程服务器上运行,必须使用withServer command

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

答案 1 :(得分:0)

如果使用声明性管道,请尝试使用此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参数以分离模式运行容器。 希望能帮助到你。