1.新建Dockerfile
FROM java:8
MAINTAINER lyj
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
ADD thedatamanager-authserver-0.0.1-SNAPSHOT.jar /authserver.jar
#RUN chmod +x /authserver.jar
ADD start.sh /start.sh
RUN chmod +x /start.sh
ENTRYPOINT ["sh","-c","./start.sh"]
2.新建start.sh
#!/bin/bash
# 命令後加入 & ,保持程序後臺持續運行
nohup java -jar /authserver.jar --server.port=8899 &
nohup java -jar /authserver.jar --server.port=8888 &
#指定端口java -jar /thedatamanager-authserver-0.0.1-SNAPSHOT.jar --server.port=7104
#nohup java -jar /root/lyjnginx/thedatamanager-authserver-0.0.1-SNAPSHOT.jar > authserver.log 2>&1 &
# 死循環,保持docker前臺運行
while [[ true ]]; do
sleep 1
done
#或者不用死循環 使用下面的方式
# 命令後加入 & ,保持程序後臺持續運行
#nohup java -jar /app.war --server.port=8085 &
#java -jar /app.war --server.port=8086
3. 打包
docker build -t lyj2jar:v2 .
4.運行
docker run -d -p 8888:8888 -p 8899:8899 --name lyj2jartest1 lyj2jar:v2
5.查看運行情況
[root@ambari-01 lyjJars]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e1f6a0cfe2a3 lyj2jar:v2 "sh -c ./start.sh" 5 minutes ago Up 5 minutes 0.0.0.0:8888->8888/tcp, 0.0.0.0:8899->8899/tcp lyj2jartest1
6.用到的命令
docker ps -a //查看所有啓動過的容器
docker rm 容器名稱/ID //刪除容器
docker rmi 名稱/ID //刪除鏡像
docker images //查看所有鏡像
docker stop containerID/名稱 //停止容器
docker logs --tail -f 804c083f5468 //查看日誌
docker stats //查看容器內存cpu佔用情況
Docker詳解之EXPOSE https://blog.csdn.net/u012972836/article/details/83380220
關於docker 內存設置 docker run -m 4g -d --name lyjtest myimage (https://www.jianshu.com/p/9ca78157514a)
生產環境永遠需要設置-m
不要輕易設置--oom-kill-disable,memory-swappiness,memory-swap和memory-reservation,因爲一半情況下,你不太容易理解它們真正如何作用於系統。