hrm-devops-jenkins&Rancher

查看虚拟机版本
uname -a

使用yum命令在线安装
yum install docker

安装后查看Docker版本
docker version

启动与停止Docker
systemctl命令是系统服务管理器指令,它是 service 和 chkconfig 两个命令组合。
 启动docker: systemctl start docker
 停止docker: systemctl stop docker
 重启docker: systemctl restart docker
 查看docker状态: systemctl status docker
 开机启动: systemctl enable docker
 查看docker概要信息: docker info
 查看docker帮助文档: docker --help
显示系统信息 docker info

Docker镜像操作
列出docker下的所有镜像: docker images
搜索镜像 docker search 镜像名称

Docker拉取镜像
使用命令拉取:
docker pull centos:7
外网下载如果没速度,可以配置镜像下载
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
1.编辑该文件:vi /etc/docker/daemon.json // 如果该文件不存在就手动创建;说明:在centos7.x下,通过vi
2.在该文件中输入如下内容:
{
“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”]
}
3.注意:一定要重启docker服务,如果重启docker后无法加速,可以重新启动OS,然后再运行 docker pull centos:7
也可以相同的方式配阿里云镜像加速。

删除镜像
1、 docker rmi $IMAGE_ID:删除指定镜像
2、 docker rmi docker images -q:删除所有镜像

Docker容器操作
查看容器
查看正在运行容器: docker ps
查看所有的容器(启动过的历史容器):docker ps –a 高版本才支持
查看最后一次运行的容器: docker ps –l
查看停止的容器 docker ps -f status=exited
创建与启动容器
创建容器命令: docker run
后加上:
 -i:表示运行容器
 -t:表示容器启动后会进入容器命令行(交互式)。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
 --name :为创建的容器命名。
 -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
 -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
 -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
停止与启动容器
 停止正在运行的容器: docker stop $CONTAINER_NAME/ID
 启动已运行过的容器: docker start $CONTAINER_NAME/ID
文件拷贝
如果我们需要将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
目录挂载
创建容器 添加-v参数 后边为 宿主机目录:容器目录
–privileged=true 来解决挂载的目录没有权限的问题
查看容器IP地址
方式一:查看容器运行的各种数据 docker inspect mycentos2(容器名)
方式二:命令直接输出IP地址 docker inspect --format=’{{.NetworkSettings.IPAddress}}’ mycentos2(容器名)
删除容器
 删除指定的容器:docker rm $CONTAINER_ID/NAME
注意,只能删除停止的容器
 删除所有容器:docker rm docker ps -a -q

MySQL部署
拉取MySQL镜像 docker pull mysql:5.7
创建MySQL容器 docker run -di --name hrm_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码
进入mysql docker exec -it hrm_mysql /bin/bash
mysql登录 mysql -uroot -p123456
查看容器IP地址 命令查看容器运行的各种数据 docker inspect hrm_mysql

端口映射:把容器的端口映射成能够通过宿主机的端口进行访问.

Redis部署
拉取Redis镜像,centos是基础镜像 docker pull redis
创建Redis容器 docker run -di --name=hrm_redis -p 6379:6379 redis
设置密码 docker run -di --name hrm-redis -p 6379:6379 redis --requirepass 自己设置密码
在本地客户端测试redis
redis-cli -h 49.235.207.241(自己服务器ip)
auth redis密码
keys * (无报错说明正常启动)

fastdfs部署
下载镜像 docker pull registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs
运行 docker run -di --restart=always --privileged=true --net=host --name=fastdfs -e IP=49.235.207.241 -e WEB_PORT=80 -v ${HOME}/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs
说明:IP=49.235.207.241(自己服务器ip)
–restart=always 表示linux启动后,每次这个容器都会自动重启.
测试
先进入到fastdfs docker exec -it fastdfs /bin/bash
打印字符串到文件 echo “Hello FastDFS!”>index.html
上传文件到fastdfs fdfs_test /etc/fdfs/client.conf upload index.html
访问上传文件 http://49.235.207.241/group1/M00/00/00/rBEAEF5fS9-AWHXuAAAADwL5vO423.html
防火墙未关闭可能会导致不能访问
关闭centos7防火墙 systemctl status firewalld.service
systemctl stop firewalld.service
注意:做端口映射是必须开启防火墙,部署完了再开启防火墙

Nginx部署
拉取Nginx镜像 docker pull nginx
创建Nginx容器 docker run -di --name=hrm_nginx -p 8080:80 nginx
测试Nginx,浏览器地址栏输入: http://49.235.207.241:8080
配置反向代理
nginx.conf引入default.conf所以修改default.conf,如果没有引入直接修改nginx.conf
从容器拷贝配置文件到宿主机 docker cp hrm_nginx:/etc/nginx/conf.d/default.conf default.conf
编辑default.conf,添加反向代理配置 vi default.conf
upstream tomcat-cas {
server 172.17.0.7:8080;
server 172.17.0.7:8081;
server 172.17.0.7:8082;
}
server {
listen 80;
server_name localhost;
location / {
#proxy_pass http://tomcat地址; 单机配置
proxy_pass http://集群名称(tomcat-cas); 集群配置

				index index.html index.htm;
			}
		}
保存退出     :wq		
把复制文件拷贝到原路径进行覆盖      docker cp default.conf hrm_nginx:/etc/nginx/conf.d/default.conf
重新启动容器                        docker restart hrm_nginx

tomcat安装
查询tomcat docker search tomcat:8
安装tomcat8 docker pull tomcat:8
创建tomcat容器 docker run -di --name=hrm_tomcat -p 9090:8080 tomcat:8

镜像高级操作-创建镜像
基于容器构建 docker commit mycentos(容器) liankongcentos(镜像名)
使用新镜像启动新容器 docker run -di --name=mycentos3 liankongcentos:latest

Dockerfile构建jdk1.8的镜像(需要centos的镜像)
新建Dockerfile文件 vi Dockerfile
写入语法
FROM centos:7
MAINTAINER yhptest
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH J A V A H O M E / b i n / d t . j a r : JAVA_HOME/bin/dt.jar: JAVAHOME/bin/dt.jar:JAVA_HOME/lib/tools.jar: J R E H O M E / l i b : JRE_HOME/lib: JREHOME/lib:CLASSPATH
ENV PATH J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
构建JDK1.8 docker build -t=“jdk1.8” .

私有仓库搭建
下载私有仓库镜像 docker pull registry
启动私有仓库容器 docker run -di --name=liankong-registry -p 5000:5000 registry
查看日志是否启动好 docker logs liankong-registry --tail 10 -f
测试 http://49.235.207.241:5000/v2/_catalog
让Docker信任私有仓库地址修改 vi /etc/docker/daemon.json
“insecure-registries”:[“192.168.0.109:5000”]
重启docker systemctl restart docker
重启容器 docker start liankong-registry
上传镜像
标记此镜像为私有仓库镜像 docker tag jdk1.8 49.235.207.241:5000/jdk1.8
上传镜像 docker push 49.235.207.241:5000/jdk1.8
测试: http://49.235.207.241:5000/v2/_catalog
下载镜像
删除本地镜像 docker rmi 49.235.207.241:5000/jdk1.8
下载 docker pull 49.235.207.241:5000/jdk1.8
新镜像创建容器测试 docker run -di --name=jdk1.8 49.235.207.241:5000/jdk1.8

Maven插件自动部署: 
    修改宿主机的docker配置,远程访问 
        vi /lib/systemd/system/docker.service 
	其中ExecStart=后添加配置 
	    -H tcp://0.0.0.0:2375 
		-H unix://var/run/docker.sock 
	修改后如下(2)刷新配置,重启服务 
		systemctl daemon-reload 
		systemctl restart docker 
		docker start liankong-registry 
	防火墙对该端口放行(如果没有请直接关闭防火墙)
	    firewall-cmd --permanent --zone=public --add-port=2375/tcp 
	关闭防火墙 
	    systemctl stop firewalld   只有加端口映射的时候必须开启
	
	在eureka工程的pom里加入
	   
			eureka
			
				
					org.springframework.boot
					spring-boot-maven-plugin
				
				
				
					com.spotify
					docker-maven-plugin
					0.4.13
					
						49.235.207.241:5000/${project.artifactId}:${project.version}
						jdk1.8
						["java", "-jar", "/${project.build.finalName}.jar"]
						
							
								/
								${project.build.directory}
								
								${project.build.finalName}.jar
							
						
						http://49.235.207.241:2375
					
				
			
		
	以上配置会自动生成Dockerfile
	进入Eureka 所在的目录,输入以下命令,进行打包和上传镜像(cmd)
        mvn clean package docker:build -DpushImage 
	查看是否成功      http://49.235.207.241:5000/v2/_catalog
	启动容器
	    docker run -di --name=hrm-eureka -p 1010:1010 49.235.207.241:5000/hrm-eureka-1010:1.0-SNAPSHOT
	测试,IDEA启动Eureka服务访问http://49.235.207.241:1010

持续集成工具-Jenkins
需要先安装jdk
将jdk-8u171-linux-x64.rpm上传至服务器home/java路径(虚拟机)
执行安装命令 rpm -ivh jdk-8u171-linux-x64.rpm RPM方式安装JDK,
其根目录为:/home/java/jdk1.8.0_171
配置环境 vi /etc/profile
在最后面添加
export JAVA_HOME=/home/java/jdk1.8.0_171
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
安装Jenkins
下载jenkins
wget https://pkg.jenkins.io/redhat/jenkins-2.190.1-1.1.noarch.rpm
或将jenkins-2.190.1-1.1.noarch.rpm上传至服务器
安装jenkins
rpm -ivh jenkins-2.190.1-1.1.noarch.rpm
配置jenkins
vi /etc/sysconfig/jenkins
修改用户和端口
JENKINS_USER=“root”
JENKINS_PORT=“8888”
启动服务
systemctl start jenkins
cat /var/log/jenkins/jenkins.log
拷贝密码到 http://49.235.207.241:8888 并完成推荐安装
如果链接超时,修改:vi /var/lib/jenkins/hudson.model.UpdateCenter.xml 把https修改为http
如果显示java未找到 vim /etc/init.d/jenkins 在最后加上/home/java/jdk1.8.0_171/bin/java路径

jenkins插件安装
    maven插件

全局工具配置
    安装Maven与本地仓库
	    将Maven压缩包上传至服务器/home/maven/
		解压 	tar zxvf apache-maven-3.5.4-bin.tar.gz 
		编辑setting.xml配置文件 
		    vi /home/maven/apache-maven-3.5.4/conf/settings.xml   配置本地仓库目录
		     /home/maven/repository 

			vi /etc/profile
			export MAVEN_HOME=/home/maven/apache-maven-3.5.4
			export PATH=$MAVEN_HOME/bin:$PATH
			source /etc/profile

你可能感兴趣的:(hrm-devops-jenkins&Rancher)