DevOps Classroom Series – 28/Jan/2020

Importance of Tags in Docker

  • Format is <image-name>:<tag>
  • Ex: openjdk:8, jenkins:1.609.2
  • In docker if the tag is not specified, LATEST is applied
FROM tomcat   ===  FROM tomcat:LATEST
  • note: in FROM instruction always specify tag and also while building images

Dockerfile instructions

Entrypoint

  • Create a Dockerfile with some cmd
FROM openjdk:8
RUN wget https://war-jar-files.s3-us-west-2.amazonaws.com/spring-petclinic-2.2.0.BUILD-SNAPSHOT.jar
EXPOSE 8080
CMD ["java", "-jar", "spring-petclinic-2.2.0.BUILD-SNAPSHOT.jar"]
  • create a docker image (for tag use ddmmyy)
docker image build -t spc:280120 .
docker image build -t spc:1.0-280120

  • list the docker images
docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
spc                 1.0-280120          4c0dd4eb112b        59 seconds ago      536MB
spc                 280120              4c0dd4eb112b        59 seconds ago      536MB
openjdk             8                   8c6851b1fc09        5 days ago          488MB

# for spc:280120 and 1.0-280120 we have same image id, same image id means same image to docker 
  • To create a container
docker container run -d -p 8080:8080 spc:280120
# creates a new container and runs CMD from Dockerfile

docker container run -d -p 8081:8080 spc:280120 echo helloworld
# Creates a new container and CMD in Dockerfile will be overriden with echo helloworld 
  • Entrypoint instruction also executes when creating a new container, the differnce with CMD is ENTRYPOINT cannot be overriten.
  • When you have written both ENTRYPOINT and CMD, ENTRYPOINT will be executable and CMD will be arguments
FROM openjdk:8
ENTRYPOINT ["echo"]
CMD ["hello"]
  • Now if we run a container after creating the image (demo)
docker container run image
# hello

docker container run image how are you
how are you
  • Containers will be alive as long as the command in ENTRYPOINT and CMD instruction is executing

Other instructions

  • LABEL: This instruction adds metadata
FROM openjdk:8
LABEL author=khaja
LABEL org=qt
  • ADD and COPY:
    • These instructions are used to copy the external files (file from host or from http(s)) into the docker image
    • ADD and copy both takes two arguments source and destination
    • ADD can copy the contents from file system and URLs
    • COPY can copy the contents only from file system
FROM openjdk:8
ADD https://war-jar-files.s3-us-west-2.amazonaws.com/spring-petclinic-2.2.0.BUILD-SNAPSHOT.jar /spring-petclinic-2.2.0.BUILD-SNAPSHOT.jar
EXPOSE 8080
CMD ["java", "-jar", "spring-petclinic-2.2.0.BUILD-SNAPSHOT.jar"]

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Social Media Icons Powered by Acurax Web Design Company

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Visit Us On FacebookVisit Us On LinkedinVisit Us On Youtube