参考文章安装Docker
和Docker Compose
点击跳转
配置
创建一个文件夹存放项目例如mydata
mkdir /mydata
上传jar
包
假设我的jar
包名称为goudan.jar
编写dockerfile
文件
vim app-dockerfile
按键盘上的i
进行编辑
# 使用jdk8
FROM openjdk:8-jre# 设置时区 上海
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezone# 创建镜像里的工作目录
WORKDIR /mydata/app# 复制 JAR 包
COPY goudan.jar /mydata/app/goudan.jar# 创建日志目录并赋予权限(有需要加上)
RUN mkdir -p /mydata/app/logs \&& chmod -R 777 /mydata/app/logs# Java 调优参数(示例配置,按需调整)
ENV JAVA_OPTS="-Xmx512m -Xms256m -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mydata/app/logs"# 启动命令(包含日志清理策略)
CMD java $JAVA_OPTS -Dlogging.file.path=/mydata/app/logs -jar goudan.jar
编辑完成后esc
案件退出编辑, 输入:wq
保存并退出
新建docker-compose.yml
文件
vim docker-compose-goudan.yml
添加内容
services:goudan-java-web:build:context: /mydata #指定dockerfile存在的目录dockerfile: app-dockerfile #文件名称container_name: goudan-java-web #容器名称#network_mode: host #使用主网络network_mode: host #使用主网络ports:- 2000:2000 #映射端口 左边是本机 右边是容器里的volumes:- /mydata/home:/mydata/app/home #单独映射文件 将本机的地址映射到容器里的/mydata/app/home- /etc/localtime:/etc/localtime #使用系统时间environment:TZ: Asia/Shanghai #时区logging:driver: json-fileoptions:max-size: 10m # 单个日志文件最大 10MBmax-file: 3 # 最多保留 3 个日志文件
当前项目目录为
mydata
--|goudan.jar
--|app-dockerfile
--|docker-compose-goudan.yml
构建和启动服务
docker-compose -f /mydata/docker-compose-goudan.yml up -d
-f
表示指定文件如果不写, 默认为docker-compose.yml
文件
-d
让容器在后台运行
可以使用以下命令查看容器是否正常运行
docker ps -a
停止和清理服务
docker-compose -f /mydata/docker-compose-goudan.yml down
会停止并删除由 docker-compose-goudan.yml
创建的容器和网络
停止指定容器
docker container stop 802 #802为容器自己的id
docker ps -a #查看容器id
删除容器
docker container rm 802 #802为容器自己的id
删除镜像
docker image rm 802 #802为镜像id
查看镜像
docker images
增加滚动更新功能
修改docker-compose-goudan.yml
services:goudan-java-web:build:context: /mydata dockerfile: app-dockerfile #container_name: goudan-java-web 删除容器名称ports:- 2000:2000 volumes:- /mydata/home:/mydata/app/home - /etc/localtime:/etc/localtime environment:TZ: Asia/Shanghai logging:driver: json-fileoptions:max-size: 10m max-file: 3 deploy:replicas: 1 # 设置服务的副本数量update_config:parallelism: 1 # 每次更新的容器数量delay: 10s # 每次更新之间的间隔时间rollback_config:parallelism: 1 # 回滚时每次操作的容器数量delay: 10s # 回滚时每次操作之间的间隔时间
启动命令
docker-compose -f ./docker-compose-goudan.yml up -d --build
查看日志
实时跟踪日志
docker logs -f 802 #802为容器id