docker 要求配置_手把手教你利用Docker+jenkins部署你的网站

56631d465207df9cb43bd428077c5c4c.png
  1. 更新服务器的安装源为阿里的源,参考链接:https://blog.csdn.net/js_xh/article/details/79166655
  2. 安装docker;

1 更新资源

sudo apt-get update

1.1 安装的时候无法安装,执行删除锁

sudo rm /var/lib/dpkg/lock

2 安装Docker

sudo apt-get install docker

3 安装http://docker.io。

sudo apt-get install http://docker.io

4 安装docker-registry。

sudo apt-get install docker-registry

5 开始启动我们的docker

sudo systemctl start docker

6 验证安装

sudo docker run hello-world

  1. 更换docker源

参考链接:https://blog.csdn.net/jixuju/article/details/80158493

阿里云加速地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

a307f375c91d5fe678eab35376386091.png
  1. docker安装mysql5.7
  • docker pull mysql:5.7
  • mkdir /root/mysql
  • docker run --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql -v /root/mysql/logs:/var/log/mysql -d -e MYSQL_ROOT_PASSWORD=root -e LANG=C.UTF-8 -p 3306:3306 mysql:5.7
  • 注:需要外网访问则需要在云服务哪里设置安全组规则开放3306端口
  1. docker安装redis
  • docker pull redis
  • docker run -p 6379:6379 -d redis:latest redis-server
  • docker exec -ti d254983afd0b redis-cli 可以用这个来验证是否安装成功了
  • 注:需要外网访问则需要在云服务哪里设置安全组规则开放6379端口
  1. 服务器安装jdk以及maven
  • 准备好jdk的包和maven包
  • 上传到服务器的指定目录如/root/envi
  • tar -zxvf 包名 即可并用mv命令重命名为maven和java
  • 配置环境变量

vi /etc/profile

df281ba01bc87d95d9c2e2a2901650e8.png

增加java和maven的环境变量

b95f76b3a32b5035ff34afe72b2f368d.png

source /etc/profile

使环境变量生效

利用mvn -version和java -version测试

fa04f64ae1c8ebdca31f68c12cf8c66e.png

至此这两个环境变量配置完成

  1. 构建基于自己安装的java环境的jdk镜像(这一步可有可无)
  • 在空的目录下编写Dockerfile如/root/images
  • 将jdk的未解压的包拷贝到这个目录下
  • Dockerfile内容

#基础镜像

FROM ubuntu:18.04

#创建者信息

MAINTAINER chengrongkai

RUN mkdir /usr/local/java

# copy the jdk archive to the image,and it will automaticlly unzip the tar file

ADD jdk-8u161-linux-x64.tar.gz /usr/local/java/

# make a symbol link

RUN ln -s /usr/local/java/jdk1.8.0_161 /usr/local/java/jdk

# set environment variables

ENV JAVA_HOME /usr/local/java/jdk

ENV JRE_HOME ${JAVA_HOME}/jre

ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib

ENV PATH ${JAVA_HOME}/bin:$PATH

  • 运行命令构建镜像

docker build -t myjava:8 .

5ba5af548fb3b132d89b410baa5c22be.png

docker images查看创建的镜像

docker run -it myjava:8 /bin/bash

java -version

运行结果如下图所示即为正常

60170313e53077f432037bc133046e49.png
  1. docker安装jenkins中文版
  • docker pull jenkinszh/jenkins-zh

这里选择的是中文的镜像

  • 创建存储目录并授权(很重要)

mkdir /home/jenkins_home

chown -R 1000 /home/jenkins_home

chmod 777 /var/run/docker.sock

参考链接:https://www.jianshu.com/p/db58d1cfd01b

  • 添加权限配置

sudo vi /etc/systemd/system/docker.service

添加内容

[Service] ExecStart= ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

重启docker

sudo systemctl daemon-reload

sudo systemctl restart docker

  • 启动jenkins,这里用的是9090端口映射

docker run -d -p 9090:8080 -p 50000:50000 --name myjenkins -v /home/jenkins_home/:/var/jenkins_home -v /usr/bin/git:/usr/bin/git -v /root/envi/java:/usr/local/java -v /root/envi/maven:/usr/local/maven -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /etc/localtime:/etc/localtime:ro -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai -G jenkins jenkinszh/jenkins-zh:latest

  • 查看密码-两种方式

1、docker logs -t -f --tail 100 容器ID

容器ID可以用docker ps查看

2、cat /home/jenkins_home/secrets/initialAdminPassword 查看

6e6e752009f6a3a1a62e9eee61630a1c.png
  • 访问ip+9090即可访问jenkins,如果9090端口无法访问,请检查你的云服务器是否开放了9090的入规则
  • 之后就傻瓜式配置即可

7b0419d8587c1409910d5858d6b17fce.png

检查下必要的插件

25c126013f0bb8219c79bb7243836d53.png

看下这些插件是否都有,我这边计划用gitee做同步,所以还需要一个gitee的插件

9e4b6aa0667e504386663ab5456d5008.png

安装最后一个插件时勾选下安装后重启即可,等待重启好了再继续下一步操作

a94b3a59487b3435b5e6bafdfa94ee00.png

找到系统管理的全局工具管理

12b87e4365ed7c22261e509582ccce46.png

填写相应的jdk位置和maven位置、git位置(注意,这个地方填写的是容器里的位置,不是系统对应的位置,就是docker run 命令中-v映射的目录)

3521dda056bb0ea645ff49f2bfec3a82.png

新建一个maven任务

9584c7bfbf1e4d6c5e7f9ff2210124f6.png

源码管理选择git,填写gitee的仓库路径

2d3077403d202c6dac0010bd6a4d0f63.png

添加认证

7f9a232d11bdeb85835e782fb59c9744.png

添加构建前的准备步骤,如清理旧的容器和镜像

73926417f268e88a84adf7bb401cb6a1.png

shell命令参照如下、

#!/bin/bash

echo "stop old docker container"

docker stop cms

echo "delete old docker container"

docker rm cms

echo "delete old docker images:"

docker rmi cms:latest

echo "clean success"

ff2e14459fec9512d237e5f946623d81.png

设置maven打包命令

2855c1de28ff4d532a71702be8826282.png

clean package -Dmaven.test.skip=true

添加构建完成的shell命令

b9d39f6a117219c1371e40f0b7e99474.png

shell命令参考

#!/bin/bash

echo "build docker image"

mvn dockerfile:build

echo "current docker images:"

docker images | grep cms

echo "start container----->"

docker run -d -p 8080:8080 --name cms cms

echo "start success!"

至此,基本的工程配置编写完成,保存后点击立即构建

查看相应的输出结果

50a1f40a668aba0d0f8fbca6320ea93a.png

看到这样的输出,基本就是成功了

62eed8bf81d5ddee6ede8474fd70b89f.png

利用docker images和docker ps查看启动的服务

看到启动了相应的服务就说明成功了

如果服务访问不了可以用docker logs -f -t --tail 100 容器ID查看日志

4242357946c434b156dee2cae472c810.png

别慌,到这还没完,我们还可以添加gitee的webhooks自动触发构建

先在系统设置中配置gitee令牌

6335520c54a6e878ae514b733e564ecc.png

添加令牌

679d0dafadecb9df67ef13c0504fabbb.png

在gitee生成令牌

2ec5f7b56bcd45fa3ed358d9389eb416.png

配置数据

ee4d7cf54ead3b1e60e2941c261302e3.png

在项目里配置gitee

f07a6b6ca49f31a3cd395c16406fb998.png

点击生成按钮

b35212f7c4e2770d54999fb59d8b577a.png

复制密码

回到gitee你的项目里,找到webhooks

8fd044869eb8c2fbc72ac1729645572f.png

点击添加,密码填写刚刚复制的密码

ef3a37177aa3f02c7b58caa384d699ab.png

url填写,jenkins上面也有给出

710fd1a04bab09da95fdffa84e47c9db.png

这样配置好就行了

下次执行push操作时就会自动触发构建了

本文首发于

手把手教你利用Docker+jenkins部署你的网站​www.bizhibihui.com
e0f308f25e97e8163e8b059203093690.png

7940313f47998dc079e3e020fba1ad0c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值