部署hrm系统-基础环境
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容器,登陆MySQL
进入mysql容器
docker exec -it hrm_mysql /bin/bash
登陆mysql
mysql -u root -p密码
然后就可以通过ip地址在外面访问到里面的数据库 记得关闭防火墙
Nginx部署
拉取Nginx镜像
docker pull nginx
创建Nginx容器
docker run -di --name=hrm_nginx -p 8080:80 nginx
测试Nginx
linux的ip地址:8080
配置反向代理
官方的nginx镜像,nginx配置文件nginx.conf 在/etc/nginx/目录下。
在容器内编辑配置文件不方便,我们可以先将配置文件从容器内拷贝到宿主机,编辑修改后再拷贝回去。
(1)从容器拷贝配置文件到宿主机
docker cp hrm_nginx:/etc/nginx/nginx.conf ./nginx.conf
(2)编辑nginx.conf,添加反向代理配置 因为nginx.conf中是引入了default
.conf 所以我们去default.conf中去修改
(3)将修改后的配置文件拷贝到容器
docker cp nginx.conf hrm_nginx:/etc/nginx/nginx.conf
(4)重新启动容器
docker restart hrm_nginx
Redis部署
拉取Redis镜像
docker pull redis
创建Redis容器
设置密码
docker run -di --name hrm-redis -p 6379:6379 redis --requirepass "root"
fastdfs部署
下载镜像
docker pull registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs
运行
docker run -di --restart=always --privileged=true --net=host --name=fastdfs -e IP=192.168.0.13 -e WEB_PORT=80 -v ${HOME}/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs
–restart=always linux启动后,每次这个容器都会自动重启
测试
docker exec -it fastdfs /bin/bash
echo "Hello FastDFS!">index.html
fdfs_test /etc/fdfs/client.conf upload index.html
systemctl stop firewalld.service
注意:做端口映射是必须开启防火墙,都部署完了再开启防火墙就ok
tomcat部署
拉取tomcat镜像
centos是基础镜像
docker pull tomcat:8
创建tomcat容器
docker run -di --name=hrm_tomcat -p 9090:8080 tomcat:8
测试
直接访问9090
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 $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/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
测试 {ip地址}: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 {ip地址}:5000/jdk1.8
上传镜像 docker push {ip地址}:5000/jdk1.8
测试: {ip地址}:5000/v2/_catalog
下载镜像
删除本地镜像 docker rmi {ip地址}:5000/jdk1.8
下载 docker pull {ip地址}:5000/jdk1.8
新镜像创建容器测试 docker run -di --name=jdk1.8 {ip地址}: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里加入
<build>
<finalName>eureka</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--docker的maven插件,官网: https://github.com/spotify/docker‐maven‐plugin-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>{ip地址}:5000/${project.artifactId}:${project.version}</imageName>
<baseImage>jdk1.8</baseImage>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}
</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<dockerHost>{ip地址}:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
以上配置会自动生成Dockerfile
进入Eureka 所在的目录,输入以下命令,进行打包和上传镜像(cmd)
mvn clean package docker:build -DpushImage
查看是否成功 {ip地址}:5000/v2/_catalog
启动容器
docker run -di --name=hrm-eureka -p 1010:1010 {ip地址}:5000/hrm-eureka-1010:1.0-SNAPSHOT
测试,IDEA启动Eureka服务访问 {ip地址}: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=$JAVA_HOME/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
拷贝密码到 {ip地址}: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
配置本地仓库目录
<localRepository>/home/maven/repository</localRepository>
vi /etc/profile
export MAVEN_HOME=/home/maven/apache-maven-3.5.4
export PATH=$MAVEN_HOME/bin:$PATH
source /etc/profile