1. 程式人生 > 實用技巧 >Docker掛載jar包執行指令碼

Docker掛載jar包執行指令碼

下載映象

docker pull openjdk:8

執行命令

docker run -d -p 9001:8081 -v /opt/springboot-docker-1.0.jar:/var/lib/docker/jar/springboot-docker-1.0.jar --name ecs-console java:8u111 java -jar /var/lib/docker/jar/springboot-docker-1.0.jar

# -d 表示在後臺啟動
# -p 8081:8080 表示將容器的埠 對映成宿主主機的埠,否則8080埠訪問不到
# -v /opt/springboot-docker-1.0.jar:/var/lib/docker/jar/springboot-docker-1.0.jar
# 表示將宿主主機的jar檔案,對映到容器中(分號前為宿主主機的路徑就是伺服器的路徑,分號後為容器中的路徑)
# --name ecs-console
# 表示為該容器取一個全域性唯一的名稱,這裡我取的名稱為ecs-console
# java:8u111 表示映象檔案的名稱和tag
# java -jar /var/lib/docker/jar/springboot-docker-1.0.jar
# 表示執行jar包,注意:這裡的jar包為容器中的位置,是通過前面的-v屬性對映的

完整的指令碼

#!/usr/bin/env bash
docker pull openjdk:8
#判斷容器是否存在
docker ps -a | grep ecs-console &> /dev/null
if [ $? -ne 0 ]; then
    docker run -d -p 9001:8081  -v /home/docker/ecs/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /home/docker/ecs/console/ecs-console.jar:/ecs-console.jar --name ecs-console openjdk:8 java -Xmx1024m -Xms1024m -XX:MaxMetaspaceSize=256M -XX:MetaspaceSize=256M -Dfile.encoding=utf-8 -jar /ecs-console.jar
else
   docker restart ecs-console
fi