docker(五):docker应用部署

一,mysql部署

(1)拉取mysql镜像 (也可以拉取最新的mysql,我这里拉取的是指定的5.6版本的)

docker pull mysql:5.6

(2)创建容器

docker run -d --name mysql5725 -v /usr/local/mysqlDatas/mysql:/var/lib/mysql -v /usr/local/mysqlDatas/mysql-conf:/etc/mysql/ -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.6

-p 13306:3306                                  将容器的 3306 端口映射到主机的 3306 端口

--name my-mysql                                启动后容器名为 my-mysql  

-v $PWD/conf:/etc/mysql                         将主机当前目录下的 conf/ 挂载到容器的 /etc/mysql       (conf目录为mysql的配置文件,不挂载也没问题)

-v $PWD/logs:/logs                将主机当前目录下的 logs 目录挂载到容器的 /logs           (logs目录为mysql的日志目录,不挂载也没影响)

-v $PWD/data:/var/lib/mysql            将主机当前目录下的data目录挂载到容器的 /var/lib/mysql (data目录为mysql配置的数据文件存放路径,这个还是建议挂载,是存储数据的,容器down掉,还能再次挂载数据。)

-e MYSQL_ROOT_PASSWORD=123456        初始化 root 用户的密码

(3)远程登录mysql

连接宿主机的IP ,指定端口为3306

注意(如果是阿里云云服务器注意设置安全组,如下图)

 二,jenkins部署

 

Jenkins可以实现自动化部署项目,如上图所示,jenkins可以连接代码管理平台,下载代码,进行项目打包及部署。下面我们基于docker部署jenkins,并实现项目的自动化部署。

1.安装启动jenkins

#1.拉取Jenkins镜像

[root@localhost ~]# docker pull jenkins

#2.启动jenkins容器

[root@localhost ~]#docker run  -it  -d  -p 8081:8081 -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

查看启动日志

[root@localhost ~]# docker logs 4c193b44d91e >jenkins2.log 2>&1

启动成功后可以看到这里有显示admin用户的密码

2.登录jenkins初始化配置

#1.登录Jenkins

 http://192.168.1.110:8080

1.输入默认生成的密码

#2.安装插件

选择安装插件,建议初学者安装推荐的插件

等待所有插件安装完成,可能会耗时很久,而且会出现安装失败的情况。

选择系统管理Manage Jenkins—>选择插件管理Manage Plugins-->选择高级Advanced,修改Update Sie。【详细的Jenkins的镜像地址查询:http://mirrors.jenkins-ci.org/status.html】

如果依然超时下载失败,可以自行下载.hpi文件,并上传

详细的解决方案可以参考https://www.cnblogs.com/sxdcgaq8080/p/10489326.html

#3.创建用户

#4.配置jenkinsURL

接着我们就进入了jenkins主页

3.配置jenkins运行环境

#1.配置jdk

进入主页,选择ManageJenkinss,选择Global Tool Configuration

选择JDK,填写jdk的名称及安装目录,取消勾选自动安装

Jenkins默认已经安装了jdk,进入Jenkins容器,可以查看Jdk版本,及安装目录

docker exec -it 8ed4f97783c8 /bin/bash

echo $JAVA_HOME

#2.安装maven

选择maven安装配置项,填写相关信息

安装完成后,到jenkins容器中修改maven的settings.xml配置文件,配置阿里云镜像地址

#3.安装maven插件

选择manage jenkins-->选择Manage plugins,点击Available,搜索maven integration,选择安装后重启jenkins。

4.使用jenkins自动部署项目

在配置自动部署前,我们需要先将项目部署到Git平台,如码云gitee、gitlab、github等。

#1.新建任务

选择新建任务New Item,输入项目名,选择maven项目

配置Git项目的地址

项目构建

配置项目自动运行脚本

#!/bin/bash
#服务名称
SERVER_NAME=meite_mayi
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行  
JAR_NAME=meite_mayi-1.0-SNAPSHOT
# 源jar路径  
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/meite_mayi/target/
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/meite_mayi/target/

echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" |grep jar| awk '{print $1}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
	kill -9 $id  
	echo "killed $id"  
done
echo "结束进程完成"

#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar

BUILD_ID=dontKillMe nohup java -jar  $JAR_NAME.jar  &

#2.为项目的端口配置映射

由于jenkins容器运行时只配置了自身的端口,如果项目部署在jenkins容器里面,容器外部也无法访问项目的端口。因此我们需要为项目的端口配置映射

第一种方法是停掉jenkins容器并删除后,重新启动jenkins容器,添加项目的端口

docker stop 1358f3f7ce75
docker rm 1358f3f7ce75
docker run  -it  -d  -p 8081:8081 -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home  jenkinsci/blueocean

第二种方法是修改hostconfig.json和config.v2.json文件,添加项目的端口,然后重启docker

docker inspect 容器id,可以查看容器的完整id

然后进入到 /var/lib/docker/containers/[容器ID]/目录,可以看到hostconfig.json文件和config.v2.json文件

修改hostconfig.json文件,找到portbindings,增加项目的8081端口

修改config.v2.json文件,增加项目端口8081,这个文件有两处需要修改,

修改完成后重启docker

#3.立即构建项目

配置完成后,点击立即构建Build Now

选择本次构建,点击控制台输出Console Output,即可看到项目构建情况

项目启动完成后即可在外部进行访问了

 

posted @ 2020-06-28 11:04  pattylv  阅读(205)  评论(0编辑  收藏  举报