制作 docker文件

建立 Dockerfile 文件

拷贝jar文件到 新目录下

FROM openjdk:8
MAINTAINER TsuiChris COPY *.jar /app.jar EXPOSE 8080 ENTRYPOINT java -jar app.jar

运行编译,后面一个点 . 代表当前目录。 如果没有:及以后的,代表lastest  TAG

docker build -t=chris:v1  .

运行镜像chris:v1  容器名字为 yunshui,端口暴露80,内部端口8080,顺序不能变,最后为镜像名字,开始为容器名字。

docker run --name yunshui  -p 80:8080 -d chris:v1

-d: 后台运行容器,并返回容器ID;

删除未使用的镜像

docker container prune

#进入运行的容器

docker exec -it 容器id  /bin/bash

#重启容器

docker restart 容器id

-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;

#docker 的日志

docker logs -f  容器后面的名字

另外在容器id的名字*查找后,有个容器名字id+json.log 的文件,也是容器内部程序的日志。如java的运行打印的sql等。

#docker 监控

docker stats

docker attach 目前进入后,卡死不动。已过期,用exec代替

############

另一份Dockerfile 文件清单,其中app.jar 文件的ip,如mysql和redis的ip,需要指定为内网ip,不要用locahost或127等。否则连不上。

在tmp文件夹下 建立 Dockerfile 文件,另外此目录下还有清单中的字体文件。

FROM openjdk:11
MAINTAINER Tsui RUN mkdir -p /root/www/
copy *.jar /root/www/app.jar RUN mkdir -p /root/www/logs/
RUN mkdir -p /root/www/font/
RUN mkdir -p /root/www/pdf/
copy *.ttf /root/www/font/
copy *.ttc /root/www/font/ EXPOSE 8080

#ENTRYPOINT nohup java -jar /root/www/app.jar 1>/root/www/logs/access.log 2>/root/www/logs/errors.log # 基本无用,其中日志已定位到容器的json.log文件
ENTRYPOINT java -jar /root/www/app.jar

docker build -t=chris:v8 .     // 注意后面有个 小 点。

运行(命令最后是镜像名字,开始name是容器的别名)

docker run  -d --name chris-test -p 80:8080 chris:v8

另附一个启动多个java进程的

Dockerfile

FROM openjdk:11
MAINTAINER Tsui RUN mkdir -p /root/www/
copy *.jar /root/www/app.jar RUN mkdir -p /root/www/logs/
RUN mkdir -p /root/www/font/
RUN mkdir -p /root/www/pdf/
copy *.ttf /root/www/font/
copy *.ttc /root/www/font/
copy *.sh start.sh
run chmod +x start.sh EXPOSE 8090
EXPOSE 8080

ENTRYPOINT ["sh","/start.sh"]

start.sh

#!/bin/sh

java -jar /root/www/app.jar --server.port=8080  &
java -jar /root/www/app.jar --server.port=8090 ~
~

构建

docker build -t=wh:7 .       // 后面有个 小 点

运行

docker run -d --name chris -p 80:8080 -p 8090:8090 wh:7

查看运行命令

docker ps -a --no-trunc | grep container_name

最新文章

  1. 高阶c++
  2. 在Android应用中使用OpenGL
  3. 如何将NetBeans转换为英文版(图)
  4. 【Express】路由
  5. POJ 2044 Weather Forecast
  6. PV操作——生产者和消费者
  7. Nodejs使用redis
  8. 设计模式之“Decorator”注疏#02
  9. 在IIS托管服务中设置Rewrite重定向到webapi接口
  10. [20181219]script使用小技巧.txt
  11. HOJ3237----BFS/DFS
  12. (原创)Python文件与文件系统系列(1)—— file 对象
  13. How to remove live visual tree?
  14. Data - 数据思维
  15. 2017.12.21-JQuery
  16. json和java bean的相互转换(使用fastjson)
  17. oracle错误分析:ora-04063:view view_test has errors
  18. 如何让4年前的电脑装win10开机跑进15秒
  19. 利尔达CC3200模块第一篇之-wlan_ap例程测试
  20. 详解 RPL、DPL、CPL 的关系

热门文章

  1. 如何调用别人的接口(包含get请求post请求)
  2. sqlserver 循环插入脚本
  3. 【PyCharm】配置 Git
  4. Ubuntu系统安装搜狗拼音输入法
  5. Property or method "scope" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components
  6. 如何使用源码编译安装Nginx服务器
  7. Linux 部署apache2.4
  8. wget 和 curl的区别
  9. python_异常处理(try except)
  10. JDK-11.0.17 + Neo4j-4.4.12