java应用jar部署在docker容器上

 
1,pom.xml文件配置插件    

    
    com.spotify
    docker-maven-plugin
    1.0.0
    
    
        
            build-image
            
            package
            
                build
            
        
    
    
        
        motormmcs
        
        
            latest
        
        
        ${project.basedir}/src/main/docker
        
        http://填写IP:端口
        
        
            
                /
                
                ${project.build.directory}
                
                ${project.build.finalName}.jar
            
        
        
        docker-hub
        https://index.docker.io/v1
    
    


    
        src/main/resources
        true
    
    
        src/main/java
        
            **/*.xml
            **/*.json
            **/*.ftl
        
    

2,创建docker文件夹,新建dockerfile(可以忽略大小写),内容

#jdk版本
FROM java:8

VOLUME /tmp
#打包是motormmcs-1.0.2.jar    motor.jar是别名
ADD motormmcs-1.0.2.jar  motor.jar
#路径
RUN bash -c 'touch /motor.jar'

#对外端口
EXPOSE 8082

#启动jar
ENTRYPOINT ["java", "-jar", "motor.jar"]

3,idea下载docker,指定上面写的dockerfile文件

4,在配置docker时,记录相关问题,可以查看一下

学习网站
https://www.runoob.com/docke

查看所有镜像
docker images

常用命令linux是一样的
创建文件夹,用于存放后面的相关东西。
mkdir -p /nginx/www /nginx/logs /nginx/conf

启动nginx,指定配置文件,我们实际修改是D盘的东西,指定到docker上面
docker run -d -p 8081:80 --name nginx-test-web -v /nginx/www:/usr/share/nginx/html -v /nginx/conf/nginx.conf:/etc/nginx/nginx.conf  nginx

杀进程,杀了后还能访问
docker kill -s HUP nginx-test-web

重启
docker restart nginx-test-web

停止,不能访问了
docker stop  nginx-test-web

查看正在运行的服务信息
docker ps

查看容器的信息 下面的5是看5列信息
docker ps -n 5 

有些服务stop和kill,查看看在运行,要移除就好了
参考https://blog.csdn.net/guyunzh/article/details/85779154
docker rm nginx-test-web , nginx-b-web


参考:https://www.cnblogs.com/spll/p/9957769.html
部署服务要挂载到服务器中
查找启动tomcat
docker ps  
找到id=9fccf0236619后,找到在docker容器的的地址
docker exec -it 9fccf0236619 /bin/bash
找到地址后bb276708a79a:/usr/local/tomcat/webapps
cp到服务器中
docker cp /usr/local/testJavaProject/test01.war 9fccf0236619:/usr/local/tomcat/webapps


在idea中连接不上,可能远程端口没有访问
参考:https://blog.csdn.net/ChineseYoung/article/details/83107353

docker在服务器上部署,
1,把已经打好包上传到服务器,(rz上传,记住打包要是可以运行的,自己现在本地试一遍,正常后再上传到服务器中)
2,创建dockerFile文件,下面是内容
每个命令开头都是大写,这是规则
FROM  java   --这是java程序,基础镜像就是java,没有他会自动到去下载,手动下载docker pull java

ADD   docker_test.jar   /docker_test.jar

EXPOSE 8080  --这个是对外的端口tomcat启动默认是8080  也可写  8080:8080(外:内)


ENTRYPOINT ["java", "-jar", "/docker_test.jar"]
保存文件
3,启动构建, -f 是文件配置  -t 是images名称   v1是版本  . 是当前路径
docker build -f dockerFile -t  liu/test:v1 .
4,启动程序
docker run --name docker_test -p 8086:8080 -d liu/test:v1
docker run --name docker_test22 -p 8087:8080 -d liu/test:v1
对外端口只能有一个不能重复,内部端可以重复用
5,访问
http://121.40.150.88:8086/

在idea镜像碰到坑,文件必须要以这个(dockerfile)命名,不分大小写

移除容器
1.docker stop<容器ID或容器名> ,容器停止了,当时没有及时移除,可能随着docker启动还能访问
2.docker rm <容器ID或容器名> ,移除后就不能在访问了

移除镜像
一个镜像名称可以有多个,如java ,java:8  ,但是images ID都是样,说明是同一个镜像,删除时就会提醒有引用
,这里需要强制删除才有效果
1,简单删除Docker rmi <容器ID或容器名>
2,docker rmi -f  974851f7993e  这里是强制删除的,主要是同一个id的都没有了

镜像后面的tag默认是latest,启动容器可以不写,如果你重新命名,那就要带上不然启动不了

 

你可能感兴趣的:(docker,docker配置)