<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Docker ගැන සිංහලෙන් - part 01]]></title><description><![CDATA[<p dir="auto"><strong>docker,</strong><br />
docker කියන්නේ , ඔයාගේ entire software එක package කරලා easily deploy කරන්න පුළුවන් solution එකක්.</p>
<p dir="auto">අපි locally development කරද්දී හොදට වැඩ  කරන app එක, server එකට දැම්මට පස්සේ ඒක  වැඩ කරන්නේ නැතිව යනවා.  එතොකොට එක fix කරන්න  අපිට ටිකක් වෙලා යනවා. එකට ගොඩක් හේතුව වෙන්නේ, අපෙ local environment එකයි server environment එකයි වෙනස් නිසා.</p>
<p dir="auto">හැබැයි අපිට පුළුවන් docker use කරලා මේ problem එක solve කරන්න. එකට හේතුව locally docker ඇතුලේ  app එක වැඩ කරනවනම්, docker run වෙන ඕන server එකක අපේ app එක වැඩ.</p>
<p dir="auto"><strong>how docker works</strong>,<br />
docker කියන්නේ containerization platform එකක්.<br />
containerization එක්ක ලගින්ම යන අනිත් එක තමා virtualization කියන්නේ. අපි බලමු මොකක්ද මේ දෙකේ වෙනස කියල.</p>
<p dir="auto"><img src="https://www.sdxcentral.com/wp-content/uploads/2019/05/ContainersvsVMs_Image-1.jpg" alt="alt text" class=" img-responsive img-markdown" /></p>
<p dir="auto">virtualization (2nd  image )  කියන්නේ සරලව, host os එක උඩ hypervisor software එකක් run කරලා, එක uda virutal machines හදාගන්න එක.<br />
එතොකොට ඒ හැම virtual machine ekak ඇතුලේම  entire os එකක් run වෙනවා.<br />
ex - virtual box කියන්නේ open source  hyperviosr එකක්. අපිට windows os එකක් උඩ linux install කරන්න පුලූවන්  dual boot කරන්නේ නැතුව.</p>
<p dir="auto"><strong>එතකොට docker engine එක වැඩ කරන්නේ ?,</strong><br />
අපේ host os එක උඩ docker engine එක run කරනවා, ඊට පස්සේ docker වලට පුළුවන් isolated process හදන්න්න. මේ අපි හදන එක process එකකට කියනවා container එකක් කියල.  ඇත්තටම container එකක තියෙන්නේ මොකක් හරි එක process එකක්. ex: apache server, mysql server..<br />
එක lightweight, අනිත් process එක්ක isolated, ඒ වගේම host OS එකේ kernel එක තමා මෙ  හැම container එකක්ම share කරගන්නේ.</p>
<p dir="auto">ඒ වගේම virtual machine එකකට වඩා fast. එකට හේතුව virtual machine එකක් restart කරනවා කියන්නේ entire OS එකම restart වෙනවා කියන එක. හැබැයි  container එකක් restart වෙනව කියන්නේ, දැනටමත් run වෙන host OS එකේ process එකක් restart වෙනවා කියන එක විතරයි.</p>
<p dir="auto"><strong>basic terms of docker</strong></p>
<p dir="auto"><strong>container</strong> - isolated process එකක් (මොකක් හරි එක task එකක් , etc mysql server, nginx server )</p>
<p dir="auto"><strong>image</strong>  - container එකක් run කරන්න ඕන application library, system tools, configuration files වල එකතුවක්. ඒවගේම අපිට මේ එක image එකකින් multiple containers හදාගන්න පුළුවන්.</p>
<p dir="auto"><strong>dockerfile</strong> - docker image එකක් create කරන්න ඕන instructions තමා අපි මේකේ ලියන්නේ. ex - environment variables, port mapping, මොන toolsද install වෙන්න ඕන කියල මේ file එකේ  ලියන්න පුළුවන්.</p>
<p dir="auto"><strong>docker registry</strong> - docker image එක store කරන්න පුළුවන් place එකක්.<br />
ex: අපි git එක්ක github වගේ  remote reporsitory එකක් තියාගන්නවා වගේ වැඩක්.</p>
<ul>
<li><strong>docker hub</strong> - මේක docker ලගේ  official images store කරන්න  තියන registry එකක්. free වගේම paid version එකක් තියනව.</li>
<li><strong>aws ecr</strong> - aws lage paid solution එකක් docker images store කරන්න තියෙන<br />
.</li>
</ul>
<p dir="auto"><strong>හරි දැන් අපි docker වලින් container එකක් හදල බලමු,</strong></p>
<p dir="auto">මුලින් ඔය docker install කරගන්න ඔයාගේ os එක අනුව.<br />
<a href="https://docs.docker.com/get-docker/" target="_blank" rel="noopener noreferrer nofollow ugc">https://docs.docker.com/get-docker/</a></p>
<p dir="auto">check docker installed, then it will show the help menu</p>
<pre><code>docker
</code></pre>
<p dir="auto">pull mysql docker image from docker hub</p>
<pre><code>docker pull mysql:5.7
</code></pre>
<p dir="auto">view downloaded docker images</p>
<pre><code>docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
mysql                                                             5.7                 a4fdfd462add        5 days ago          448MB
</code></pre>
<p dir="auto">create a docker container from docker image</p>
<pre><code>docker run --name my_db -p 9000:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7
</code></pre>
<p dir="auto"><strong>--name used for container name</strong> (අපිට කැමති නමක් දෙන්න පුළුවන් )<br />
<strong>-e  used for environment variables</strong><br />
<strong>-i or -d used for running mode,</strong><br />
container එකක් run වෙන විදී දෙකක් තියනව.</p>
<ul>
<li>-i  ඔයාට container එකේ input outputs shell එකෙන් බලාගන්න පුළුවන්. ඔය ඒ shell එක close කරෝතින් container එක stop වෙනවා</li>
<li>-d  container එක run වෙන්නේ background process එකක් විදිහට.</li>
</ul>
<p dir="auto"><strong>-p used for port mapping,</strong><br />
අපි මුලින් කිවා container එකක් කියන්නේ process එකක් කියල, එකියන්නේ සරලව  container එක මොකක්හරි  port එකක run වෙනව කියන එකයි . mysql ගත්තොත් එයා default port number 3306 එකේ run වෙනවා.</p>
<p dir="auto">එකියන්නේ container eka athule අපේ mysql server එක port 3306 run wenawa. හැබැයි අපිට තාම අපේ host OS එකේ idan container එකට connect wenna බැහැ. මොකද host os එක මේ process eka ගැන දන්නේ නැති නිසා.</p>
<p dir="auto">එනිසා අපිට සිද්ද වෙනවා container port එක ape host OS එකේ port එකකට   map කරන්න. මං  මේකේ 3306 කියන container eke run වෙන port එක 9000 kiyana host OS එකේ port එකකට map karala තියෙන්නේ.</p>
<p dir="auto">check running containers</p>
<pre><code>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
3788c9366954        mysql:5.7           "docker-entrypoint.s…"   2 minutes ago       Up About a minute   33060/tcp, 0.0.0.0:9000-&gt;3306/tcp   my_db

</code></pre>
<p dir="auto">now you can connect to the running container</p>
<pre><code>mysql -h 127.0.0.1 -P 9000 -uroot -p123

mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.30 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql&gt; 

</code></pre>
<p dir="auto">to stop running container,</p>
<pre><code>docker ps # list running containers
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
d3d87881b0ce        mysql:5.7           "docker-entrypoint.s…"   About an hour ago   Up About an hour    33060/tcp, 0.0.0.0:9000-&gt;3306/tcp   my_db

docker stop d3d87881b0ce # cotaniner id

</code></pre>
<p dir="auto">get all containers (running or stopped)</p>
<pre><code>docker ps -a
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS                      PORTS                                                                              NAMES
3788c9366954        mysql:5.7                    "docker-entrypoint.s…"   5 minutes ago       Up 11 seconds               33060/tcp, 0.0.0.0:9000-&gt;3306/tcp                                                  my_db
c9142a5d1251        char:latest                  "/bin/bash ./run.sh"     8 days ago          Exited (1) 8 days ago                                                                                          pensive_shtern
8266e6f237e2        5c8c4e171da6                 "/bin/bash ./run.sh"     8 days ago          Exited (1) 8 days ago       
</code></pre>
<p dir="auto">මේක docker වල basic overview එකක් විතරයි. තව ගොඩක් concepts තියනවා ඉගෙන ගන්න. මං ඒවත් ඉස්සරහට දාන්නම්.</p>
]]></description><link>https://lankadevelopers.lk/topic/586/docker-ග-න-ස-හල-න-part-01</link><generator>RSS for Node</generator><lastBuildDate>Tue, 12 May 2026 02:40:49 GMT</lastBuildDate><atom:link href="https://lankadevelopers.lk/topic/586.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 26 May 2020 20:27:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Docker ගැන සිංහලෙන් - part 01 on Sat, 27 Jun 2020 18:28:09 GMT]]></title><description><![CDATA[<p dir="auto">Thank you.. superb! so much helpful &lt;3</p>
]]></description><link>https://lankadevelopers.lk/post/3527</link><guid isPermaLink="true">https://lankadevelopers.lk/post/3527</guid><dc:creator><![CDATA[rashmiee]]></dc:creator><pubDate>Sat, 27 Jun 2020 18:28:09 GMT</pubDate></item><item><title><![CDATA[Reply to Docker ගැන සිංහලෙන් - part 01 on Mon, 22 Jun 2020 20:58:33 GMT]]></title><description><![CDATA[<p dir="auto">part 2 ekath ikmanata danna bro.</p>
]]></description><link>https://lankadevelopers.lk/post/3510</link><guid isPermaLink="true">https://lankadevelopers.lk/post/3510</guid><dc:creator><![CDATA[ciaompe]]></dc:creator><pubDate>Mon, 22 Jun 2020 20:58:33 GMT</pubDate></item><item><title><![CDATA[Reply to Docker ගැන සිංහලෙන් - part 01 on Sun, 21 Jun 2020 08:52:48 GMT]]></title><description><![CDATA[<p dir="auto">digatama damu &lt;3</p>
]]></description><link>https://lankadevelopers.lk/post/3497</link><guid isPermaLink="true">https://lankadevelopers.lk/post/3497</guid><dc:creator><![CDATA[Danuva]]></dc:creator><pubDate>Sun, 21 Jun 2020 08:52:48 GMT</pubDate></item><item><title><![CDATA[Reply to Docker ගැන සිංහලෙන් - part 01 on Fri, 19 Jun 2020 14:20:32 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://lankadevelopers.lk/uid/1140">@Thilina-jayakody</a> thanx bro</p>
]]></description><link>https://lankadevelopers.lk/post/3490</link><guid isPermaLink="true">https://lankadevelopers.lk/post/3490</guid><dc:creator><![CDATA[isuru mahesh perera]]></dc:creator><pubDate>Fri, 19 Jun 2020 14:20:32 GMT</pubDate></item><item><title><![CDATA[Reply to Docker ගැන සිංහලෙන් - part 01 on Thu, 18 Jun 2020 20:03:52 GMT]]></title><description><![CDATA[<p dir="auto">ඒක නම් ගොඩක් වැදගත්. මේක ගැන තව ලියන්න පුලුවන්නම් නියමයි.</p>
]]></description><link>https://lankadevelopers.lk/post/3485</link><guid isPermaLink="true">https://lankadevelopers.lk/post/3485</guid><dc:creator><![CDATA[Thilina jayakody]]></dc:creator><pubDate>Thu, 18 Jun 2020 20:03:52 GMT</pubDate></item><item><title><![CDATA[Reply to Docker ගැන සිංහලෙන් - part 01 on Thu, 28 May 2020 10:00:40 GMT]]></title><description><![CDATA[<p dir="auto">patta bro</p>
]]></description><link>https://lankadevelopers.lk/post/3437</link><guid isPermaLink="true">https://lankadevelopers.lk/post/3437</guid><dc:creator><![CDATA[Nubelle]]></dc:creator><pubDate>Thu, 28 May 2020 10:00:40 GMT</pubDate></item><item><title><![CDATA[Reply to Docker ගැන සිංහලෙන් - part 01 on Thu, 28 May 2020 05:43:43 GMT]]></title><description><![CDATA[<p dir="auto">Niyamai ❤️💪</p>
]]></description><link>https://lankadevelopers.lk/post/3436</link><guid isPermaLink="true">https://lankadevelopers.lk/post/3436</guid><dc:creator><![CDATA[imadusanka]]></dc:creator><pubDate>Thu, 28 May 2020 05:43:43 GMT</pubDate></item><item><title><![CDATA[Reply to Docker ගැන සිංහලෙන් - part 01 on Wed, 27 May 2020 17:13:33 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://lankadevelopers.lk/uid/27">@root</a> thanks bro</p>
]]></description><link>https://lankadevelopers.lk/post/3433</link><guid isPermaLink="true">https://lankadevelopers.lk/post/3433</guid><dc:creator><![CDATA[isuru mahesh perera]]></dc:creator><pubDate>Wed, 27 May 2020 17:13:33 GMT</pubDate></item><item><title><![CDATA[Reply to Docker ගැන සිංහලෙන් - part 01 on Wed, 27 May 2020 17:13:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://lankadevelopers.lk/uid/115">@oditha</a> thanks bro</p>
]]></description><link>https://lankadevelopers.lk/post/3432</link><guid isPermaLink="true">https://lankadevelopers.lk/post/3432</guid><dc:creator><![CDATA[isuru mahesh perera]]></dc:creator><pubDate>Wed, 27 May 2020 17:13:23 GMT</pubDate></item><item><title><![CDATA[Reply to Docker ගැන සිංහලෙන් - part 01 on Wed, 27 May 2020 08:39:12 GMT]]></title><description><![CDATA[<p dir="auto">Niyamai bro. digatama continue karamu</p>
]]></description><link>https://lankadevelopers.lk/post/3431</link><guid isPermaLink="true">https://lankadevelopers.lk/post/3431</guid><dc:creator><![CDATA[root]]></dc:creator><pubDate>Wed, 27 May 2020 08:39:12 GMT</pubDate></item><item><title><![CDATA[Reply to Docker ගැන සිංහලෙන් - part 01 on Wed, 27 May 2020 08:36:29 GMT]]></title><description><![CDATA[<p dir="auto">Elakiri bro</p>
]]></description><link>https://lankadevelopers.lk/post/3430</link><guid isPermaLink="true">https://lankadevelopers.lk/post/3430</guid><dc:creator><![CDATA[oditha]]></dc:creator><pubDate>Wed, 27 May 2020 08:36:29 GMT</pubDate></item></channel></rss>