! INSTEAD OF anghelleonard USE YOUR NAME
As you may know from the previous post (Create a new Docker machine on Windows via Command Prompt), I've created a Docker machine named my-machine.
As you may know from the previous post (Create a new Docker machine on Windows via Command Prompt), I've created a Docker machine named my-machine.
1. Now, I want to create an image on my-machine. For
this, I need to write a Dockerfile using the
Docker commands (see Docker
Reference). My image will be pretty simple, and it will consist in a Docker
image for running OmniFaces Showcase
WAR
under WildFly 8.2.0 Final. So, I need the following commands; this is the
content of my Dockerfile:
FROM
jboss/wildfly:8.2.0.Final
MAINTAINER
Anghel Leonard
CMD
["/opt/jboss/wildfly/bin/standalone.sh", "-c",
"standalone-full.xml", "-b", "0.0.0.0"]
RUN curl -L
https://github.com/AnghelLeonard/OmniFaces/blob/master/OmniFacesShowcase.war?raw=true
-o /opt/jboss/wildfly/standalone/deployments/Showcase.war
EXPOSE 8080
Putting
this in words, sound like this: give me the WildFly 8.2.0 Final server in
standalone mode, and deploy and expose on port 8080 the OmniFaces Showcase WAR.
2. The my-machine is not running, so I
need to start it and get the environment commands:
Command: docker-machine start my-machine
Command: docker-machine env --shell cmd my-machine
Command: FOR /f "tokens=*" %i IN ('docker-machine env
--shell cmd my-machine') DO %i
3. Before I build this image, I checked
to see if I have any images or containers running. This is just a check, not a
mandatory step:
-
list of available images
Command: docker images
-
list of available running containers
Command: docker ps
-
list of recently containers activity
Command: docker ps -a
Since
this is a new machine, I have no images or containers (running/history):
3. In order to obtain the image from the
above Dockerfile, I need
to build that file. So, I navigated to the Dockerfile location and execute the below
command (my image name will be anghelleonard/omnifaceswildfly). This step will take some time
depending on your Interner connection since the image is built by downloading
the WildFly and OmniFaces Showcase from the Internet. Well, at further uses,
these resources will be taken by default from cache.
Command: docker build -t anghelleonard/omnifaceswildfly .
4. Now, I want to see if the image was created. As you can see in the below figure, I have two images, one is jboss/wildfly (run only the WildFly container) and the other one is anghelleonard/omnifaceswildfly:
Command: docker images
5. Further, I can run and test my image, anghelleonard/omnifaceswildfly. For this, I will need the below command (notice in figure below that WildFly has started and the OmniFaces Showcase application was deployed successfullly):
Command: docker run -t -p 8080:8080 anghelleonard/omnifaceswildfly
6. Open your browser and type in browser address bar: http://192.168.99.100:8080/. You should see the WildFly welcome page from below:
Now, add /Showcase to this URL: http://192.168.99.100:8080/Showcase. You should see the OmniFaces Showcase running as below:
Note The 192.168.99.100 is the Docker host (this may differ in your test). You can easily pick up this IP via the below command. You can easily gain the Command Prompt control by pressing the CTRL+C. Don't worry, this will not stop WildFly!
Command: env | greep DOCKER
7. You can check to see the currently running containers (you can easily identify our container):
Command: docker ps
8. If you check carefully the above image, you can notice that our container is named, dreamy_leavitt (this may differ in your case since Docker has randomly generated it). This is a Docker convention for naming containers when we don't indicate explicitly a name. This name can be useful for many furher operations, like stopping the container:
Command: docker stop dreamy_leavitt
You can easily check that the container has stopped by trying to refresh the http://192.168.99.100:8080/Showcase or by running again the docker ps command (as you can see from the below image, there is no container running):
However, you can still check the containers running history via, docker ps -a command.
9. For now, we finish this Docker lesson
by stopping the machine. In the next post, you will see how I've pushed this
image on DockerHub.
Command: docker-machine stop my-machine
Note: In order to see all the options for docker-machine command try:
Command: docker-machine --help