java项目或web项目在linux系统上用docker打成镜像容器执行代码
整体步骤 
上传tomcat基镜像(有就不用上传)-->创建文件夹(如test)-->上传jar包或war包到test文件夹-->在test文件中创建Dockerfile文件-->创建镜像-->拉起容器,启动程序

1.下载tomcat基镜像
  docker pull tomcat

2.创建文件夹
  mkdir test

3.上传jar包或war包到test文件
  用rz 命令来上传 或者在服务器软件工具中直接粘贴复制

4.创建Dockerfile文件
  1>.touch Dockerfile  #创建Dockerfile
  2>.vi Dockerfile     #进入Dockerfile文件(跳转到新界面编辑文件)的命令
       Esc键+ :wq +enter健       #退出Dockerfile文件编辑界面
  3>.cat Dockerfile    #进入Dockerfile文件(linux本界面查询文件内容)的命令
  4>.Dockfile内容(war包时)
       FROM docker.io/tomcat                 #引用的tomcat基镜像
       #MAINTAINER "test <xxx@xx.com>"       #被注掉,暂没用
       ADD Hebei_interface_serve.war /usr/local/tomcat/webapps/   #将Hebei_interface_serve.war 放置到tomcat基镜像下的webapps目录下,和单节点部署的放置位置一样
       CMD ["catalina.sh", "run"]            #启动那个运行的命令
  5>.Dockerfile内容(jar包时)
       FROM frolvlad/alpine-oraclejdk8:slim
       ADD epic-crab-0.1.1.jar epic-crab.jar 
       ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/epic-crab.jar"]
5.创建镜像
   docker build -t interface/server/hebei .(interface/server.hebei . 为镜像名)  #创建镜像 
   docker images #查看镜像

6.拉起容器,启动程序
   docker run --name=hebei-bomc-container -d -p 58888:8080 镜像id   #拉起容器,启动程序
   docker ps     #查看运行中的容器列表
   docker ps -a  #查看创建过的容器(运行中的和没有运行中的都有)

7.其他命令
   1>.docker logs -f -t --tail 0 容器id      #查看日志 
   2>.docker save 镜像id> /root/镜像名.tar    #镜像打tar包        
        docker save 镜像id | gzip > /root/镜像名.tar.gz   #镜像打gz包
   3>.docker exec -it 容器id /bin/bash       #进入容器查看信息
   4>.现有镜像,再有容器,容器是在镜像的基础上拉起的
   5>.docker exec -it 容器id /bin/bash       #登录容器,linux系统的命令界面到容器中
   6>.exit  #退出容器
   7>.cp    #复制文件
   8>.docker stop 容器名称/容器id   #停止容器
   9>.docker start 容器名称/容器id  #启动容器

8.修改docker容器内部映射端口(如将容器端口默认的8080修改成8051)
   1>.根据基镜像docker.io/tomcat 拉起基镜像容器 dockr-io-tomcat-8051
      docker run --name=dockr-io-tomcat-8051 -d -p 58888:8080 df50c9d355cf
      docker run --name=容器名称 -d -p 外部主机访问端口:基镜像默认端口 镜像id (容器内部端口是根据tomcat基镜像默认的8080)

       

linux dockerfile linux dockerfile使用jar包构建容器_docker

2>.导出容器(dockr-io-tomcat-8051)中的server.xml,
      命令如下:docker cp ba66de0a8a61:/usr/local/tomcat/conf/server.xml /opt
      docker cp 容器id:server.xml所在容器中的路径 导出路径
   3>.将容器中tomcat的配置文件server.xml的8080端口修改成8051
   4>.将修改好的server.xml导进容器(docker-io-tomcat-8051)的对应目录中
      docker cp server.xml ba66de0a8a61:/usr/local/tomcat/conf
      docker cp server.xml 容器id:server.xml所在位置

        

linux dockerfile linux dockerfile使用jar包构建容器_linux dockerfile_02

  

5>.重启docker-io-tomcat-8051容器
      命令:docker restart 容器id

        

linux dockerfile linux dockerfile使用jar包构建容器_Dockerfile_03

6>.查看docker-io-tomcat-8051容器日志,看容器内部tomcat端口是否修改成功
      命令:docker logs 容器id

        

linux dockerfile linux dockerfile使用jar包构建容器_linux dockerfile_04

         

linux dockerfile linux dockerfile使用jar包构建容器_Dockerfile_05

7>.将docker-io-tomcat-8051容器反打成8051-tomcat基镜像
      命令:docker commit -a "lijiangtao" -m "tomcat-8051" ba66de0a8a61 8051-tomcat:latest
          docker commit -a "lijiangtao" -m "tomcat-8051" 容器id 8051端口基镜像名:版本
      注:-a 提交的镜像作者;-m 提交时的说明文字

       

linux dockerfile linux dockerfile使用jar包构建容器_docker_06

8>.将8051-tomcat基镜像拉起容器,看是否能运行成功(可以在浏览器查看)
     命令:docker run --name=8051-tomcat-container -d -p 9099:8051 7de26945c362
          docker run --name=容器名称 -d -p 主机外部访问端口:容器内部修改后的端口 8051-tomcat镜像id

       

linux dockerfile linux dockerfile使用jar包构建容器_Dockerfile_07


       本台服务器ip是192.168.181.70,外部访问端口设置是9099;所以可以在浏览器上执行http://192.168.181.70:9099/,看是否启动了tomcat

9>.浏览器上可以访问成功,说明8051端口的tomcat基镜像打的容器可以运行成功
     查看端口

       

linux dockerfile linux dockerfile使用jar包构建容器_linux dockerfile_08

      或docker port 容器id

       

linux dockerfile linux dockerfile使用jar包构建容器_tomcat_09

10>.然后就根据这个8051端口的基镜像用项目war包生成自己的项目镜像,拉起容器并运行项目


9.参考地址
   1>.Docker导入导出镜像:https://jingyan.baidu.com/album/ce436649379e0a3772afd354.html?picindex=3
   2>.Docker Tomcar 多个端口镜像构建:
   3>.sed命令:http://man.linuxde.net/sed
10.k8s
   1>.导出镜像
        docker save 镜像id> /root/镜像名.tar    #镜像打tar包        
        docker save 镜像id | gzip > /root/镜像名.tar.gz   #镜像打gz包
导入镜像
        docker load < /opt/install/ssss.tar
        docker load -i epic-mgmt.0.1.23.tar.gz
   2>.修改镜像tag
        docker tag xxxidxx 192.168.29.222/library/epic-mgmt:0.1.25
   3>.重新push镜像
        docker push 192.168.29.222/library/epic-mgmt:0.1.25
   4>.k8s创建镜像容器
        kubectl create -f /opt/install/images/..../hebei-bomc.yaml
   5>.k8s删除镜像容器
        kubectl delete -f /opt/install/images/..../hebei-bomc.yaml
   6>.查询生成的容器
        kubectl get pod
   7>.查询日志
        kubectl logs 容器名
   8>.进入容器中查询
        kubectl exec -it 【podName】/bin/sh
   9>.退出容器
       exit
   10>.参考地址:
          https://note.youdao.com/share/?id=8d2cc1c562b7f747d80981400fe66709&type=note#/
          http://baijiahao.baidu.com/s?id=1602526804147487796&wfr=spider&for=pc