Monday, December 25, 2023

Docker Tutorial

 I have listed all the necessary commands of Docker below. In case if any is missing or if any improvement required, please share in comments so I can update accordingly. Thanks and enjoy tutorial.


 1) docker –verison

        display version command

2) docker version

3) docker image ls

          Display images which are downloaded or created.

4) docker image pull ubuntu:latest

        Above command pull image from docker hub.


5) docker container run -it ubuntu:latest /bin/bash

Above command launch and start image in container which is fetched in docker host from above command.


6) ps -elf (inside bash command)


7) Ctrl + PQ (Command exit from bash but keep it running)


8) docker container ls

Shows above container running. Also container names in last column called "NAMES"


9) docker container exec -ti <container-name>/<container-id> bash


10) docker container <container-name>/<container-id>


>>>>>>>>>>>DOCKER DEVELOPER <<<<<<<<<<<<<<<<<<<<<<<<<<<


11) Create folder and run command

git clone https://github.com/nigelpoulton/psweb.git


12) Goto into new folder created and run following command.

docker image build -t test:latest .


13) docker image ls


14) docker container run -d --name web1 -p 8080:8080 test:latest


15) docker container ls


16) docker container run --name zm -it ubuntu:latest sh

command generates id


17) docker rm <dockerid_generated_after_executing_command15>


18) Docker images can be found inside

/var/lib/docker/ on linux

and on windows inside c:\program data\docker\windowsfilter


19) docker image inspect ubuntu:latest


20) docker image ls --digests alpine


21) docker image rm alpine:latest

Above command Remove mentioned image e.g., remove alpine:latest


22) docker image pull alpine@sha26:a75afd8b57e7f34e4dad8d65e2c7ba2e1975c795ce1ee22fa34f8cf46f96a3be


Above command pull image of alpine using digest. Digest is a hashcode which is created from the contents of file itself. Advantage of it over Tag is that it will never be the same. Tag can be mistakenly same. For example you download image with the tag "latest" and also push/update them image on server (e.g., DockerHub) with same Tag mistakenly. This will not be possible with Digest as it uses file contents/image contents to create Hash and image will always be change if you made any change in it. Even a single word written in image will change Digest/hash code of image.


23) docker image ls -q

List all images IDs


24) docker image rm $(docker image ls -q) -f

OR

docker container rm $(docker container ls -aq) -f

1st command remove all images from Docker/your system. Second command will remove all containers from your system. The -f flag

forces the operation so that running containers will also be destroyed.


25) docker container run -it alpine:latest sleep 10

Hold above container for 10 seconds and then sleep/exit from process.


26) usermod -aG docker <user>

Above command will add any user you mentioned to docker group.


27) service docker status

and systemctl is-active docker

Above both commands check status of docker. 1st command will show some more details where as second command will only show its status.


28) docker container run --name myubuntu -it ubuntu:latest /bin/bash

Above command will start your container. Exit from shell of container using Ctrl+PQ without terminating the process. Please note that containter will be Alive till any of the process is running inside it. Once no process is alive, container will be terminated itself.

To reconnect with the same process, you need to know container image id. Type following command.

docker container ls -q

This command will provide your 12 characters of container image id (e.g., 36aa4eb7a789).

To reconnect to the image, use below command.

docker container exec -it 36aa4eb7a789 bash


29) docker container run -d --name webserver -p 80:8080 \

nigelpoulton/pluralsight-docker-ci

Above command will download image of pluralSight from nigelpoulton dockerHUB Account nigelpoulton/pluralsight-docker-ci. It will also

detach process and start web server on 8080 port.

"d" stands for daemon mode.

-it and -d are mutually exlcusive modes/commands and can not be used together for starting a container.

30) docker image history web:latest

Display commands history executed on particular image.


Identifying Docker Container IP

  Dear Folks, Today I am going to share how we can identify Docker Container IP. We can identify docker container IP use following commands. Please note that docker IPs start with subnet 172.17.*.*


1) Following command will provide all docker running process with ID/Status/Names.

docker ps --format \
"table {{.ID}}\t{{.Status}}\t{{.Names}}"



2) To identify specific docker container IPAddress use following command. Please  note docker container id IP which I am going to see has docker container id  "2a869b54036f" . ID of the container returned from Step 1.

 
docker inspect -f \
'{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \
2a869b54036f


5) To run docker container on specific port, you can use following command docker run -d --name hsm -p 1500:1500  hsm:latest


I hope above article will assist you in learning docker efficiently. Please provide your reviews in case if it helps you to increase its authencity.

DECOMPILING IIB BAR FILE TO IIB PROJECT

 Dear Readers,


Since I started IBM IIB ACE 12 development, one of the questions in my mind was that how to decompile IIB Project from its Bar file (for example like decompiling DLL in .NET). Today I am sharing that how can we achieve it by following below steps.


1) Create an IIB Project with the same name which is reflected in side your bar file. for example, APP_Demo.

2) Now, right click on that project, go to "Properties" and see where is it located. Browse that folder.

3) Once completing Step2, goto Bar file and extract it and copy all folders from that to the location of Step 2.

4) Recompile the project to see if any error appears and do the same for any library (if shows missing).

By following above 4 steps, you have successfully decompiled BAR file. HURRAY !!! 


As always wrote, please leave your comments to reflect authenticity of this article. 


Tuesday, September 10, 2019

Cannot Find The Tag Library Descriptor For “http://java.sun.com/jsp/jstl/core”

Error:

Cannot Find The Tag Library Descriptor For “http://java.sun.com/jsp/jstl/core”

Dear Folks,

you might face above error for two reasons.

1) Your Servlet Container does not support JSTL.

2) You did not configure configure your Servlet Container.

 

To resolve the issue either download JSTL jar and place it on desired location or the most easiest way is to download Apache TomEE server which supports JSTL and many other e.g., JMS, etc.

 

After installation, configure it in your IDE or make a package .war and deploy it on server and run your application.

 

I hope above post will help you in resolving your issue. If it helps then please do comment.

 

Thanks.

Monday, September 9, 2019

Spring Boot: Apache Cataline Could not load resource factory class

Error Message:
org.apache.catalina.mbeans.GlobalResourcesLifecycleListener createMBeans
SEVERE: Exception processing global JNDI Resources
javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]



Answer:

While running Spring Boot Project, spring project was unable to start due to above error. After doing some research, I identified that this is due to corrupt installation of Apache Tomcat Server.

Steps to resolve :

1) Download Apache Tomcat Server.
2) Open Eclipse, add apache server again from "Servers" Tab.
3) Run Project.

Hopefully above post will resolve subjected issue. In case if this helps you then please do comment to increase validity of post.

Thanks.


Thursday, August 29, 2019

CREATING SHORTCUT ICON TO DISPLAY IN LINUX MENU

Dear Folks,

Today, I am going to describe how to create / bring icon in Linux Menu so instead of going to folder and running .sh (shell extension) file from there, you can simply call it from menu. Please follow below steps.

1) You must be on your home folder path. Mine is
/home/zeeshan/

2) Browse .local/share/applications.  (Please note you might not view .local folder until you set "Show All Hidden Files and Folders")

3) Create WebStorm.desktop file and inside file write below content (Please set path in Icon and Exec according to your installation)

[Desktop Entry]
Type=Application
Name=WebStorm
Comment=WebStorm Development
Icon=/home/zeeshan/Softwares/WebStorm-192.6262.59/bin/webstorm.svg
Exec=/home/zeeshan/Softwares/WebStorm-192.6262.59/bin/webstorm.sh
Terminal=false
Categories=Development;IDE;
StartupWMClass=WebStorm


4) Save WebStorm.desktop file and now you can simply browse it from your menu.

Please post your comments below in case if above post help you.

Thanks.




Saturday, September 22, 2018

Compile and Run Java Program From Sublime Text 3


Dear All,

Today, I am going to write about how you can compile and run your Java program from Sublime Text.

First, you need to set a Build System. To achieve it, follow below steps:
1) Goto Tools -> Build System  -> New Build System
2) A editor tab will open. Remove all predefined code and paste below code

{
    "shell_cmd": "javac $file_name && java $file_base_name",
    "working_dir": "${project_path:${folder}}",
    "selector": "source.java"
}

After pasting above code, save file with Java.sublime-build under sublime-text-3/Packages/User/.

Now, Goto Tools -> Build System and select Java (you will see new build after following above steps).

Now press Ctrl+B and enjoy the result. Please note that Ctrl+B is used to Build your program.

Enjoy coding with this lightweight software. Do comment if above post helps you.

Thanks.

Docker Tutorial

 I have listed all the necessary commands of Docker below. In case if any is missing or if any improvement required, please share in comment...