Docker with apache on ubuntu:

Install Dcoker:
-------------------
curl -sSL https://get.docker.com/ | sh
sudo service docker start
sudo usermod -aG docker $(id -un)
 
 
Create Docker file:
------------------- 
ubuntu@ip-172-31-2-125:~/images/test$ cat Dockerfile
FROM ubuntu:trusty
RUN apt-get update && apt-get install apache2 -y
CMD ["echo","hi]

Create image with Dockerfile:
---------------------------------------
ubuntu@ip-172-31-2-125:~/images/test$ docker image build -t test:0.9 .


List all docker images:
---------------------------



ubuntu@ip-172-31-2-125:~/images/test$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test                0.9                 e6f223044ca7        51 seconds ago      216MB
ubuntu              trusty              5dbc3f318ea5        12 days ago         188MB
hello-world         latest              fce289e99eb9        4 weeks ago         1.84kB
jenkins             latest              cd14cecfdb3a        6 months ago        696MB

=============================================


Create docker file :
----------------------------

FROM ubuntu:trusty
RUN echo "hello"> 1.txt
CMD ["echo","hi]

 Create image with Dockerfile:
---------------------------------------
ubuntu@ip-172-31-2-125:~/images/test$ docker image build -t test2 .

Check the test and test2 image sizes:
 -------------------------------------------------
ubuntu@ip-172-31-2-125:~/images/test2$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test2               latest              ad2aa5c40929        4 seconds ago       188MB
test                0.9                 e6f223044ca7        9 minutes ago       216MB
ubuntu              trusty              5dbc3f318ea5        12 days ago         188MB
hello-world         latest              fce289e99eb9        4 weeks ago         1.84kB
jenkins             latest              cd14cecfdb3a        6 months ago        696MB

To start a container:
-----------------------
ubuntu@ip-172-31-2-125:~/images/test2$ docker container run test2
hi


Note: When you start the container you will get the msg like  what ever you have mentioned in the CMD line in dockerfile.

How to go inside a container if container in runing state:
--------------------------------------------------------------------
Docker container exec -it containername /bin/sh


To remove image:
------------------------
ubuntu@ip-172-31-2-125:~/images/test3$ docker image rm test2 -f
Untagged: test2:latest
Deleted: sha256:ad2aa5c40929394cb236444a1f5a533baf6265560b9a22916a49957233e59a6d


 ======================================

Create Docker file:
------------------- 
ubuntu@ip-172-31-2-125:~/images/test$ cat Dockerfile
FROM ubuntu:trusty
RUN apt-get update && apt-get install git -y
RUN apt-get install tree -y
CMD ["echo","hi]

 Create image with Dockerfile:
---------------------------------------
ubuntu@ip-172-31-2-125:~/images/test3$ docker image build -t test3 .

Check the test, test2,test3 image sizes:
 -------------------------------------------------
 ubuntu@ip-172-31-2-125:~/images/test3$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test3               latest              b10e7604d76e        21 seconds ago      241MB
test2               latest              ad2aa5c40929        4 minutes ago       188MB
test                0.9                 e6f223044ca7        13 minutes ago      216MB
ubuntu              trusty              5dbc3f318ea5        12 days ago         188MB
hello-world         latest              fce289e99eb9        4 weeks ago         1.84kB
jenkins             latest              cd14cecfdb3a        6 months ago        696MB

===============================================================  

Docker image:(Docker images are read only)
=============
Image is a combination of layers stacked on each other and it will have manifest.
 
=> container is a image + one read write layer.
=> When we create container from image it will create one extra layer as a read write access.

Note: Manifest is a file which will tell metadata about your image and
 
      This image is combination multiple layers. 

ubuntu@ip-172-31-2-125:~$ docker image ls --digests
REPOSITORY          TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
test3               latest              <none>                                                                    b10e7604d76e        2 days ago          241MB
test2               latest              <none>                                                                    ad2aa5c40929        2 days ago          188MB
test                0.9                 <none>                                                                    e6f223044ca7        2 days ago          216MB
ubuntu              trusty              sha256:cac55e5d97fad634d954d00a5c2a56d80576a08dcc01036011f26b88263f1578   5dbc3f318ea5        2 weeks ago         188MB
hello-world         latest              sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535   fce289e99eb9        5 weeks ago         1.84kB
jenkins             latest              sha256:eeb4850eb65f2d92500e421b430ed1ec58a7ac909e91f518926e02473904f668   cd14cecfdb3a        6 months ago        696MB
ubuntu@ip-172-31-2-125:~$

Docker inspect a image:
----------------------------------



ubuntu@ip-172-31-2-125:~/images/test3$ docker image inspect test:0.9 |more
[
    {
        "Id": "sha256:e6f223044ca7ec26ee608e3a423baf4f15a687a4cc3cbfde7095d786f9bb2092",
        "RepoTags": [
            "test:0.9"
        ],
        "RepoDigests": [],
        "Parent": "sha256:6cdbeda8716c6fbb38b8648372477291e8758037cbd278925e84d78ad99f6244",
        "Comment": "",
        "Created": "2019-02-04T09:22:11.499694481Z",
        "Container": "b0adabd82c157d2b4280b5497302cdaf4ff8665f47462e50f5570350cd7460c7",
        "ContainerConfig": {
            "Hostname": "b0adabd82c15",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"/bin/sh\" \"-c\" \"[\\\"echo\\\",\\\"hi]\"]"
            ],
            "ArgsEscaped": true,
            "Image": "sha256:6cdbeda8716c6fbb38b8648372477291e8758037cbd278925e84d78ad99f6244",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {}
        },
        "DockerVersion": "18.06.1-ce",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "[\"echo\",\"hi]"
            ],
            "ArgsEscaped": true,
            "Image": "sha256:6cdbeda8716c6fbb38b8648372477291e8758037cbd278925e84d78ad99f6244",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 215808937,
        "VirtualSize": 215808937,
        "GraphDriver": {
            "Data": null,
            "Name": "aufs"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:e8769e218081127b7c313bde4a0ba2cb0107d72167b5c0d198bfb5dadfd81ad6",      
                "sha256:d1b9ba926eff7fe934a15b295c9d86e899aa0d9ebdd9064501ffe28ae6ab3f7f",
                "sha256:8f9b85d7bbd37cd511f70bb4d25078177cd7f0d2b7644cd7f545b60e084d6b09",
                "sha256:40f4c1f68b3783868af0759c34c67d7338b0a640b3a452275dd34541424a7f24",
                "sha256:cedebe130ed97cb896fabe54d76378a1c0b5d9baba5cbc7c93b6067f59a1488b"
            ]
        },

        "Metadata": {
            "LastTagTime": "2019-02-04T09:22:11.514316879Z"
        }
    }
]
ubuntu@ip-172-31-2-125:~/images/test3$


COmpare FS layes:
==============
Ubuntu :(Base image)
"RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:e8769e218081127b7c313bde4a0ba2cb0107d72167b5c0d198bfb5dadfd81ad6",
                "sha256:d1b9ba926eff7fe934a15b295c9d86e899aa0d9ebdd9064501ffe28ae6ab3f7f",
                "sha256:8f9b85d7bbd37cd511f70bb4d25078177cd7f0d2b7644cd7f545b60e084d6b09",
                "sha256:40f4c1f68b3783868af0759c34c67d7338b0a640b3a452275dd34541424a7f24"
            ]
        },

Apche2:
----------
 "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:e8769e218081127b7c313bde4a0ba2cb0107d72167b5c0d198bfb5dadfd81ad6",
                "sha256:d1b9ba926eff7fe934a15b295c9d86e899aa0d9ebdd9064501ffe28ae6ab3f7f",
                "sha256:8f9b85d7bbd37cd511f70bb4d25078177cd7f0d2b7644cd7f545b60e084d6b09",
                "sha256:40f4c1f68b3783868af0759c34c67d7338b0a640b3a452275dd34541424a7f24",
                "sha256:cedebe130ed97cb896fabe54d76378a1c0b5d9baba5cbc7c93b6067f59a1488b"
            ]
        },
Git & Tree:
---------------
"RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:e8769e218081127b7c313bde4a0ba2cb0107d72167b5c0d198bfb5dadfd81ad6",
                "sha256:d1b9ba926eff7fe934a15b295c9d86e899aa0d9ebdd9064501ffe28ae6ab3f7f",
                "sha256:8f9b85d7bbd37cd511f70bb4d25078177cd7f0d2b7644cd7f545b60e084d6b09",
                "sha256:40f4c1f68b3783868af0759c34c67d7338b0a640b3a452275dd34541424a7f24",
                "sha256:48ff2eb95a44ffba31dab3ec62dd754b0165d7ed61881ed26cc9b1b5f2929255",
                "sha256:4059b0420965e361666a054823b8a51bb1737d45d93e994c0d126ef0a954442b"
            ]
        },

###########################################################################

AUFS:

=> It is a filesystem which is capable of combining all of these layers and it shows to your container its a one file system.

=> Overlay also same like AUFS.
=> these two are filesystem like ext2,ext3.
=>AUFS is old one and overlay is new one.

** Overlay is act like driver it will combine all layers and it will show as a one file-system **
     The result of overlay is a one-file system.

Comments

Popular posts from this blog

How to run Jenkins on Docker container | How to create Jenkins Volumes on Docker

POWERSHELL

Building game of life container