簡體   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