- Comprehensive Blog on Dockers running on OCI
- running a Docker Container on OCI
- opening OCI Ports for Docker Containers
- Building a Docker Image by using Dockerfile
- Committing changes made in a Docker without using Dockerfile
- Pushing Docker Images to Docker Hub
- DevOps with Github, Docker Hub and Oracle Container Cloud Services
Goal
Goal of this session is to create a Dockerfile whose task is to
- create a debian OS ,
- update the OS,
- Install Git,
- Install Vim
- create a text file that lists all the directories
Dockerfile Source Code
FROM debian:latest RUN apt-get update RUN apt-get install -y git RUN apt-get install -y vim RUN ls > listfile.txt
Create Dockerfile copy paste the above source code
ubuntu@dockervm:~$ ls ubuntu@dockervm:~$ clear ubuntu@dockervm:~$ touch Dockerfile ubuntu@dockervm:~$ vi Dockerfile ubuntu@dockervm:~$ cat Dockerfile FROM debian:latest RUN apt-get update RUN apt-get install -y git RUN ls > listfile.txt
Build the Docker Image with Dockerfile Repository Name is jamessmith73/debian
ubuntu@dockervm:~$ docker build -t jamessmith73/debian . error checking context: 'no permission to read from '/home/ubuntu/.viminfo''. ubuntu@dockervm:~$ sudo docker build -t jamessmith73/debian . Sending build context to Docker daemon 17.92kB Step 1/5 : FROM debian:latest latest: Pulling from library/debian bc9ab73e5b14: Already exists Digest: sha256:802706fa62e75c96fff96ada0e8ca11f570895ae2e9ba4a9d409981750ca544c Status: Downloaded newer image for debian:latest ---> be2868bebaba Step 2/5 : RUN apt-get update ---> Running in 7b07e8f2ad39 Get:1 http://security-cdn.debian.org/debian-security stretch/updates InRelease [94.3 kB] Get:3 http://security-cdn.debian.org/debian-security stretch/updates/main amd64 Packages [454 kB] ... Reading package lists... Removing intermediate container 7b07e8f2ad39 ---> ba0af66efb85 Step 3/5 : RUN apt-get install -y git ---> Running in 26c763ac9b4a Reading package lists... Building dependency tree... Reading state information... The following additional packages will be installed: .. Suggested packages: .. 0 upgraded, 56 newly installed, 0 to remove and 1 not upgraded. Need to get 22.7 MB of archives. After this operation, 102 MB of additional disk space will be used. Get:1 http://security-cdn.debian.org/debian-security stretch/updates/main amd64 libcurl3-gnutls amd64 7.52.1-5+deb9u8 [290 kB] Get:2 http://security-cdn.debian.org/debian-security stretch/updates/main amd64 git-man all 1:2.11.0-3+deb9u4 [1433 kB] .. Preparing to unpack .../12-libk5crypto3_1.15-1+deb9u1_amd64.deb ... .... done. Removing intermediate container 26c763ac9b4a ---> e3257851e022 Step 4/5 : RUN apt-get install -y vim ---> Running in f5e1c8fe47b4 .. Fetched 6731 kB in 0s (49.8 MB/s) ..... Removing intermediate container f5e1c8fe47b4 ---> 298c3a2ff986 Step 5/5 : RUN ls > listfile.txt ---> Running in 74974b05e6dc Removing intermediate container 74974b05e6dc ---> 170489bdc17e Successfully built 170489bdc17e Successfully tagged jamessmith73/debian:latest ubuntu@dockervm:~$
Just make a note about the Bold commands , at each Step a Container is created and removed
List and Run the Docker Container that we created now
ubuntu@dockervm:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE jamessmith73/debian latest 170489bdc17e 6 minutes ago 249MB tomcat latest ca9e2fccef98 7 days ago 463MB debian latest be2868bebaba 3 weeks ago 101MB ubuntu@dockervm:~$ docker run jamessmith73/debian:latest cat listfile.txt bin boot dev etc home lib lib64 listfile.txt media mnt opt proc root run sbin srv sys tmp usr var
Committing the changes to version 1.0
ubuntu@dockervm:~$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4ecfe884aecf jamessmith73/debian:latest "cat listfile.txt" 24 minutes ago Exited (0) 24 minutes ago confident_yonath c00aeaaee7ca jamessmith73/debian:latest "ls" 24 minutes ago Exited (0) 24 minutes ago sad_davinci 192bd7f7870f jamessmith73/debian:latest "bash" 25 minutes ago Exited (0) 25 minutes ago blissful_goldstine ubuntu@dockervm:~$ docker commit 4ecfe884aecf jamessmith73/debian:1.0 sha256:90c1c24a6dd6e99fb02a786cba7a7b45d83d18ad8134bda9e59e568b74a07d51 ubuntu@dockervm:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE jamessmith73/debian 1.0 90c1c24a6dd6 24 seconds ago 249MB jamessmith73/debian latest 170489bdc17e 34 minutes ago 249MB tomcat latest ca9e2fccef98 7 days ago 463MB debian latest be2868bebaba 3 weeks ago 101MB busybox latest 59788edf1f3e 4 weeks ago 1.15MB hello-world latest 4ab4c602aa5e 8 weeks ago 1.84kB
What Next >> Creating Same Docker Container without using Dockerfile