部署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