首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker下部署jenkins(一)

docker下部署jenkins(一)

作者头像
RobinsonZhang
发布2018-10-08 11:12:18
3.1K0
发布2018-10-08 11:12:18
举报

前言

本文带你在docker中安装jenkins服务,为入门级别的介绍,建议阅读时间10-15min.

检查是否安装docker

docker --version 

拉取镜像

// 拉取镜像
docker pull jenkins 
// 拉取成功提示
Digest: sha256:eeb4850eb65f2d92500e421b430ed1ec58a7ac909e91f518926e02473904f668
Status: Downloaded newer image for jenkins:latest
//通过命令查看本地具有的所有镜像
docker images

简单配置

你需要配置jenkins的相关目录,并且给其对应的权限,这两者都是必备的。

mkdir -p /root/jenkins_home
chown -R 1000  /root/jenkins_home

解说:mkdir 是创建文件夹的命令,-p代表强制创建目录,就是说如果没有中间目录的时候也会顺便创建其父目录。 而chown用来更改某个目录或文件的用户名和用户组,而chmod是修改文件夹的修改权限,其是有差别的,而我们一般修改的是文件所有者的权限,1000指的是用户的id,正常情况下是用户名。或者用户组。

这里多说一点,建议大家多去看比较正规或者完善一点的教程,不要随便百度一般网友的回复或者博客,尽量关注大佬或者比较官方的,有人维护的一些技术文档。这里提供的是菜鸟教程的一些简单说明,作为入门掌握还是足够的。

启动jenkins服务

docker run  -d -p 8080:8080  --name myjenkins    -v /root/jenkins-home:/root/jenkins_home  jenkins

命令解读:docker run 是运行所有docker镜像的标准写法,其中-d代表后台运行,-p指的是映射容器端口与服务器端口,–name指 的是对镜像所自定义的名称,当不方便使用容器id的时候,可以使用名字对其进行查看或者删除,-v指的是自定义配置jenkins目录,最后的参数jenkins指的是使用的是本地的jenkins镜像。

查看日志记录其秘钥

这一步是在正常启动后,顺便查看下其日志,因为其后续是需要的。所以不妨直接进入日志查看下,当然也可以通过其他方式进行查看。

注意事项

查看全部状态的docker容器

可以查看到所有的容器,包括退出的,启动的,线上的等

docker ps -a
// 其实你可以rm ,stop后执行多个容器的,空格隔开就可以
docker rm myjenkins1 myjenkins2 heuristic_lamarr quirky_kirch

用ps查看jenkins服务的具体情况

ps -ef |grep jenkins
www       4470  4453  0 9月23 ?       00:00:02 /bin/tini -- /usr/local/bin/jenkins.sh
www       4501  4470  0 9月23 ?       00:01:38 java -jar /usr/share/jenkins/jenkins.war
root      6213  5885  0 21:14 pts/0    00:00:00 grep --color=auto jenkins

jenkins部分是否需要java环境,tomcat服务做端口监听

jenkins镜像本身同时具有这两者,所以不用操心了。如果你按照上面的配置完成启动,正常情况下就可以通过ip+端口访问到你的jenkins界面了。

启动失败的情况

1 容器名称重复,解决办法:将容器的名字也就是–name后的参数换掉即可

docker: Error response from daemon: Conflict. The container name "/myjenkins" is already in use by container

2 端口冲突,其他服务已经占用,解决办法,查看所有的端口占用情况或者直接查看某端口下是否有服务。

//报错
 Bind for 0.0.0.0:8080 failed: port is already allocated.
//查看端口占用情况
netstat -tunlp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      14379/nginx: master 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      15847/sshd          
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      10245/mysqld        
tcp6       0      0 :::8080                 :::*                    LISTEN      4447/docker-proxy   
tcp6       0      0 :::8099                 :::*                    LISTEN      1508/docker-proxy   
udp        0      0 0.0.0.0:68              0.0.0.0:*                           777/dhclient        
udp        0      0 172.17.0.1:123          0.0.0.0:*                           24745/ntpd          
udp        0      0 172.16.199.194:123      0.0.0.0:*                           24745/ntpd    
// netstat -tunlp | grep 8080
//如果端口占用是不合理的情况,可以关掉其端口的进程,kill -9 进程id

3 文件没有权限,设置权限即可

如果在服务器上查看是否启动成功

你可以通过docker ps 查看所有的启动好的容器,也可以通过docker ps | grep containerName 来具体查看你的服务启动状态,如果为up就是正常的。

docker ps | grep myjenkins
1df370bbb026        jenkins             "/bin/tini -- /usr/l…"   24 hours ago        Up 24 hours         0.0.0.0:8080->8080/tcp, 50000/tcp   myjenkins

你也可以通过curl ip+端口进行访问,如果启动正常,其和浏览器一样会返回其页面代码的部分。

curl localhost:8080
<html><head><meta http-equiv='refresh' content='1;url=/login?from=%2F'/><script>window.location.replace('/login?from=%2F');</script></head><body style='background-color:white; color:white;'>
Authentication required

外网不可访问

我遇到的就是这种情况,被坑了比较久,也是自己比较小白的原因。 1 查看防火墙的状态,之前的linux系统可能是用iptables的,最新的都是用firewalld.service来进行相应的管理的。 相关参考:firewalld.serivce

2 查看你的云服务器是否有单独的安全组设置,我就是被这部分坑的。 主要是因为阿里云服务器针对其他端口默认是不对外开放的,你需要单独设置增加规则才可以。

总结

本文就到这里,还没有涉及到基本的部署配置,等待我下一篇更新吧。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 检查是否安装docker
  • 拉取镜像
  • 简单配置
  • 启动jenkins服务
  • 查看日志记录其秘钥
  • 注意事项
    • 查看全部状态的docker容器
      • 用ps查看jenkins服务的具体情况
        • jenkins部分是否需要java环境,tomcat服务做端口监听
          • 启动失败的情况
            • 如果在服务器上查看是否启动成功
              • 外网不可访问
              • 总结
              相关产品与服务
              容器服务
              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档