DevOps Classroomnotes 12/Apr/2023

Dockerfile Instructions Contd…

  • LABEL: This instruction adds metadata Refer Here
    • Refer Here for the changes done for spc image
    • Lets inspect the image docker image inspect spc:1.0.0.1 and observe the labels section
      Preview

ADD, COPY instructions

  • ADD instruction can add the files into docker image from local file system as well as from http(s)
  • ADD instruction can have sources
    • local file system
    • git repo
    • url
  • COPY supports only local file system
  • Lets use ADD to download springpetclinic into docker image from url ADD https://referenceapplicationskhaja.s3.us-west-2.amazonaws.com/spring-petclinic-2.4.2.jar /spring-petclinic-2.4.2.jar
    Preview
  • Refer Here for the changes
  • copy the springpetclinic jar file into some local path on docker host. Refer Here for the changes done

What do we mean by running container in detached mode?

  • Lets try to start the docker container jenkins jenkins/jenkins
    Preview
    Preview
  • docker container’s STDOUT and STDERR will be attached to your terminal and if we execute ctrl+c the container exits.
  • Running container normally will take us to attached mode.
  • In detached mode container executes and gives us back the access to terminal
    Preview
  • Once we start the container in detached mode we can still view the STDOUT and STDERR by executing docker container attach <container-name-or-id>
  • To exit from attach mode Ctrl+PQ

Docker container will be in running state as long as command in cmd is running

  • Consider the following Dockerfile
FROM amazoncorretto:11
LABEL author="shaikkhajaibrahim"
LABEL organization="qt"
LABEL project="learning"
# Copy from local file on Docker host into docker image
COPY spring-petclinic-2.4.2.jar  /spring-petclinic-2.4.2.jar
EXPOSE 8080
CMD ["sleep", "10s"]
  • We have sleep 10s i.e. this will run for 10s and finish.
  • Docker container will move to exited stated once the command in CMD has finished executing
    Preview

Exercise:

  • Create a ubuntu vm
  • install apache2 and note the ExecStart command for apache2
  • install tomcat9 and note the ExecStart command for tomcat9
  • stop the services (systemcl stop servicename)
  • become a root user (sudo -i)
  • try executing the ExecStart command directly and see if the application is running

Leave a Reply

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

About continuous learner

devops & cloud enthusiastic learner