在虚拟机(vitualBox)下执行yum命令:
[root@centos-vagrant ~]# yum install docker
安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:
[root@centos-vagrant ~]# service docker start
查看镜像:
[root@centos-vagrant ~]# docker images
安装问题:
在执行yum install docker 命令是安装不成功的问题:
清除一下缓存:
[root@centos-vagrant ~]# yum clean all
[root@centos-vagrant ~]# yum makecache
再执行安装命令:
[root@centos-vagrant ~]# yum install docker
pom.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>org.zz.springbootgroupId>
<artifactId>springbootdemoartifactId>
<version>latestversion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>1.5.2.RELEASEversion>
parent>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
dependencies>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<docker.image.prefix>demodocker.image.prefix>
<spring.boot.version>1.3.3.RELEASEspring.boot.version>
properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
<plugin>
<groupId>com.spotifygroupId>
<artifactId>docker-maven-pluginartifactId>
<version>0.4.3version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}imageName>
<dockerDirectory>src/main/dockerdockerDirectory>
<resources>
<resource>
<targetPath>/targetPath>
<directory>${project.build.directory}directory>
<include>${project.build.finalName}.jarinclude>
resource>
resources>
configuration>
plugin>
plugins>
build>
project>
详见附录:pom.xml文件
创建dockerfile文件:
项目中创建“src/main/docker/Dockerfile”文件,如下:
配置dockerflie(用于生成镜像):
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD demo-1.0.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
解释下这个配置文件:
· VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
· 项目的 jar 文件作为 “app.jar” 添加到容器的
· ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/urandom” 作为 Entropy Source
见附录Dockerfile文件
编写 Spring Boot 应用:
package com.test.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 主应用入口
* @author waylau.com
* @date 2016年3月19日
*/
@SpringBootApplication
@RestController
public class Application {
@RequestMapping("/")
public String home() {
return "Hello Docker World."
+ "
Welcome to waylau.com";
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
代码类见附件Application.java
启动虚机:
然后登录虚机:
[root@centos-vagrant ~]# ssh -p 2222 root@127.0.0.1
修改seetting文件:
[root@centos-vagrant ~]# cd /opt/apache-maven-3.5.0/conf/
修改地址:
重启虚机
输入命令:
[root@centos-vagrant ~]# df
进入到:
cd /media/sf_wlw_citic/workspace_task_scheduler_lose目录(也就是项目的目录):
执行命令:
[root@centos-vagrant ~]# mvn package docker:build
需要注意:
在执行mvn package docker:build,先输入命令docker images如果提示如下图,请先启动docker,启动命令:systemctl start docker,再执行mvn package docker:build命令,不然构建镜像会失败。
执行后构建成为 docker镜像
输入命令:
[root@centos-vagrant ~]# docker images
可以看到demo/demo就是生成的镜像
运行 Docker Image(启动项目):
输入命令
[root@centos-vagrant ~]# docker run -p 8080:8080 -t demo/demo
这里指定端口为8080
运行成功:
浏览器访问:
输入http://localhost:8080/
发现访问不了,原因没有做端口映射,如下:
在虚机(vitualBox)里配置:
这个时候再输入http://localhost:8080/就可以访问了
先查看进程,杀掉已启动的进程:
[root@centos-vagrant ~]# docker ps
然后输入命令:
[root@centos-vagrant ~]# docker kill -s KILL bfbf6bcd0eb6
删除镜像:
先查询记录:
[root@centos-vagrant ~]# docker ps –a
可以看到有4个线程在启动,我们杀掉他们:
[root@centos-vagrant ~]# docker rm b427a2d85040 f91a2e1d0f86 0297d2ecbff3 bc5ca853a648
再查看:
线程都清掉了:
此刻执行:
[root@centos-vagrant ~]# docker images
执行:
[root@iz2ze215l4uqqv8jiei1aaz ~]# docker system prune -a –f
再执行,多余的都清除了
[root@iz2ze215l4uqqv8jiei1aaz ~]# docker images
打包镜像:
[root@centos-vagrant ~]# docker save -o /home/ hub.dashboardengine.tar hub.dashboardengine/hub.dashboardengine:latest
本地 打包成tar文件,通过ftp传输到134 服务器上
输入下列命令恢复镜像,自动加载到docker容器:
[root@centos-vagrant ~]# docker load -i /home/ hub.dashboardengine.tar
查看镜像:
[root@centos-vagrant ~]# docker images
启动项目:
[root@centos-vagrant ~]# docker run -d -p 9090:9090 -t hub.dashboardengine/hub.dashboardengine
注意:-d表示后台启动
输入地址访问:
http://10.247.32.134:9090/iot/getMsgCount
把一个镜像push到私有仓库中
查看一下镜像
[root@centos-vagrant ~]# docker images
以demo/demo这个镜像为例。
接下来修改一下该镜像的tag,输入下面命令:
[root@centos-vagrant ~]# docker tag demo/demo registry.user.pcloud.citic.com/zxyw/cloud/demo/demo:tag
发现tag被修改了,接下来执行推送命令:
[root@centos-vagrant ~]# docker push registry.user.pcloud.citic.com/zxyw/cloud/demo/demo:tag
Get https://registry.user.pcloud.citic.com/v1/_ping: dial tcp 10.247.20.205:443: i/o timeout
这时会发现推送超时了,此时需要修改docker的配置文件,解决办法如下:
[root@centos-vagrant ~]# touch /etc/docker/daemon.json
[root@centos-vagrant ~]# vi /etc/docker/daemon.json
加入本地registry的地址, 如:
{ "insecure-registries":["registry.user.pcloud.citic.com"] }
需要注意:
registry.user.pcloud.citic.com为私服地址,这里我直接加在”live-restore”:true的后面,然后加了一个逗号隔开。
添加主机host:
vi /etc/resolv.conf
nameserver 10.247.64.29
nameserver 10.247.64.28
vi /etc/hosts
10.247.20.205 registry.user.pcloud.citic.com
然后重启docker服务:
[root@centos-vagrant ~]# systemctl restart docker.service
执行推送命令:
[root@centos-vagrant ~]# docker push registry.user.pcloud.citic.com/zxyw/cloud/demo/demo:tag
3f5ead2a3e3b: Pushed
decb4e431a22: Pushed
aea4c1b2c226: Pushed
dcf909146faa: Pushed
23b9c7b43573: Pushed
tag: digest: sha256:a62b8f4cf6f446b81c5cb398499ef11e34bfe491a417e2959e2d05086768005e size: 1375
推送成功,
下载私服镜像:
[root@centos-vagrant ~]# docker pull registry.user.pcloud.citic.com/zxyw/cloud/demo/demo:tag
下载成功,查看一下镜像
[root@centos-vagrant ~]# docker images
启动:
[root@centos-vagrant ~]# docker run -p 8081:8081 -t registry.user.pcloud.citic.com/zxyw/cloud/demo/demo:tag
输入下面命令安装插件:
[root@centos-vagrant ~]# curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
安装完成后,执行运行权限:
[root@centos-vagrant ~]# sudo chmod +x /usr/local/bin/docker-compose
查看版本:
[root@centos-vagrant ~]# docker-compose --version
可以看到为当前为1.12.0版本,则安装成功。
把test.yml文件放入/home/vagrant/composetest目录下:
复制下面内容到test.yml文件里:
srvmgt-app:
image: demo/demo
hostname: service
volumes:
- /tmp
ports:
- 9090:9090
environment:
jdbc.driverClassName: com.mysql.jdbc.Driver
jdbc.username: mysql
jdbc.password: mysql123
jdbc.url: jdbc:jdbc:mysql://10.247.33.42:3306/iot
restart: always
[root@centos-vagrant ~]# docker-compose up
需要注意:
启动docker-compose,需要在yml文件存在的当前目录下执行,例如:我yml文件在/home/vagrant/composetest这个目录
ps查看:
[root@centos-vagrant ~]# docker ps:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f66814e2b624 demo/demo "sh -c 'java $JAVA_OP" 15 minutes ago Up 15 minutes 0.0.0.0:9090->9090/tcp composetest_srvmgt-app_1
浏览器访问:
http://localhost:9090/test/
本文直接使用war包安装
下载地址:https://jenkins-ci.org/content/thank-you-downloading-windows-installer
war包有两种安装方法
方法一
下载jenkins.war, 拷贝到D:JavaTooljenkins()下,然后运行java -jar jenkins.war. (注意需要先安装JDK,然后设置JAVA_HOME环境变量且将%JAVA_HOME%bin加入到PATH环境变量中)
运行如下:
访问http://localhost:8080 , jenkins的主界面如下:
方法二
把Jenkins 1.409.1版解压,把得到的war包直接扔到tomcat下,启动tomcat,Jenkins就安装完毕,访问http://localhost:8080/jenkins
这里采用方法二方式,直接放tomcat里启动。
构建maven项目前,把相关的插件安装上,如:
增加需要用到的插件:Deploy to container Plugin、GIT plugin、Maven Integration plugin、Publish Over SSH、SSH Slaves plugin、Subversion Plug-in,请用以下示范方法添加安装需要的插件
调整相关系统设置项,请自行找出列出的设置项并填写相关内容
jdk配置:
配置好点击save保存。
配置远程服务器,上传镜像
配置git路径,从git的master下直接检出:
执行本地脚本:
deploy.sh文件在项目的根目录下,deploy.sh文件见附件2,如下图:
配置远程上传脚本命令:
hub.admin.engine.yml文件与Dockerfile文件见附件2,目录都在项目的根目录:
保存后:
点击项目:
点击立即构建,持续集成就开始了
这里构建成功:
注意
构建的项目地址在:
[root@centos-vagrant ~]# cd ~/.jenkins/workspace/
或者输入:
[root@centos-vagrant ~]# cd /root/.jenkins/workspace
可以看到构建的所有项目,如下:
登录服务docker imags查看镜像命令可以看到刚刚上传的镜像:
docker ps命令可以看到项目也启动了:
浏览器访问:
http://10.247.32.134:8093/iot/channelManager/getChannelPageList
错误如下:
error pulling image configuration: Get http://registry.oss-cn-beijing-zx-d01-a.pcloud.citic.com/docker/registry/v2/blobs/sha256/46/46df8683ac8fea45852a4b218a1c611b08fb1195bafa790fe9e2eec8b2867662/data?Expires=1499156631&OSSAccessKeyId=vIvJI9Xwy0M87Qb8&Signature=qaQOMawAE1a7jbQ2P9N2ahIyDVw%3D: dial tcp: lookup registry.oss-cn-beijing-zx-d01-a.pcloud.citic.com on 100.100.2.136:53: no such host
找不到主机映射问题:no such host
解决办法:
vi /etc/resolv.conf
添加相关的ip地址
步骤1:
步骤2:Jenkins Location下:
步骤3:Extended E-mail Notification下:
步骤4:
步骤5:jenkins点击部署的项目,如下:
点击配置:
选择:下拉选择:
在Project Recipient List里加入邮箱即可,多个用逗号隔开,如1@126.com,2@126.com
步骤6:最后点开:
选择:
保存就可以了。
先安装vagrant:
进入到varant 的目录:
C:Usersuisftechvagrant
启动:
vagrant up
登录:
ssh -p 2222 root@127.0.0.1
默认密码:vagrant
修改C:UsersuisftechvagrantVagrantfile 文件:
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
vb.name= "centos.base"
登录成功后:
启动tomcat并且启动jenkins:
注意:将jenkins.war包放到tomcat的webapps下:
启动完需在virtualBox配置端口映射:
这里做了端口映射才能正常访问,登录jenkins:
http://127.0.0.1:8080/jenkins
如此登录成功
配置好git路径:
执行脚本:
注意:
dashboardengine.sh脚本放在项目的根目录,dashboardengine.yml也是在同目录下,如下图:
脚本详细见附录3
集成之前需先在阿里云服务里建立appname,如:
appname="hub-dashboardengine-app"
需要先将hub-dashboardengine-app添加阿里云服务后端,再做集成。
1. 键入 crontab -e 编辑crontab服务文件,如下:
30 23 * * * /bin/sh /home/user/scheduler/cleardockerimg.sh //每晚的11:30
注意:没有安装crontab 键入yum install crontabs安装。
2. 查看该用户下的crontab服务是否创建成功, 用 crontab -l 命令
3. 启动crontab服务
一般启动服务用 /sbin/service crond start 若是根用户的cron服务可以用 sudo service crond start, 这里还是要注意 下 不同版本Linux系统启动的服务的命令也不同 ,像我的虚拟机里只需用 sudo service cron restart 即可,若是在根用下直接键入service cron start就能启动服务
这里本地启动是: /bin/systemctl start crond.service
这里本地停止是: /bin/systemctl stop crond.service
4. 查看服务是否已经运行用 ps -ax | grep cron
5. 删除任务调度工作
crontab -r //删除所有任务调度工作
6. 删除docker镜像shell脚本:
#!/bin/sh
docker rmi $(docker images | grep dev-)
页面更新:2024-03-11
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号