Jenkins基础篇--Docker容器部署

容器部署Jenkins的优势:

1、安全。容器之间的进程是相互隔离的,单独容器环境稳定,宿主机中环境变量的修改,不容易影响容器的运行结果。

2、更轻松地部署和扩展。容器可方便迁移,一次交付,多次利用,容器可将打包好的jenkins环境迁移到其他设备中。

3、容器启动迅速,环境恢复方便。容器修改可追溯,可通过定时生成docker镜像,保证后续即使出现环境异常,也能快速回复,此外,创建容器实例比创建虚拟机示例快得多。

前提条件:

  1. 安装docker:
    1. 参考文档Docker基础篇--安装docker环境_windows10安装使用docker_傻乎乎的胖鱼的博客-CSDN博客
  2. 安装docker-composer:
    1. 安装python3,pip list没问题后可用pip安装:sudo pip install docker-compose
    2. 赋予权限:chmod +x /usr/local/bin/docker-compose
    3. 检查是否安装成功:docker-compose -v
  3. 选取最新的jenkins镜像,否则jenkins下载插件会失败,原因是jenkins版本不匹配:
    1. 执行命令:docker pull jenkins/jenkins:Its 
  4. 映射路径:sudo chown -R 1000:1000 /home/docker/jenkins(这个本地路径可自行修改,后面会用到该路径)

两种方式:

  1. docker run的方式,直接运行命令行
    1. 创建一个属于 Jenkins 容器的 docker 网络:
      1. 执行命令:docker network create jenkins_network(网络名)
    2. 运行 jenkins 容器:
      1. 执行命令:docker run --name jenkins-in-docker --network jenkins_network(网络名) --publish 8080(访问的端口号,可设置):8080 --publish 50000:50000 --volume /home/docker/jenkins(前提条件4映射路径):/var/jenkins_home --volume /usr/bin/docker:/usr/bin/docker --volume /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts
    3. 观察容器运行的打印,看到日志“Jenkins is fully up and running”,说明 jenkins 启动成功
    4. 浏览器访问 http://服务器IP:8080,如果访问不了,确保自己防火墙开放了 8080 端口
    5. 这时如果ctrl+c退出容器,则jenkins服务关闭,执行命令时可以加上-d,保证容器后台执行;或者docker start docker_jenkins(容器名),可以重启容器
    6. ​浏览器访问 http://服务器IP:8080,进入jenkins配置界面,Jenkins配置可参考:Jenkins基础篇--linux安装Jenkins_傻乎乎的胖鱼的博客-CSDN博客

  2. 采用 docker-compose 方式运行 Jenkins 容器
    1. 创建一个yaml文件
      1. vim infrastructure-docker-compose.yml(名字可修改)
      2. 在yml中配置
      3. version: '3.7'
         
        services:
          jenkins-in-docker:
            image: jenkins/jenkins:lts
            container_name: jenkins-in-docker
            privileged: true
            restart: unless-stopped
            ports:
              - 8080:8080
              - 50000:50000
            environment:
              JAVA_OPTS: "-Xmx2048m -Xms1024m -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
            volumes:
              - ./jenkins_home:/var/jenkins_home
              - /usr/bin/docker:/usr/bin/docker
              - /var/run/docker.sock:/var/run/docker.sock
            networks:
              - jenkins_network
            deploy:
              resources:
                limits:
                  memory: 4096M
                  cpus: '2'
         
        networks:
          jenkins_network:
            external: true
    2. 创建一个sh文件,执行docker-composer命令
      1. vim startup-infrastructure-docker-compose.sh(脚本名称可修改)
      2. 脚本内容
      3. #!/usr/bin/env bash
         
        # 设置docker网络名称和docker-compose文件
        docker_network=jenkins_network
        docker_compose_file=infrastructure-docker-compose.yml
         
        # 输出下docker-compose文件内容
        echo "The compose file as below: "
        docker-compose -f ${docker_compose_file} config
         
        nw=$(docker network ls | grep ${docker_network} | awk '{print $1}')
        if [[ ${nw} ]]; then
          docker-compose -f ${docker_compose_file} --compatibility up --remove-orphans -d
        else
          docker network create ${docker_network} && docker-compose -f ${docker_compose_file} --compatibility up --remove-orphans -d
        fi
    3. 给sh脚本赋权限,并执行该脚本
      1. chmod +x startup-infrastructure-docker-compose.sh
      2. ./startup-infrastructure-docker-compose.sh
    4. 查看容器:docker ps
    5. 可查看容器运行日志,执行命令:docker logs -f 容器名 --tail=50,看到日志“Jenkins is fully up and running”,说明 jenkins启动成功​​​​​​​
    6. 浏览器访问 http://服务器IP:8080,进入jenkins配置界面,Jenkins配置可参考:Jenkins基础篇--linux安装Jenkins_傻乎乎的胖鱼的博客-CSDN博客
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了使用Docker部署Jenkins,可以使用docker-compose文件来配置Jenkins容器。在docker-compose文件中,可以指定Jenkins的镜像、卷以及其他相关的配置信息。在配置文件中,可以指定Jenkins的镜像版本、数据卷的映射路径以及与Docker守护进程通信的socket路径。 一个示例的docker-compose文件如下所示: version: '3.1' services: jenkins: image: jenkins/jenkins:lts volumes: - /data/jenkins/:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock ... 这个配置文件指定了使用Jenkins的最新稳定版镜像,同时将Jenkins的数据目录映射到主机的/data/jenkins/路径下。此外,还将Docker守护进程的socket映射到Jenkins容器中以便与Docker进行通信。其他的配置信息可以根据具体需求进行调整和添加。 值得注意的是,还有其他的方法可以使用Ansible和Docker部署Jenkins容器。可以使用Ansible的Docker模块来创建和管理Docker容器,同时使用Jenkins的Ansible插件来自动化Jenkins的安装和配置。这样可以更加灵活地管理Jenkins容器,并且可以将Jenkins容器部署到多个主机上。 希望以上信息对您有所帮助。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [docker-compose部署配置jenkins的详细教程](https://download.csdn.net/download/weixin_38748556/14048510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Ansible-Docker-Jenkins:使用Docker-Jenkins https部署Jenkins Docker容器的角色](https://download.csdn.net/download/weixin_42098759/16013274)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值