首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过jenkins管道在远程服务器上拉取和运行docker镜像

Jenkins是一个开源的自动化服务器,它可以帮助实现持续集成和持续交付。通过Jenkins,我们可以使用管道(Pipeline)来定义软件交付流程并自动化执行。在远程服务器上拉取和运行Docker镜像,可以通过以下步骤实现:

  1. 配置Jenkins服务器:确保在Jenkins服务器上已经安装了Docker和相关插件,比如"Docker Pipeline"插件和"SSH Agent"插件。
  2. 创建Jenkins Pipeline:在Jenkins中创建一个Pipeline项目,选择Pipeline类型为"Pipeline script"或者使用Jenkinsfile。
  3. 定义远程服务器连接信息:在Pipeline中添加远程服务器的连接信息,包括服务器地址、SSH密钥等,可以使用"withCredentials"命令来保护敏感信息。
  4. 拉取和运行Docker镜像:在Pipeline中使用Docker命令来拉取和运行Docker镜像。可以使用"sshagent"命令来启动SSH Agent,然后使用"ssh"命令通过SSH连接到远程服务器并执行Docker命令。

以下是一个示例的Jenkins Pipeline代码:

代码语言:txt
复制
pipeline {
    agent any

    stages {
        stage('Pull Docker image') {
            steps {
                script {
                    sshagent(credentials: ['ssh-credentials-id']) {
                        ssh user: 'remote-user', host: 'remote-server', port: 22, identityFile: '/path/to/ssh/key'
                        {
                            sh 'docker pull your-docker-image'
                        }
                    }
                }
            }
        }

        stage('Run Docker container') {
            steps {
                script {
                    sshagent(credentials: ['ssh-credentials-id']) {
                        ssh user: 'remote-user', host: 'remote-server', port: 22, identityFile: '/path/to/ssh/key'
                        {
                            sh 'docker run your-docker-image'
                        }
                    }
                }
            }
        }
    }
}

请注意替换代码中的"remote-server"、"remote-user"、"/path/to/ssh/key"、"your-docker-image"和"ssh-credentials-id"为实际的值。

这样,当Jenkins Pipeline执行时,它将通过SSH连接到远程服务器,拉取并运行指定的Docker镜像。

推荐的腾讯云相关产品:如果你希望在腾讯云上执行这个Jenkins Pipeline,可以考虑使用以下产品:

  1. 云服务器(CVM):提供可信赖的云端服务器资源,用于部署Jenkins服务器和远程服务器。
  2. 云安全中心(CWS):提供全面的安全防护,保护服务器免受网络攻击。
  3. 云服务器备份(CBS):提供数据备份和恢复的服务,确保关键数据的安全性和可靠性。
  4. 容器服务(TKE):提供基于Kubernetes的容器编排和管理,可方便地在云上部署和管理Docker容器。

更多有关腾讯云产品的信息,请访问腾讯云官方网站:https://cloud.tencent.com/。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Jenkins 配合 Kubernetes 实现服务持续集成的实践和建议

端口;更简单方法,直接远程到一台包含 docker 基础服务的服务器上执行,但无论如何,你可能都要折腾一下,改变现有使用方式。...4、docker 镜像构建、镜像提交到仓库; docker 镜像在构建需要区别与以前的形式,如果你已经在 Jenkins 上安装了 docker 插件,直接在当前机器构建即可,如果没,也没问题,远程 SSH...第二点、历史镜像如何处理?比较建议每次镜像构建完成之后,通过  Jenkins 配置命令删除没有运行的镜像。 具体根据使用场景处理这些中间产物。...docker rm $(docker ps -a -q) 5、Kubernetes yaml 运行过程到仓库拉取 docker 镜像构建产物,从而启动整个服务,测试人员开始全方位功能、性能测试。...,Jenkins 每次构建时 SSH 到这台服务器进行备份、修改运行 yaml 文件。

1.8K20

基于 Github+Jenkins+Maven+Docker 自动化构建部署

docker的优点就不在这里赘述了。 目标 最终目标:在linux系统中,搭建jenkins服务,定时(或githook)的方式从github上拉取maven工程,构建war包。...我使用的是ubuntu系统,使用docker形式的jenkins,拉取github工程,gitlab同理,构建war包,再在tomcat镜像的基础上将war包进去,构成新镜像,推送到阿里的registry...第三步 推送war包到tomcat服务器 上一步已经可以构建出war包,并在target中。这一步我们将war包推送到远程的一台tomcat服务器上去(tomcat我部署在运行VM的宿主机器上)。...此Dockerfile在github中,jenkins在拉取源码时,该文件也会被拉取。...该构造可运行在中小公司完全没问题,如果构建频繁等原因性能跟不上,可在此结构上进行扩展,增加jenkins集群和docker服务器。

3.5K40
  • Docke + Jenkins 实现自动化部署

    P2: 或者是直接用 xshell 这样的工具,远程连接上服务器,直接拉取远程仓库的代码。...然后重启项目—> 编译 —> 运行 1.2 Docker 部署项目 P3 Docker 容器化部署,我用的是 Docker,整体上和上面相差不大,替换最新的软件包,或者项目代码,然后用 Docker...因此我们想一想有没有这样的工具,能够将我们提交到远程仓库的代码。自动拉取到服务器上,然后能够自动执行编译构建,然后重启呢? 二、Jenkins 是啥?...Docker 快速入门 Linux 云服务器一台(CentOS 7.5 版本) Docker 安装(配置镜像源) PS: 以下命令都是在 Linux Shell 下执行的 第一步: 搜索 镜像 或者去...docker hub 搜索镜像 docker search jenkins 第二步: 拉取镜像 docker pull jenkins/jenkins:lts 解释一下,这里为什么要用 TAG 为

    79620

    Docker + Jenkins 实现自动化部署实践

    P2: 或者是直接用 xshell 这样的工具,远程连接上服务器,直接拉取远程仓库的代码。...然后重启项目—> 编译 —> 运行 1.2 Docker 部署项目 P3 Docker 容器化部署,我用的是 Docker,整体上和上面相差不大,替换最新的软件包,或者项目代码,然后用 Docker 构建容器...因此我们想一想有没有这样的工具,能够将我们提交到远程仓库的代码。自动拉取到服务器上,然后能够自动执行编译构建,然后重启呢?二、Jenkins 是啥?...第二步: 拉取镜像docker pull jenkins/jenkins:lts 解释一下,这里为什么要用 TAG 为 lts。...,因为我们是用 Docker 搭建的 Jenkins,上面的目录肯定是在自己的服务器上找不到的,但是我们做了容器卷挂载,一样可以找到对应的内容 cd /home/jenkins_home/secrets

    1.6K01

    Docker(三) 通过gitlab部署CICD「建议收藏」

    Docker(三) docker通过gitlab部署CICD 一、 部署gitlab 1.1 拉取gitlab镜像 # gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本 #...注意需要配置镜像加速器,不然会非常慢 docker pull gitlab/gitlab-ce 1.2 运行gitlab镜像 docker run -d -p 443:443 -p 80:80 -p...以下引用官方文档进行介绍: 持续集成的工作原理是将小的代码块推送到Git存储库中托管的应用程序代码库中,并且每次推送时,都要运行脚本管道来构建,测试和验证代码更改,然后再将其合并到主分支中。.../.ssh/id_rsa.pub. 3、 复制到Gitlab的密钥中 3.2.3 配置JDK和Maven 3.2.3 手动拉取Gitlab项目 主要是为了完成第一次的拉取,输入yes,之后可以删掉这个...3.2.4 创建Maven任务 1、在idea新建一个简单的maven项目(cd_test) , 并将其推送到gitlab上 2、 在Jenkins的监控页面新建maven任务

    2.4K11

    jenkins + docker自动化部署maven项目

    1 相关说明 jenkins安装方式有多种,可以直接安装在服务器上,也可以使用docker拉取jenkins镜像,本文是直接安装到服务器上的方式 linux安装jenkins及相关配置可参考这里 一般来说...,jenkins自动部署有下面的方式 graph TB A(代码上传到git) --> B(jenkins从git拉取代码) B --> C(jenkins在本地编译代码并构建docker镜像) C -...-> D(将docker镜像上传到docker仓库) D --> E(jenkins远程登陆生产环境的服务器) E --> F(从docker仓库拉取构建的镜像并运行) 对于我们大部分人来说,实际上很多工作都是在同一台服务器上完成...=) graph TB A(代码上传到git) --> B(jenkins从git拉取代码) B --> C(jenkins在本地编译代码并构建docker镜像) C --> D(remove旧的镜像并运行新镜像...jar包到jenkin的工作目录 2.cd到jenkin工作目录,移除正在运行的docker容器和镜像 3.构建新的docker镜像并运行 4.删除jar包 可参考我下面的命令,需要根据自己maven和

    1.6K40

    DevOps整合Jenkins+k8s+CICD

    希望系统稳定安全运行。 这看似两个目标不同的团队需要协同完成一个软件的开发。 在开发团队指定好计划并完成coding后,需要提供到运维团队。...拉取GitLab镜像 docker pull gitlab/gitlab-ce 准备docker-compose.yml文件 mkdir -p /data/git vim /data/git/docker-compose.yml...Jenkins最主要的工作就是将GitLab上可以构建的工程代码拉取并且进行构建,再根据流程可以选择发布到测试环境或是生产环境。...一般是GitLab上的代码经过大量的测试后,确定发行版本,再发布到生产环境。 CI/CD可以理解为: CI过程即是通过Jenkins将代码拉取、构建、制作镜像交给测试人员测试。...CD过程即是通过Jenkins将打好标签的发行版本代码拉取、构建、制作镜像交给运维人员部署。 持续交付:让经过持续集成的代码可以进行手动部署。

    2.9K40

    微服务 day20:项目部署与持续集成(DevOps)

    GitLab 与 GitHub的功能相似,通常企业使用GitLab在局域网搭建自己的Git代码管理仓库 拉取gitlab、redis、postgresql,gitlab 依赖 redis 和 postgresql...在服务器内拉取项目代码到本地 ?...1、使用Docker安装Jenkins 本教程在 docker 下安装 Jenkins: 拉取镜像 docker pull jenkinsci/blueocean 创建容器挂载目录,并且赋予权限 mkdir...注意,如果在jenkins远程执行的 SSH凭证 非 root 用户,需要在远程服务器上执行以下命令,将当前用户加入到 docker 组内 sudo usermod -aG docker $USER 2...配置第三步,从 docker 私有仓库拉取镜像并创建容器,启动容器 # 如果指定容器容器不存在则拉取后再进行创建,并且创建后自动执行 docker run --name xc-govern-center

    2.1K40

    如何在Ubuntu上使用Jenkins自动构建

    Jenkins是一个开源自动化服务器,允许您构建管道以自动化构建,测试和部署应用程序的过程。在本指南中,您将实施基本工作流程,以加快持续集成和持续交付(CI / CD)过程。...Jenkins将主要通过较新的Blue Ocean网络界面使用。 工作站和远程Linode都需要事先安装Docker。有关详细说明,请参阅我们的如何安装docker镜像的指南。...每次在分布式版本控制系统上进行更改时,都会在Jenkins服务器上触发自动化循环。运行该流程的整套说明Jenkinsfile位于源存储库的根目录中。...从源控件中推或拉。 转移档案。 创建Docker镜像,dockerize应用程序,拉取图像。 几乎所有你能想到的行动都可以通过步骤来实现。...所有这些操作都可以在您内部执行,agent或者您也可以指示Jenkins通过SSH远程执行任何操作。如您所见,有无尽的自动化可能性。

    8K10

    k8s+jenkins自动部署前后台

    这里记录如何通过 jenkins 打包发布 springboot 后台应用至 K8s 集群和 jenkins 打包发布 vue 前端应用至 K8s 集群,个人编写只供参考!...# 1.jenkins打包发布springboot后台应用至K8s集群 整体思路: Jenkins 通过SVN拉取远端源码 springboot后台应用打包zip 把应用后台包解压,并通过Dockerfile...打成Docker镜像 将镜像上传到Docker私有仓库harbor ,这里我将新的tag设置为构建时的编号 删除老的Docker镜像,运行新的Docker镜像 —— shell脚本 k8s集群apply...更改后的yml文件,直接拉取harbor仓库新镜像完成更新 # 2.jenkins打包发布vue前端应用至K8s集群 整体思路 目前k8s集群中前端考虑更新频率高,所以未使用打入完整html的nginx...# 5.后台打包发布步骤 spring项目构建pom.xml文件打包 将打好的包推送到ssh远程服务器并执行命令 # 6.使用到的脚本参考 前端 #!

    1.3K60

    Docker+Jenkins+Gitee+Harbor+WebHooks实现CICD!

    Codeing ==> 代码管理器(SVN,TFS,Git,GitLab) ==>编译 ==> 打包 ==> 拷贝至目标服务器 ==> 构建镜像 ==> 容器化部署==>访问 #使用了Jenkins,...: Chinese (Simplified) ===> 做汉化使用 Gitee Plugin ===> 对接Gitee的插件 Docker API Plugin ===> 连接服务器上已有的...Docker 来构建镜像 的插件 Publish Over SSH ===> 远程连接访问的插件 使用jenkins拉取Gitee中的项目 jenkins中如何使用Docker API插件构建镜像...开启端口 前提:目标服务器上是已经安装有docker的,并且开发2376端口 -------------------------------------------------------------...使用Dockerfile Plugin配置连接Docker引擎 搭建harbor私服仓库并完成镜像推拉和jenkins对接 如何把新构构建的镜像拉渠道目标服务器并进行项目容器化部署 ----

    38931

    写个简单的项目自动部署脚本

    我们以jenkins为例,其本质就是从远程仓库拉取代码,然后本地编译打包,然后上传到目标服务器执行启动命令,简化过程如下: 那么在一些简单的项目中,我们可不可以完全自己写一个脚本来做打包部署呢,答案是可以的...,我们可以模仿jenkins的工作流程并且做一些简化: 从git拉取项目代码到服务器 使用maven命令进行编译打包,打成可执行的jar 使用命令或者其他工具启动java服务(java -jar,docker...等等) 这样原本在jenkins执行的工作,转移到了服务器本机执行了。...二、编写部署脚本 前边有介绍到通过脚本来部署应用程序,那么就需要目标服务器拥有执行相关拉取代码、编译、构建的能力,比如最基本的java运行环境、maven工具、git命令等,如果是借助docker启动服务...: ssh-keygen 然后把~/.ssh/id_rsa.pub内容添加到远程仓库的ssh秘钥中: 这样服务器就可以通过git命令从远程仓库拉取代码了。

    43110

    docker | jenkins 实现自动化CICD,后端躺着把运维的钱挣了!(下)

    前言 在上一篇文章中,我们使用docker编写 Dockerfile文件,将我们自己的项目构建成镜像,然后发布到 DockerHub中,并且用自己的云服务器拉取Docker Hub上我们自己上传的项目镜像...,并且由该镜像运行容器,使得我们成功将自己的项目用docker运行了起来,并且外网访问测试通过。...服务则从gitee主动拉取项目代码,构建新镜像(借助上一节编写好的Dockerfile文件),然后删除同名旧镜像和旧容器,部署新容器。.../build-a-python-app-with-pyinstaller/,你可以选择将jenkins服务直接安装到服务器上,也可以选择将jenkins服务通过容器运行在服务器上,这里我选择后者,点击上面的链接...,访问服务器ip:8080就能跳转到jenkins登录页面,第一次会让你输入一个密钥,这个在服务器运行Jenkins容器的时候控制台上就会显示(如果没有加上-d参数)。

    48720

    Jenkins 配合Pipeline使用Docker

    与之前使用“现成”容器的方法不同,使用代理 agent { dockerfile true }语法将从Dockerfile中构建新镜像,而不是从Docker Hub中拉取镜像。...目前,Jenkins插件和Docker CLI都不会自动检测远程运行的服务器的文件系统;典型的症状是嵌套的sh命令出错,例如 cannot create /…@tmp/durable-…/pid: Directory...每个项目只需要选择一个包含它所需的所有工具和库的镜像(这可能是像maven这样的公开镜像,也可能是由这个或另一个Jenkins项目创建的)有两种方法可以在镜像中运行Jenkins构建步骤。...一种需要在镜像中包含它所需的所有工具、运行环境,然后在镜像中运行整个构建,另一种借助插件inside()方法,实现在任意镜像中运行构建,和前者的区别在于后者可以不用提前在镜像中包含所需要工具、运行环境,...} 以上是一个完整的Pipeline脚本,inside将: 自动获取代理和工作区(不需要额外的node块) 将请求的镜像拉取到Docker服务器(如果尚未缓存的话) 启动一个运行该镜像的容器 使用相同的文件路径

    3.4K10

    Jenkins+Docker+SpringCloud微服务持续集成(上)

    安装Docker Compose 安装Harbor 访问Harbor 在Harbor中创建用户和项目 创建用户 给私有项目分配用户 以新用户登录Harbor 把镜像上传到Harbor 从Harbor上拉取镜像...把Harbor地址加入到Docker信任列表中 Docker命令登录Harbor 拉取镜像 ---- Jenkins+Docker+SpringCloud持续集成说明 概述 大致流程说明: ●...● Jenkins从Gitlab中拉取项目代码,编译并打成jar包,然后构建Docker镜像,将镜像上传到Harbor私有仓库。...● Jenkins发送SSH远程命令,让生产部署服务器从Harbor私有仓库拉取镜像到本地,然后创建容器。 ● 最后,用户可以访问到容器。...p pwd 192.168.18.102:85 推送镜像: docker push 192.168.18.102:85/volunteer/mysql:5.7 ---- 从Harbor上拉取镜像 前提说明

    70610

    解锁高效开发:CICD 流水线打通跨技术栈协作流程

    此外,Git plugin 不可或缺,它打通 Jenkins 与 Git 仓库,代码拉取、推送行云流水;Publish Over SSH 用于远程服务器部署,配置服务器 IP、用户名、密码等信息,一键上传构建产物...五、打通构建、测试与部署环节(一)Java 后端项目在 Jenkins 中构建 Java 后端项目时,首先利用 Git 插件从代码仓库(如 GitHub、GitLab)拉取最新代码,拉取策略可按需配置,...构建成功则生成 JAR 文件,借助 Publish Over SSH 插件,依预设配置传输至测试服务器、预发布服务器或生产服务器指定目录,同时可编写 Shell 脚本,实现远程服务器上 JAR 包的自动部署...[ "python", "app.py" ]”,构建完成后镜像推送至本地 Docker 仓库或远程镜像仓库(如 Docker Hub、Harbor),为部署至容器集群铺垫。...构建镜像,部署借助如 docker - deploy@v1 将镜像推送至目标容器集群,通过 Kubernetes API 或 Docker Compose 配置,实现数据服务在集群中的弹性伸缩、稳定运行

    9810

    Jenkins+Docker+SpringCloud微服务持续集成(中)

    在每个微服务根目录下新建Dockerfile文件 修改Jenkinsfile 手动上传镜像到Harbor镜像仓库 拉取镜像和发布应用 配置远程部署服务器 在远程部署服务器创建部署的脚本 在Jenkins...'/var/lib/jenkins/workspace/SpringCloudBook/Code/start.bash' } } ---- 拉取镜像和发布应用 当jenkins所在服务器完成了镜像上传后...,下一步就是通过 Publish Over SSH插件,发送命令给生产部署服务器,让他去拉取harbo镜像仓库的最新镜像,然后创建容器。...配置远程部署服务器 在192.168.18.101中配置远程部署服务器(192.168.18.103): 因为我将所有服务器的防火墙关闭,但是在实际生产环境下,需要通过ssh公钥和私钥来匹配使用,前面已经生成过公钥和私钥...}" stage('拉取镜像和发布应用') { // 远程部署调用进行项目部署 sshPublisher(publishers: [sshPublisherDesc

    54720

    2021年排名前85的DevOps面试问答

    Git获取 Git拉 Git提取仅从远程存储库下载新数据 Git pull使用来自远程服务器的最新更改来更新当前的HEAD分支 不会将任何新数据集成到您的工作文件中 下载新数据并将其与当前工作文件集成...使用冲突编辑器解决合并冲突: 在您的存储库名称下,单击“拉取请求”。 ? 在“请求”下拉列表中,单击您要解决的合并冲突请求 在拉取请求的底部附近,单击“解决冲突”。 ?...它允许在管道上进行代码检查和迭代。 它允许对管道进行审核跟踪。 管道只有一个真实来源,可以查看和编辑。 29.以下哪个命令从命令行运行Jenkins?...管道的代码定义了整个构建过程,包括构建,测试和交付应用程序 节点: 属于Jenkins环境且能够执行管道的机器 步骤: 告诉Jenkins在特定时间点该做什么的单个任务 阶段: 定义从概念上讲,贯穿整个管道执行的任务的子集...34.如何将Jenkins从一台服务器复制到另一台服务器? ? 通过复制相应的作业目录,将作业从一个Jenkins安装移至另一安装。 通过使用不同名称克隆作业目录来创建现有作业的副本。

    6.8K30

    企业DevOps之路:Jenkins 集成 Harbor 自动发布镜像

    大致流程说明: 开发人员每天把代码提交到 Gitlab 代码仓库 Jenkins 从 Gitlab 代码仓库中拉取项目源码,进行编译并打成 jar 包;然后构建成 Docker 镜像,将镜像推送到 Harbor...私有镜像仓库 Jenkins 发送 SSH 远程命令,让生成部署服务器从 Harbor 私有镜像仓库中拉取镜像到本地;然后创建容器 最后用户可以访问到容器 2....Jenkins 脚本式发布镜像 新建构建任务 新建Item -> 构建一个Maven项目 配置代码仓库 上传成果物到服务器 因 Jenkins 部署在 Windows 操作系统,所以采用批处理脚本...CI服务器4243端口作为https 443端口的修改2377:群集模式套接字,适用于群集管理器,不适用于docker客户端5000:docker注册服务4789和7946:覆盖网络 开启配置 方法一(...Docker 本身没有身份认证的功能,只要网络上能访问到服务端口,就可以操作 Docker。 方法二 在/usr/lib/systemd/system/docker.service,配置远程访问。

    2.9K31

    喝杯咖啡,一键部署完成!(建议收藏)

    上一篇我们聊到如何用 Docker 打包部署:丝滑的打包部署,一套带走 这次我们来聊下如何一键部署分支代码到服务器。 本文主要内容如下: 背景 新项目没有完善的部署流程,只能自己先搭一套来顶一顶了。...比如拉取 Gitlab 仓库代码的插件、远程执行命令和拷贝文件的插件。 Jenkins 开始运行一个任务时,通过 Git 插件从 Gitlab 仓库拉取代码到本地目录。...配置拉取的代码仓库 仓库 URL 用户名和密码 配置拉取的代码仓库地址和认证方式 配置打包 配置 Maven 打包 echo "开始打包" mvn clean package echo "打包完成"...打印 Jenkins 运行项目的结果 输出记录中打印出了以下关键信息:代码拉取后存放在哪,打的 jar 包在哪。...nohup 命令用于将脚本在后台运行,即使终端会话结束,脚本仍然继续运行。 远程服务器上创建脚本 如果想要 jenkins 执行远程服务器上的脚本,则需要先在远程服务器上创建一个可执行的脚本。

    36410
    领券