I created a Docker image with java, and am copying the jar file into the image. My Dockerfile is :
FROM anapsix/alpine-java MAINTAINER myNAME COPY testprj-1.0-SNAPSHOT.jar /home/testprj-1.0-SNAPSHOT.jar RUN java -jar /home/testprj-1.0-SNAPSHOT.j
After executing following command :
docker build -t imageName.
In the console I see the output from the application and everything is fine. But when I stop the image, I don`t know how to run the image again ? When I execute the following command :
docker run -i -t imageName java -jar /home/testprj-1.0-SNAPSHOT.jar
The application runs again, but in my Dockerfile I have already written this command. How can I run the image without this command and have the application run automatically?
There is a difference between images and containers.
In your case:
Change your image:
FROM anapsix/alpine-java MAINTAINER myNAME COPY testprj-1.0-SNAPSHOT.jar /home/testprj-1.0-SNAPSHOT.jar CMD ["java","-jar","/home/testprj-1.0-SNAPSHOT.jar"]
Build your image:
docker build -t imageName .
Now invoke your program inside a container:
docker run --name myProgram imageName
Now restart your program by restarting the container:
docker restart myProgram
Your program changed? Rebuild the image!:
docker rmi imageName docker build -t imageName .
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With