linux搭建java部署环境-docker

目录

一. Docker环境

二. JAVA环境安装

三. MySQL安装

四. Redis安装

五. Nginx安装

六.检查安装结果

七. 创建maven仓库

八. 项目打jar并发布

九. nginx反向代理

一. Docker环境

1. 查看linux内核版本: uname -a

2. 查看centos版本:  cat /etc/redhat-release

3. 安装yum-utils:

4. 为yum源添加docker仓库位置:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

执行命令后:

linux搭建java部署环境-docker_第1张图片

linux搭建java部署环境-docker_第2张图片 5. 安装docker

yum install docker-ce

执行命令之后:
linux搭建java部署环境-docker_第3张图片

linux搭建java部署环境-docker_第4张图片

6. 启动docker

systemctl start docker

linux搭建java部署环境-docker_第5张图片

linux搭建java部署环境-docker_第6张图片

二. JAVA环境安装

1. 安装jdk8

docker pull java:8

执行命令后:
linux搭建java部署环境-docker_第7张图片

三. MySQL安装

1. 下载MySQL5.7的docker镜像

docker pull mysql:5.7

 执行命令后:
linux搭建java部署环境-docker_第8张图片

 2. 启动MySQL服务

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

3. 进入运行MySQL的docker容器

docker exec -it mysql /bin/bash

linux搭建java部署环境-docker_第9张图片

 查询docker已经有的镜像: docker ps -a

启动已有的镜像:docker run -itd -P mysql:5.7 bash 

4. 使用MySQL命令打开客户端

mysql -uroot -proot --default-character-set=utf8mb4

linux搭建java部署环境-docker_第10张图片

 5. 创建测试数据库:

create database wei_test character set utf8mb4 COLLATE = utf8mb4_unicode_ci;

 执行命令后:

 使用数据库, 创表, 查询, 插入数据, 查询:

linux搭建java部署环境-docker_第11张图片linux搭建java部署环境-docker_第12张图片

 四. Redis安装

1. 下载Redis6.0的docker镜像

docker pull redis:6

 执行命令后:
linux搭建java部署环境-docker_第13张图片

 2. 启动Redis服务

docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-d redis:6 redis-server --appendonly yes

执行命令后:

 3. 查询正在运行的镜像:

# 查询docker正在运行的镜像
docker ps

# 查询所有镜像:
docker ps -a

执行命令后:

五. Nginx安装

1. 下载Nginx1.14.1的docker镜像

docker pull nginx:1.14.1

 执行命令后:

linux搭建java部署环境-docker_第14张图片

 2. 运行nginx容器

docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-d nginx:1.14.1

执行命令后:
linux搭建java部署环境-docker_第15张图片

 3. 将容器内的配置文件拷贝到指定目录

docker container cp nginx:/etc/nginx /mydata/nginx/

4. 修改文件名称

cd /mydata/nginx/
mv nginx conf

5. 终止并删除容器

docker stop nginx
docker rm nginx

执行命令后:
linux搭建java部署环境-docker_第16张图片

6. 启动Nginx服务

docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.14.1

 执行命令后:
linux搭建java部署环境-docker_第17张图片

 六.检查安装结果

查询运行中的docker的镜像:

 所有镜像文件(我这里多了个mysql待删除):
linux搭建java部署环境-docker_第18张图片

 七. 创建maven仓库

1. 拉取nexus镜像

docker pull sonatype/nexus3

linux搭建java部署环境-docker_第19张图片

 2. 创建挂载目录

mkdir /usr/local/work/maven

 3. 赋予权限

chmod 777 /usr/local/work/maven

4. 运行nexus容器

docker run -d -p 8081:8081 --name nexus -v /usr/local/work/maven:/var/nexus-data -e INSTALL4J_ADD_VM_PARAMS="-Xms256M -Xmx2048M -XX:MaxDirectMemorySize=2048M" sonatype/nexus3

5. 查询nexus日志

docker logs -f nexus

6. 访问nexus首页

ip:8081

linux搭建java部署环境-docker_第20张图片

 7. 登录

用户名admin, 密码在docker容器中,我们得到容器中找 (nexus-data文件夹下一个叫xxx.admin-password的文件), 

# 找到nexus正在运行的容器ID
docker ps

# 进入容器
docker exec -it 65f4dbed29ce /bin/bash

linux搭建java部署环境-docker_第21张图片

获取到了密码, 登录后修改密码, 为了安全, 最好禁用匿名访问;(设置仓库allow depoly)

8. 新建repository

linux搭建java部署环境-docker_第22张图片

 设置阿里云maven仓库地址:

http://maven.aliyun.com/nexus/content/groups/public/

linux搭建java部署环境-docker_第23张图片

将新增的proxy仓库加入public中, 如果自己新增release和snapshot仓库, 注意verison policy,如果创建的snapshot的version policy选择的默认的release,那么depoly你的snapshot时就会失败;

linux搭建java部署环境-docker_第24张图片

 linux搭建java部署环境-docker_第25张图片

 设置自己的setting.xml ---- (这个配置是个坑, 很多百度到的配置无法起作用, 注意: 如果nexus安装完成后,可以登录进去,但是idea无法使用这个maven仓库, 就是setting文件配置有问题了)


 

  
  D:\repository_wei
  
   
  
 
   
  
 
	 
		
			nexus-releases
			admin
			**********
		
		
			nexus-snapshots
			admin
			**********
		
	
  
       
	 
		
			central
			central
			*
			http://**********:8081/repository/java-public/
		
	
   
    
    
      my-nexus
       
      
        nexus-releases::default::http://**********:8081/repository/java-release/
        nexus-releases::default::http://**********:8081/repository/java-release/
        nexus-snapshots::default::http://**********:8081/repository/java-snapshot/
       

      
        
          central
          http://central
          
            true
          
          
            true
          
        

        
          thirdparty
          http://thirdparty
          
            true
          
          
            true
          
        

        
          thirdparty-snapshots
          http://thirdparty-snapshots
          
            true
          
          
            true
          
        

        
          spring
          http://spring
          
            true
          
          
            true
          
        

        
          jboss
          http://jboss
          
            true
          
          
            true
          
        
      

      
        
          central
          http://central
          
            true
          
          
            true
          
        

        
          thirdparty
          http://thirdparty
          
            true
          
          
            true
          
        

        
          thirdparty-snapshots
          http://thirdparty-snapshots
          
            true
          
          
            true
          
        

        
          spring
          http://spring
          
            true
          
          
            true
          
        

        
          jboss
          http://jboss
          
            true
          
          
            true
          
        
      
    
  
 
  
    my-nexus
  
 

下载测试:
linux搭建java部署环境-docker_第26张图片

 最终本地设置的repository下载了新的jar;

发布测试:
linux搭建java部署环境-docker_第27张图片

 release版本发布::
linux搭建java部署环境-docker_第28张图片

 snapshot版本发布:linux搭建java部署环境-docker_第29张图片

八. 项目打jar并发布

1. 使用springboot打包插件, 最新pom依赖:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.4.RELEASE
         
    
    com.wei
    zpiece
    0.0.1-SNAPSHOT
    zpiece
    zpiece burning

    
        1.8
        8
        8
        
        UTF-8
        UTF-8
        
        UTF-8
        
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            junit
            junit
            4.12
        

        
            mysql
            mysql-connector-java
            runtime
        
        
            com.alibaba
            druid
            1.1.10
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.0.1
        

        
            org.springframework.boot
            spring-boot-starter-tomcat
            provided
        

        
        
            com.alibaba
            fastjson
            1.2.15
        

        
        
            org.apache.commons
            commons-lang3
            3.5
        

        
        
            org.projectlombok
            lombok
            true
        

        
        
            org.xmlunit
            xmlunit-core
        

        
        
            org.springframework
            spring-aop
        
        
            org.aspectj
            aspectjweaver
            1.8.13
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                        
                            repackage
                        
                    
                
            
        
    

    
        
            alimaven
            https://maven.aliyun.com/repository/public
        
    
    
        
            alimaven
            https://maven.aliyun.com/repository/public
        
    


2. 使用idea工具打包完成:
linux搭建java部署环境-docker_第30张图片

 3. 上传到服务器中:
linux搭建java部署环境-docker_第31张图片

4. 在data下新建Dockerfile文件:

# 设置本镜像需要使用的基础镜像
FROM  java:8  

# 把jar包复制一份并改名
ADD zpiece-0.0.1-SNAPSHOT.jar /app.jar

# 镜像暴露的端口, 要注意映射端口, 最好和外界启动容器端口一致
EXPOSE 6789

# 容器启动命令
ENTRYPOINT ["java","-jar","/app.jar"]

# 设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

完成后的Dockerfile和jar处于同一个目目录下:

5. 构建docker镜像:

docker build -t zpiece .

执行命令效果:
linux搭建java部署环境-docker_第32张图片

6. 查看docker镜像:

docker images

效果:
linux搭建java部署环境-docker_第33张图片

7. 启动

docker run -p 6789:6789 --name zpiece \
-v /mydata/zpiece/html:/usr/share/zpiece/html \
-v /mydata/zpiece/logs:/var/log/zpiece  \
-d zpiece

 执行命令后:
linux搭建java部署环境-docker_第34张图片

 另外, 也可以设置--restart=always 表示docker容器在停止或服务器开机后会自动重新启动

docker run -d --restart=always --name zpiece -p 8080:8080 zpiece

8. 查看运行中的镜像:

# 查询所有镜像,包括未运行的, docker ps就是仅查询运行中的镜像
docker ps -a

 效果:

 9. 注意端口配置, docker容器启动的此端口和此服务设置的端口, 否则会连接不上;

注意端口安全组配置, 可用docker curl 343.343.443.343:6789 测试:

 10. 测试:

linux搭建java部署环境-docker_第35张图片

九. nginx反向代理

待完善

十. 删除重新生成jar应用

1. 停用docker应用container

docker stop zpiece

 

 2. 删除container:

docker rm ewrewr3234343

执行命令效果
linux搭建java部署环境-docker_第36张图片

 3. 删除镜像image:

docker rmi sdfds343434

执行代码效果
linux搭建java部署环境-docker_第37张图片​​​​​​​

 4. 重新生成image

docker build -t zpiece

linux搭建java部署环境-docker_第38张图片

 注意Dockerfile的内容:

# 设置本镜像需要使用的基础镜像
FROM  java:8  

# 把jar包复制一份并改名
ADD zpiece-0.0.1-SNAPSHOT.jar /app.jar

# 镜像暴露的端口
EXPOSE 6789

# 容器启动命令
ENTRYPOINT ["java","-jar","/app.jar"]

# 设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

# 设置语言环境
ENV LC_ALL zh_CN.UTF-8

linux搭建java部署环境-docker_第39张图片

 5. 启动目标镜像

docker run -p 6789:6789 --name zpiece \
-v /mydata/zpiece/html:/usr/share/zpiece/html \
-v /mydata/zpiece/logs:/var/log/zpiece  \
-d zpiece

执行命令后:

 

你可能感兴趣的:(docker,linux,java,docker)