ubuntu docker 安装 jenkins

ubuntu docker 安装 jenkins

通过 nginx 转发必须是根路径!

本文是记载我通过 docker 安装 Jenkins 之后再通过 nginx 正向代理,期望这样能够通过访问我自己的域名来初始化 docker 中的 jenkins。但是实际操作中遇到了问题,感觉是 jenkins 的问题。

先简单介绍一下 docker 安装 jenkins 的步骤。

步骤

0. 查看版本

Docker 要求 Ubuntu 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 Ubuntu 版本是否支持 Docker。通过 uname -r 命令查看你当前的内核版本。

uname -r

1. 获取最新版本的 Docker 安装包

wget -qO- https://get.docker.com/ | sh

2. 运行/停止 docker

service docker start  // 启动 docker 服务
service docker restart  // 重启docker服务
service docker stop     // 停止docker服务

3. 拉取最新 jenkins 镜像

docker pull jenkins:latest

4. 启动

运行一个镜像为 jenkins:latest 的容器,命名为 jenkins_node2,使用 root 账号覆盖容器中的账号,赋予最高权限,将容器的 /var/jenkins_home映射到宿主机的 /root/jenkins_node2目录下,映射容器中8080端口到宿主机49004端口

sudo docker run -d -u 0 --privileged  --name jenkins_node2 -p 49004:8080 -v /root/jenkins_node2:/var/jenkins_home jenkins:latest

坑点来了!!!

**查看 jenkins: **

执行完成后,等待几十秒,等待 jenkins 容器启动初始化。

可以查看宿主机 /root/jenkins_node2下是否多了很多文件。 由于是在服务器上启动的,所以不能直接访问 http://localhost:49003 来初始化。

也就是说,如果我的服务器防火墙开了 49004 这个端口的话,其实是可以通过 ip:49004 这样的形式去访问 jenkins 并进行初始化了的。 但是,常规的云服务器厂商出于安全考虑一般只会默认开放几个端口,例如 80, 8080, 443 等接口,用于一般的 web 需求。

我的服务器是阿里云的,默认只开了 443 和 80 端口,分别对应 https 和 http 的默认端口, 都是通过 nginx 来代理转发请求的。

一开始我想的比较简单,想直接通过 http://xxx.yyy.cn/jenkins 这样的形式来访问,所有带有 jenkins 前缀的请求我都统统转发到 49004 端口上去。 于是我的 nginx 配置是这样的:

在这里插入图片描述

但是当我访问 域名/jenkins 时, 一直显示

在这里插入图片描述

首先是 jenkins 的内容显示不正常,其次查看 network 发现有大量的静态资源都是 404。

在这里插入图片描述

在这里插入图片描述

仔细查看之后发现,原来 jenkins 的初始化页面上的静态资源加载的路径都是绝对路径,都是从根目录开始寻找静态资源的,难怪这里会显示不正常。

于是乎,我们需要想办法解决这个问题,最简单的方式就是 nginx 代理的直接通过转发到根路径。 要么开其他端口的防火墙可以对外访问,要么就是通过一个三级域名来转发请求(如果你的服务器套了域名的话)。因为开其他端口需要涉及到的更大的权限和隐患,而且阿里云服务器要对外开一个端口真的是贼麻烦,于是我给我的域名再解析了一个三级域名:

在这里插入图片描述

忽略最后代理到的是 49003 端口,因为演示的原因,我是重新 run 了一个镜像来写博客的,所以实际情况根据实际的运行端口配置即可。

通过这样操作以后,再访问 http://jenkins.xxx.cn 的时候你就会看到熟悉的登录界面啦~

在这里插入图片描述

写在最后

不确定会不会有人跟我一样遇到这个问题,想来想去还是记录一下,说不定对别人也有用,特别是遇到 jenkins 正在启动的页面的时候,还一直傻傻等着的人(比如一开始的我, 好歹也是前端工程师。。。。竟然一直没注意去看 network)。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • 0x01 核心概念 Docker镜像类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统...
    闲云逸心阅读 4,691评论 0 9
  • 前言 在应用还处于单体架构的时候,交付周期通常都以周、月为单位,在这种情况下项目的部署一般都是由开发人员手动将程序...
    Briseis阅读 22,006评论 5 70
  • docker的使用 5.1从docker镜像仓库获取镜像的命令 docker pull [选项] [Docker ...
    爱学习的ren阅读 1,357评论 0 0
  • docker的使用 5.1从docker镜像仓库获取镜像的命令 docker pull [选项] [Docker ...
    爱学习的ren阅读 607评论 0 0
  • 云,是嘴角轻抿的那抹笑, 风,是心口氤氲的那缕烟, 山,是梦中飘过的神勇之鹰, 绿,是年轮碾碎的光阴之箭, 还有那...
    许00阅读 276评论 0 1