1.构建jenkins 镜像 

塑造自定义的Jenkins,Docker轻量级图形页面管理Portainer安装配置。Docker轻量级图形页面管理Portainer安装配置

1.介绍

Docker 图形化管理提供了不胜枚举工具,有Portainer、Docker
UI、Shipyard等等,本文首要介绍Portainer。

Portainer是三个开源、轻量级Docker管理用户界面,基于Docker
API,提供景况呈现面板、应用模板快速布置、容器镜像网络数据卷的基本操作(包蕴上传下载镜像,创制容器等操作)、事件日志显示、容器控制台操作、Swarm集群和劳务等集中管理和操作、登录用户管理和决定等职能。功效格外完美,基本能满意中型小型型单位对容器管理的方方面面急需。

从零搭建docker+jenkins+node.js自动化布置环境

  • 此次案例基于CentOS 7系统
  • 切合有自然docker使用经验的人读书
  • 符合有早晚linux命令使用经验的人观望

vim Dockerfile

1.介绍

Docker 图形化管理提供了很多工具,有Portainer、Docker
UI、Shipyard等等,本文主要介绍Portainer。

Portainer是二个开源、轻量级Docker管理用户界面,基于Docker
API,提供意况展现面板、应用模板连忙安顿、容器镜像互连网数据卷的基本操作(包蕴上传下载镜像,创立容器等操作)、事件日志显示、容器控制台操作、Swarm集群和劳动等集中管理和操作、登录用户管控等效率。功用万分完善,基本能满意中型小型型单位对容器管理的整套急需。

2.制造容器

1、docker部分

FROM jenkins

2.创设容器

2.1下载官方镜像

[root@ linuxidc /]# docker pull portainer/portainer
Using default tag: latest
latest: Pulling from portainer/portainer
d1e017099d17: Pull complete
ba5495c717cb: Pull complete
Digest:
sha256:8146a5aae1135a0ccee424488c6867b438be21d1e915903a858d12e8382b817b
Status: Downloaded newer image for portainer/portainer:latest

1.1、docker简介

Docker
是二个开源的行使容器引擎,让开发者能够打包他们的选择以及借助包到2个可移植的器皿中,然后发布到其余流行的
Linux
机器上,也足以完结虚拟化。容器是截然使用沙箱机制,互相之间不会有任何接口

 

USER root

2.1下载官方镜像

[[email protected]
bkjia /]# docker pull portainer/portainer
Using default tag: latest
latest: Pulling from portainer/portainer
d1e017099d17: Pull complete
ba5495c717cb: Pull complete
Digest:
sha256:8146a5aae1135a0ccee424488c6867b438be21d1e915903a858d12e8382b817b
Status: Downloaded newer image for portainer/portainer:latest

2.2单机运转

一经仅有3个docker宿主机,则可利用单机版运转,Portainer单机版运维13分简易,只必要一条语句即可运转容器,来保管该机器上的docker镜像、容器等数据。

开创数量卷:

[root@linuxidc ~]# docker volume create portainer_data
portainer_data

运作容器:

[root@linuxidc ~]# docker run -d -p 9000:9000 -v
/var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data
portainer/portainer
439cc8a6d44a84f5967534c50d3accc43fbeb578258a52c2683afeb230dd6e04

参数表达:
-d:容器在后台运转;
-p 7000:七千 :宿主机玖仟端口映射容器中的8000端口
-v /var/run/docker.sock:/var/run/docker.sock
:把宿主机的Docker守护进程(Docker
daemon)暗中同意监听的Unix域套接字挂载到容器中;
-v portainer_data:/data
:把宿主机portainer_data数据卷挂载到容器/data目录;

查看容器进度:

[root@linuxidc ~]# docker ps -l
CONTAINER ID        IMAGE                COMMAND            CREATED     
      STATUS              PORTS                    NAMES
439cc8a6d44a        portainer/portainer  “/portainer”        13 seconds
ago      Up 13 seconds      0.0.0.0:9000->9000/tcp  amazing_clarke

走访服务:

  • 访问情势:
    ,第三次登录要求登记用户,给用户admin设置密码,如下图:

澳门金沙国际 1

  • 单机版本选择“Local”,点击Connect即可连接到地面docker,如下图:

澳门金沙国际 2
在意:从上航海用教室能够观望,有提示供给挂载本地
/var/run/docker.socker与容器内的/var/run/docker.socker连接。因而,在运转时必须钦定该挂载文件。

  • 跻身后方可对容器、镜像、互联网、数据卷等实行政管理制,如下图:

澳门金沙国际 3

1.2、docker架构

一言以蔽之,docker就是四个轻量级的linux系统。Docker 容器通过 Docker
镜像来创制。容器与镜像的涉及近乎于面向对象编制程序中的对象与类。docker架构如图所示:

澳门金沙国际 4

ARG dockerGid=999

2.2单机运维

如果仅有一个docker宿主机,则可使用单机版运行,Portainer单机版运行十分简单,只需要一条语句即可启动容器,来管理该机器上的docker镜像、容器等数据。

始建数量卷:

[[email protected]
~]# docker volume create portainer_data
portainer_data

运营容器:

[[email protected]
~]# docker run -d -p 9000:9000 -v
/var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data
portainer/portainer
439cc8a6d44a84f5967534c50d3accc43fbeb578258a52c2683afeb230dd6e04

参数表明:
-d:容器在后台运营;
-p 八千:柒仟 :宿主机8000端口映射容器中的玖仟端口
-v /var/run/docker.sock:/var/run/docker.sock
:把宿主机的Docker守护过程(Docker
daemon)暗中认可监听的Unix域套接字挂载到容器中;
-v portainer_data:/data
:把宿主机portainer_data数据卷挂载到容器/data目录;

翻开容器进度:

[[email protected]
~]# docker ps -l
CONTAINER ID        IMAGE                COMMAND            CREATED     
      STATUS              PORTS                    NAMES
439cc8a6d44a        portainer/portainer  “/portainer”        13 seconds
ago      Up 13 seconds      0.0.0.0:9000->9000/tcp  amazing_clarke

做客服务:

  • 走访格局:
    ,第①次登录须要注册用户,给用户admin设置密码,如下图:

澳门金沙国际 5

  • 单机版本选拔“Local”,点击Connect即可连接到地头docker,如下图:

澳门金沙国际 6
留意:从上航海用教室能够见见,有提示须要挂载本地
/var/run/docker.socker与容器内的/var/run/docker.socker连接。由此,在运行时必须钦命该挂载文件。

  • 进入后能够对容器、镜像、互连网、数据卷等开始展览管理,如下图:

澳门金沙国际 7

2.3集群运维

更加多的图景下,大家会有1个docker集群,大概有几台机械,也可能有几十台机器,因而,实行集群众管理理就极度第②了,Portainer也支撑集群众管理理,Portainer能够和Swarm一起来展开集群众管理理操作。首先要搭建了二个Swarm,本文不重庆大学介绍swarm集群的装置。

portainer集群运维:

  • 起步集群参考官方文书档案:

$ docker service create \
–name portainer \
–publish 9000:9000 \
–replicas=1 \
–constraint ‘node.role == manager’ \
–mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock
\
–mount type=bind,src=//opt/portainer,dst=/data \
portainer/portainer \
-H unix:///var/run/docker.sock

  • 启航Portainer之后,首页依然给admin用户安装密码(那里和单机运行一样)。

澳门金沙国际 8

  • 跻身后,如下图所示会发现多了有关swarm的选项,其余配置和单机运营的portainer一样,都相当粗略:

澳门金沙国际 9

  • Portainer的基本操作就像此多,具体的操作步骤还必要我们温馨去学学驾驭。

1.③ 、docker虚拟机管理命令

澳门金沙国际 10

RUN ``echo "docker:x:${dockerGid}:jenkins" >> ``/etc/group

2.3集群运营

更多的情况下,我们会有一个docker集群,可能有几台机器,也可能有几十台机器,因此,进行集群管理就十分重要了,Portainer也支持集群管理,Portainer可以和Swarm一起来进行集群管理操作。首先要搭建了一个Swarm,本文不着重介绍swarm集群的安装。

澳门金沙国际,portainer集群运维:

  • 运转集群参考官方文书档案:

$ docker service create \
–name portainer \
–publish 9000:9000 \
–replicas=1 \
–constraint ‘node.role == manager’ \
–mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock
\
–mount type=bind,src=//opt/portainer,dst=/data \
portainer/portainer \
-H unix:///var/run/docker.sock

  • 开发银行Portainer之后,首页还是给admin用户安装密码(那里和单机运行一样)。

澳门金沙国际 11

  • 跻身后,如下图所示会发现多了关于swarm的选项,其余配置和单机运转的portainer一样,都很粗大略:

澳门金沙国际 12

  • Portainer的基本操作就这么多,具体的操作步骤还亟需我们温馨去学习驾驭。

3.参照链接

官方网站:
法定文书档案:
演示网址: 账号admin 密码 tryportainer

愈来愈多Docker相关教程见以下内容: 

Docker安装应用(CentOS
6.5_x64)
Ubuntu 16.04
服务器上铺排利用 Docker 

Ubuntu 15.04下安装Docker 

Docker 安装实例
Docker 创设基础镜像 

在 Ubuntu 15.04 上什么样设置Docker及中央用法

Ubuntu 16.04上Docker使用手记

动用Docker分分钟开发银行常用应用 

Ubuntu 16.04下Docker修改配置文件不见效化解办法 

Docker
的详细介绍
:请点那里
Docker
的下载地址
:请点那里

本文永久更新链接地址

澳门金沙国际 13

1.4、安装docker

  1. 更新软件库

    yum update -y

  2. 安装docker

    yum install docker -y

     

# 安装 docker-compose

3.参考链接

官方网站:
官方文书档案:
示范网址: 账号admin 密码 tryportainer

越多Docker相关教程见以下内容: 

Docker安装应用(CentOS 6.5_x64)

Ubuntu 16.04 服务器上配备利用 Docker 

Ubuntu 15.04下安装Docker 

Docker 安装实例
Docker 创制基础镜像 
在 Ubuntu 15.04 上怎么设置Docker及主干用法

Ubuntu 16.04上Docker使用手记

选取Docker分分钟开发银行常用应用 

Ubuntu 16.04下Docker修改配置文件不见效消除办法 

Docker 的详尽介绍:请点这里
Docker 的下载地址:请点那里

正文永久更新链接地址:

1.介绍
Docker 图形化管理提供了许多工具,有Portainer、Docker
UI、Shipyard等等,本文首要介绍Portaine…

1.5、启动docker服务

  1. 启动docker服务

    service docker start

  2. 其它有关命令

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

 

RUN curl -L https:``//github``.com``/docker/compose/releases/download/1``.16.1``/docker-compose-``` uname`
`` -s`-`
uname`` -m -o ``/usr/local/bin/docker-compose

2、node部分

能够通过koa框架随便写2个hello-world项目,然后在项目标根目录下新建三个Dockerfile文件

Dockerfile
是1个文书文件,其内含有了一条条的一声令下(Instruction),每一条指令创设一层,由此每一条指令的剧情,正是讲述该层应当怎么样构建。

笔者本身的Dockerfile文件配置音信如下,熟知docker的人方可自动安插

# Dockerfile
# 使用node做为镜像
FROM node
# 在容器中创建该目录
RUN mkdir -p /home/project
# 设置容器的工作目录为该目录
WORKDIR /home/project 
# 向外提供3000端口
EXPOSE 3000
# 容器创建完成后执行的命令
CMD npm install --registry=https://registry.npm.taobao.org && node ./start.js

 

将该品种揭露到github上,为今后的jenkins铺排做前提准备

RUN ``chmod +x ``/usr/local/bin/docker-compose

3、jenkins部分

  • 查询jenkins镜像

    docker search jenkins

 澳门金沙国际 14

 

  • 拉取最新的jenkins镜像

    docker pull jenkins:latest

     

  • 启动jenkins

    sudo docker run -d -u 0 –privileged –name jenkins_node1 -p 49003:8080 -v /root/jenkins_node1:/var/jenkins_home jenkins:latest

     

  • 指令解析:

  1. -u 0

    指的是传播root账号ID,覆盖容器中放到的账号

    2. -v /root/jenkins_node1:/var/jenkins_home

    指的是 将docker容器内的目录/var/jenkins_home辉映到宿主机
/root/jenkins_node1目录上

  1. –name jenkins_node1

    将容器命名为 jenkins_node1

  1. -p 49003:8080

    端口映射,将容器的8080端口映射到宿主机的49003端口

  1. –privileged

    赋予最高权力

  • 整条命令的情趣

    运维二个镜像为jenkins:latest的器皿,命名为jenkins_node1,使用root账号覆盖容器中的账号,赋予最高权力,将容器的
/var/jenkins_home照耀到宿主机的
/root/jenkins_node1目录下,映射容器中8080端口到宿主机49003端口

  • 查看jenkins

实践到位后,等待几十秒,等待jenkins容器运维早先化。

能够查看宿主机 /root/jenkins_node1下是还是不是多了很多文书

到浏览器中输入 localhost:49003 查看jenkins是不是运营成功

看样子如下界面表明运营成功:

澳门金沙国际 15

 

  • 赢得密码

    cat /root/jenkins_node1/secrets/initialAdminPassword

     

复制输出的密码,粘贴到页面中,点击continue会进入到上边这么些页面

澳门金沙国际 16

 

点击安装

澳门金沙国际 17

 

等候安装实现,进入到创制管理员账号界面

澳门金沙国际 18

 

输入账号密码新闻后点击保存(音信要填完),来到首页

澳门金沙国际 19

 

配备jenkins,进入系统一管理理页面,管理插件

澳门金沙国际 20

 

 

选择 ssh插件,

澳门金沙国际 21

 

平素设置,等待安装达成,回到首页,

赶来 系统一管理理 -> 系统安顿

澳门金沙国际 22

 

拖到最下Publish over SSH那

澳门金沙国际 23

 

选择高级,输入服务器IP,用户名,密码,然后点击 Test Configuration

浮现 Success 则表达配置没难题。然后保留,回到首页

新建贰个品类

澳门金沙国际 24

 

输入项目名称

澳门金沙国际 25

 

选料源码管理,使用git管理,输入github仓库地址,添加github用户

澳门金沙国际 26

 

澳门金沙国际 27

 

澳门金沙国际 28

 

做到来到采纳创设环境,

澳门金沙国际 29

 

实行的下令

sudo docker stop nodeapp || true \
 && sudo docker rm nodeapp || true \
 && cd /root/jenkins_node1/workspace/node  \
 && sudo docker build --rm --no-cache=true  -t node  - < Dockerfile \
 && sudo docker run -d --privileged=true --name nodeapp -p 3000:3000 -v /root/jenkins_node1/workspace/node:/home/project node

保存后,点击即刻营造

创设成功后,可以在宿主机的目录/root/jenkins_node1/workspace/node下看到你的门类文件了

在浏览器输入 docker服务器地址 localhost:2000 即可访问到页面音信

运行退步的,能够查阅日志来规定一下全盘皆输的缘由

docker logs nodeapp

 

保存退出。

三 、jenkins + github自动陈设

    假若想本地代码提交push到github后,jenkins自动拉取最新代码重新计划,请继续看!

    服务器要外网能访问,本地环境想测试的能够品味内网穿透
natapp 或者
ngrok

  1. 在首页点击用户

    首页 -> 用户 -> root

澳门金沙国际 30

 

  1. 点击设置 -> show API Token

澳门金沙国际 31

 

  1. 复制API Token 里面包车型地铁值

  2. 回来到首页 -> node -> 配置 -> 营造触发器 粘贴到身份验证令牌

澳门金沙国际 32

 

  1. 登陆到你的github项目页面 打开 Setting -> Webhooks -> Add
    webhooks

澳门金沙国际 33

  1. 添加 webhooks

澳门金沙国际 34

  1. 修改jenkins的安全策略

jenkins首页,选取 系统一管理理–>Configure Global
Security(系统装置上面那个) 举行如下设置

澳门金沙国际 35

到现在,已到位 git push 后,jenkins 自动营造自动计划。

创设镜像   docker  build -t  jenkins   .

四 、docker的常用命令

对docker比较感兴趣的人能够领悟一下,继续学习

镜像相关

  • 查询镜像

    docker search [name]

 

  • 拉取镜像

    docker pull [name]

 

  • 导入镜像

    docker load < /home/node.tar.gz

 

  • 导出镜像

    docker save > /home/node.tar.gz

  • 询问全部镜像

    docker images

 

  • 剔除镜像

    docker rmi [name]

 

  • 修改镜像名

    docker tag docker.io/node node

并发successful,成功创设

容器相关
  • 启动

    # 运维并跻身相互情势docker run -it –name myjava java bash
    # 在后台运行docker run -d –name myjava java

 

  • 端口映射

    docker run -it –name myjava -p 9000:8085 -p 9000:8086 java bash

 

  • 目录映射

    docker run -it –name myjava -v /home/project:/soft –privileged docker.io/node bash

 

  • 进去后台运营的器皿

    docker exec -it name bash

 

  • 自行重启

    docker run –restart=always -it –name nodeapp -p 9000:8085 -p 9000:8086 node bash

 

  • 停顿容器

    docker pause nodeapp

 

  • 终止暂停容器

    docker unpause nodeapp

 

  • 结束容器

    docker stop nodeapp

 

  • 运转容器

    docker start -i nodeapp

 

  • 查阅容器

    docker ps -a

     

docker  images   查看

docker网段相关

  • 创办网段

    docker network create net1

 

  • 翻开网段音讯

    docker network inspect net1

 

  • 除去网段音信

    docker network rm net1

     

出现

5、总结

小编自个儿最近求学node,故想尝试一下通过Docker+jenkins来促成那个自动化布置的流程,自个儿踩了一天坑,总算是布署成功了。此前是使用pm2来治本node项目,以及使用pm2来自动化陈设node项指标,有趣味的能够去看一下。使用pm2自动化布署node项目.算是给自个儿做个小结笔记。写的不佳的地点,望提出。

 

澳门金沙国际 36

mkdir  /var/jenkins  目录,

运营容器事后台守护进度

docker run –name jenkins -p 8080:8080 -p 50000:50000  -v
/var/run/docker.sock:/var/run/docker.sock  -v $(which
docker):/bin/docker  -v /var/jenkins:/var/jenkins  -d jenkins

其间,run 运维容器,–name 为
该容器名字,  -p 8080:8080为宿主机与容器的8080端口映射, -p
60000:四千0 同理,-v  宿主机目录挂载到容器的呼应端口,-d  
为护理进程运维,  jenkins 以jenkins 镜像

澳门金沙国际 37

呈现出上海体育场合表示运维成功。

接下去大家开辟浏览器,输入

192.168.1.141为宿主机的ip地址

出现登录Jenkins界面

澳门金沙国际 38

率先,进入容器内

docker exec -it jenkins /bin/bash

翻看/var/jenkins/secrets/initialAdminPassword 文件内的密码

45f821b49df745a29a383af9493e7e9a

 填写密码,接下去形成登记,注册成功就足以初阶采用jenkins了。

 

相关文章