Skip to content

Docker 和 Compose 启动 Runner 私有镜像

Docker 启动

使用方式一:使用镜像默认参数(推荐)

使用默认 -e 参数的值(TZ, FILE_ENCODING, SERVER_PORT, JAR)

shell
docker run \
--name <容器名> \
-p <映射端>:8080 \
--restart=unless-stopped \
-e NAME="<java -Dname 的名称, 方便识别进程>" \
-v /opt/<挂载目>/:/opt/app/ \
-d runner:17.0.19

使用方式二:仅修改时区、编码、jar、名称

明确指定 -e 参数的值

shell
docker run \
--name <容器名> \
-p <映射端>:8080 \
--restart=unless-stopped \
-e TZ="Asia/Shanghai" \
-e FILE_ENCODING=UTF-8 \
-e JAR="<jar包名称(可选参数),默认为:app.jar>" \
-e NAME="<java -Dname 的名称, 方便识别进程>" \
-v /opt/<挂载目>/:/opt/app/ \
-d runner:17.0.19

使用方式三:指定 JVM_OPTS 和 SPRING_OPTS

注意: 使用 JVM_OPTS 参数时,TZ、FILE_ENCODING、NAME 参数会全部失效。 若还需要这些参数,需要明确指定(示例如下)。

shell
docker run \
--name <容器名> \
-p 8080:8080 \
--restart=unless-stopped \
-e JVM_OPTS="-Dname=app.jar -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Xms512m -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError" \
-e SPRING_OPTS="--server.port=8080 --spring.profiles.active=dev" \
-e JAR="<jar包名称(可选参数),默认 app.jar>" \
-v /opt/<挂载目>/:/opt/app/ \
-d runner:17.0.19

常规使用 - Vita 管理系统 - 示例

yaml
services:
  vita:
    image: runner:17.0.19
    container_name: vita
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - NAME=vita.jar
    volumes:
      - /opt/vita/:/opt/app/

Docker Compose 启动

指定 JVM_OPTS 和 SPRING_OPTS - Vita 管理系统 - 示例

yaml
services:
  vita:
    image: runner:17.0.19
    container_name: vita
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - JVM_OPTS=-Dname=vita.jar -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Xms128m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError
      - SPRING_OPTS=--server.port=8080 --spring.profiles.active=h2 --spring.datasource.password=<你的密码> --spring.h2.console.enabled=true --spring.h2.console.settings.web-allow-others=true
    volumes:
      - /opt/vita/:/opt/app/

参数说明

  • --name: 指定容器的名称。如:vita
  • -p:端口映射
  • -e TZ:指定时区(可选),默认为 "Asia/Shanghai"。-Duser.timezone=$TZ
  • -e FILE_ENCODING:指定应用编码(可选)。-Dfile.encoding=$
  • -e JVM_OPTS:指定JVM 启动参数(可选)。如:-Xms512m -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError
    • JDK 17 参考:-Xms512m -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError
    • JDK 8 参考:-Xms512m -Xmx2048m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC
  • -e SPRING_OPTS:指定spring 启动参数(可选)。如:--server.port=8080 --spring.profiles.active=dev
  • -e JAR:指定 jar 名称(可选),不指定默认为 app.jar。如:vita-admin.jar
  • -v:挂载的目录文件夹。后面部分的 /opt/app/ 是固定值。

常用命令

不指定 compose.yaml 文件

shell
# 进入存放 compose.yaml 文件的目录
cd /opt/vita

docker compose up -d

docker compose restart

docker compose down

docker compose logs -f

指定 compose.yaml 文件

shell
docker compose -f /opt/vita/compose.yaml up -d

docker compose -f /opt/vita/compose.yaml restart

docker compose -f /opt/vita/compose.yaml down

docker compose -f /opt/vita/compose.yaml logs -f