Search
Search titles only
By:
Search titles only
By:
Log in
Register
Search
Search titles only
By:
Search titles only
By:
Menu
Install the app
Install
Forums
New posts
All threads
Latest threads
New posts
Trending threads
Trending
Search forums
What's new
New posts
New ads
New profile posts
Latest activity
Free Ads
Latest reviews
Search ads
Members
Current visitors
New profile posts
Search profile posts
Contact us
Latest ads
ඔයාගෙ Assignment හෝ Thesis එක හරියට හදාගමු
ErMurazor
Updated:
Saturday at 10:52 PM
Ad icon
BlackWall V2ray servers
hu KANNA
Updated:
Wednesday at 4:58 AM
Peppa Pig Family Plush Toy Set – 5 Characters
anil1961
Updated:
Sep 19, 2026
Ad icon
Express VPN PC - 1 Year Rs. 600.00
Sanathbh
Updated:
Sep 19, 2026
Ad icon
Capcut Pro 7 Days Team Plan - Rs. 3️⃣0️⃣0️⃣
Sanathbh
Updated:
Sep 19, 2026
Electronics
Vehicles
Property
Search
Reply to thread
Forums
General
Education
DevOps - The Must Know Checklist : 1 - Docker 3 වන කොටස
Get the App
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Message
<blockquote data-quote="ja2k17ja" data-source="post: 21905819" data-attributes="member: 562617"><p><strong>DevOps - The Must Know Checklist : 1 - Docker 3 වන කොටස</strong></p><p></p><p><span style="font-size: 12px"><strong><u>DevOps - The Must Know Checklist : 1 - Docker 3 වන කොටස</u></strong></span></p><p><span style="font-size: 12px"><strong><u></u></strong></span></p><p><span style="font-size: 12px"><strong><u></u></strong></span></p><p><span style="font-size: 12px">මම අද පාඩමෙන් ඔයාලට කියල දෙන්නෙ අපි Docker containers එකිනෙක කාර්යක්ෂමව සම්බන්ද (link) කරන්නෙ කොහොමද කියල. අපි මේ සදහා යොදාගන්නෙ Docker හි තිබෙන Linking feature එක. එමගින් Docker containers එකිනෙක සම්බන්ද කිරීමට මෙන්ම ඒවා අතර පණිවිඩ හුවමාරු කරගැනීමද සිදු කරන්න පුළුවන්. මුලින්ම අපි Linking feature එක <strong>යොදා නොගෙන</strong> Docker containers දෙකක් අතර තොරතුරු හුවමාරු කරගන්නා ආකාරය බලමු.</span></p><p><span style="font-size: 12px">උදාහරණයක් විදියට අපි Docker containers දෙකක් ගනිමු.</span></p><p><span style="font-size: 12px">මින් container එකක් Database server එක ලෙසද අනෙක Web server එක ලෙසද සලකමු. </span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">අපිට Web server එකේ සිට DB server එක access කරන්න සිදුවන විට අපිට මෙය ක්රම දෙකකට සිදු කරන්න පුළුවන් . මින් පළමු ක්රමය ලෙස මම කලින් පාඩමෙන් (Docker 1 වන කොටස) විස්තර කල ආකාරයට "p" flag එක බාවිතා කරල DB server එකේ listening port එක host server එකට bind කරලා එය හරහා access කිරීම සිදු කරනව. අපි දැන් පොඩ්ඩක් ඒ ගැනත් ට්රයි කරලා බලමු.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">මුලින්ම අපි දැනගනිමු අපේ Docker host server එකේ <strong>docker0</strong> කියන interface එකේ IP address එක අපිට මෙම IP තව ටික වෙලාවකින් අවශ්ය වෙනව.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>ifconfig docker0</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">අපිට මේ විදියට IP address එක විතරක් filter කරල ගන්න පුළුවන්.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>ifconfig docker0<span style="color: #ff0000">|</span>grep -Po 'inet addr:\K[\d.]+'</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">මම මෙගිදී කරලා තියෙන දේ දැන් ඔයාලට ඔයාලට තේරුම් ගන්න පුළුවන්. මම ifconfig හි stdout එක pipe කරල තියෙනව grep කමාන්ඩ් එකකට. grep තමයි filter කරල දෙන්නෙ. මම grep ගැන වැඩි විස්තරයක් මූලික UNIX / Linux කමාන්ඩ්ස් පාඩම් මාලාවෙන් ඉදිරියට කියල දෙන්නම්. දැනට මේ කරලා තියන දේ තේරුම් ගන්න බලන්න.</span></p><p><span style="font-size: 12px">අපි දැන් Docker host ගෙ <strong>docker0 </strong>interface එකේ IP address එකත් දන්නව.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">දැන් අපි MySql Docker container එකක් සද ගනිමු. මුලින්ම <strong>mysql/mysql-server</strong> කියන Docker image එක Docker Hub එකෙන් download කරගෙන වැඩේ පටන් ගනිමු.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>docker pull mysql/mysql-server</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ඊළගට අපි Docker container එක සදගනිමු (<strong>mysql-server</strong>). අපි එකට my_db කියල කියමු.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>docker run --name my_db -<span style="color: #ff0000">d</span> -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<span style="color: #9900ff">my_supiri_pass</span> mysql/mysql-server</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ඔයාල දැක්කද මම මෙහිදී d කියල flag එකක් බාවිතා කරල තියෙනව. අපි කලින් මේ d එක use කරල නැ. මේ d flag එකෙන් අපිට පුළුවන් Docker container එක daemon එකක් විදියට background එකේ රන් කරන්න. මේ කරුණත් ඔයාල මතක තියාගන්න.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">අපිට මේ විදියට background එකේ රන් වන Docker container එකක stdout එකේ තියෙන දේවල් මෙන්න මේ විදියට බලාගන්න පුළුවන්.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>docker <span style="color: #9900ff">logs</span> my_db</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">මේක නිකන් හරියට අපි monitor එකක් connect කරා වගේ වැඩක්. <img src="/styles/default/xenforo/smilies/default/happy.gif" class="smilie" loading="lazy" alt=":)" title="Happy :)" data-shortname=":)" /> අපි මෙහිදී බාවිතා කලේ <strong>docker logs</strong> කියන සබ් කමාන්ඩ් එක.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>docker ps -a</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">දැන් අපිට රන් වෙන mysql server එකක් තියෙනව. අපි ඊළගට එම server එකට ලොග් වෙලා මෙන්න මේ විදියට mysql server එක remote server එකකින් access කරන්න පුළුවන් විදියට හදා ගනිමු. මම මෙහිදී mysql ගෙ root එකවුන්ට් එක remote server එකකින් access කරන්න පුළුවන් විදියට permission සෙට් කරනව. </span></p><p><span style="font-size: 12px">මම කරලා තියෙන දේ හොදින් බලන්න. </span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>docker exec -it my_db bash</strong></span></p><p><span style="font-size: 12px">දැන් මම ඉන්නෙ <strong>my_db</strong> container එකේ bash shell එකේ.</span></p><p><span style="font-size: 12px">ට්රයි <strong>mysql -u root -p<span style="color: #9900ff">my_supiri_pass</span></strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'my_supiri_pass' WITH GRANT OPTION; FLUSH PRIVILEGES;</strong></span></p><p><span style="font-size: 12px">ට්රයි <strong>\q</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>exit</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">දැන් මම ඉන්නෙ Docker host ගෙ bash shell එකේ .</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">අපි බලමු web කියල Ubuntu image එකෙන් තව එක Docker container එකක් සාදාගන්න අපි මේ container එකේ සිට my_db එකේ mysql server එක access කරන්න බලමු.</span></p><p><span style="font-size: 12px">මෙහිදී මට web කියන container එකට mysql-client කියන application එකත් install කරගන්න වෙනව. මම මේ mysql-client ගෙන් තමයි my_db එකේ තියෙන mysql server එකට connect වෙන්නෙ.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">දැන් අපි හදමු web කියන container එක </span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>docker run -it --name web ubuntu bash</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">දැන් අපිට web ගෙ bash shell එක ලැබිල තියෙන්නෙ.</span></p><p><span style="font-size: 12px">ට්රයි <strong>apt-get update && apt-get install mysql-client -y</strong></span></p><p><span style="font-size: 12px">root@fe8964ed1b1c:/# apt-get update && apt-get install mysql-client -yGet:1 <a href="http://security.ubuntu.com/ubuntu" target="_blank">http://security.ubuntu.com/ubuntu</a> xenial-security InRelease [102 kB]</span></p><p><span style="font-size: 12px">Get:2 <a href="http://archive.ubuntu.com/ubuntu" target="_blank">http://archive.ubuntu.com/ubuntu</a> xenial InRelease [247 kB] </span></p><p><span style="font-size: 12px">Get:3 <a href="http://security.ubuntu.com/ubuntu" target="_blank">http://security.ubuntu.com/ubuntu</a> xenial-security/universe Sources [39.9 kB]</span></p><p><span style="font-size: 12px">---</span></p><p><span style="font-size: 12px">---</span></p><p><span style="font-size: 12px">---</span></p><p><span style="font-size: 12px">Setting up libedit2:amd64 (3.1-20150325-1ubuntu2) ...Setting up libnuma1:amd64 (2.0.11-1ubuntu1) ...</span></p><p><span style="font-size: 12px">Setting up libaio1:amd64 (0.3.110-2) ...</span></p><p><span style="font-size: 12px">Setting up mysql-client-core-5.7 (5.7.18-0ubuntu0.16.04.1) ...</span></p><p><span style="font-size: 12px">Setting up mysql-common (5.7.18-0ubuntu0.16.04.1) ...</span></p><p><span style="font-size: 12px">update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode</span></p><p><span style="font-size: 12px">Setting up mysql-client-5.7 (5.7.18-0ubuntu0.16.04.1) ...</span></p><p><span style="font-size: 12px">Setting up mysql-client (5.7.18-0ubuntu0.16.04.1) ...</span></p><p><span style="font-size: 12px">Processing triggers for libc-bin (2.23-0ubuntu9) ...</span></p><p><span style="font-size: 12px">root@fe8964ed1b1c:/#</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">අපි <strong>mysql-client</strong> install කරට පසු අපිට පුළුවන් web container එක තුල mysql කියන කමාන්ඩ් එක use කරන්න. දැන් අපි බලමු කොහොමද my_db එකේ තියෙන mysql server එක access කරන්නේ කියල.</span></p><p><span style="font-size: 12px">අපි දැන් ඉන්නෙ web container හි bash shell එකේ. අපි මෙහිදී Docker host ගෙ <strong>docker0</strong> interface එකේ IP address එක (172.17.0.1) යොදා ගනිමින් තමයි my_db එක access කරන්නෙ. මොකද අපි my_db ගෙ port 3306 එක Docker host ගේ සියලුම interfaces වල port 3306 ට bind කරලා තියෙන නිසා.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>mysql -<span style="color: #ff0000">h 172.17.0.1</span> -u root -p<span style="color: #9900ff">my_supiri_pass</span></strong></span></p><p><span style="font-size: 12px">ට්රයි <strong>exit</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">දැක්ක නේද අපිට පුළුවන් දැන් 172.17.0.1 හරහා my_db එකේ තියෙන mysql server එක access කරන්න. නමුත් මේ ක්රමටය වැඩ සාර්ථක ක්රමයක් අපි ඊළගට ඉගෙන ගනිමු. මම ඔයාලට මේ ක්රමය කියල දුන්නෙ. ඉතා වැදගත් කරුණක් මෙහි තියෙන නිසා. එක තමයි අපි කොහොමද Docker host ගෙ IP එකක් හරහා Docker container එකක් තුලට ප්රවේශ වන ආකාරය දැන ගන්න.</span></p><p><span style="font-size: 12px">දැන් ඔයාලට පුළුවන් මෙන්න මේ විදියට web හා my_db කියන Docker container දෙක delete කරන්න.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>docker rm web</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">nix@ja2k17ja-docker:~$ docker rm webweb</span></p><p><span style="font-size: 12px">nix@ja2k17ja-docker:~$ </span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>docker rm my_db</strong></span></p><p><span style="font-size: 12px">හ්ම් එකියන්නේ අපිට රන් වෙන Docker container එකක් <strong>docker rm</strong> කියන සබ් කමාන්ඩ් එකෙන් delete කරන්න බැ කියල. අපිට මේ Docker container එක stop කරන්න වෙනව නැතිනම් force remove කරන්න වෙනව. දැන් බලමු කොහොමද force remove කරන්නෙ කියල.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>docker rm -<span style="color: #ff0000">f</span> my_db</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">දැන් docker ps -a පාරක් දල චෙක් කරගනිමු.</span></p><p><span style="font-size: 12px">ට්රයි <strong>docker ps -a</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">හරි containers දෙකම deleted වෙලා.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">දැන් අපි බලමු Docker හි තිබෙන Linking කියන feature එක මගින් containers කොහොමද එකිනෙක සම්බන්ද කරන්නෙ කියල. </span></p><p><span style="font-size: 12px">අපි නැවත වරක් my_db කියල MySql Docker container එකක් සද ගනිමු. කලින් වතාවේ වගේ නොවේ මෙහිදී අපි MySql listing port එක Docker host ට bind කරන්නෙ නෑ.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>docker run --name my_db -d -e MYSQL_ROOT_PASSWORD=my_supiri_pass mysql/mysql-server</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">දැන් කලින් වතාවේ වාගේම root ට remote server එකකින් ලොග් වෙන්න permission දෙමු.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>docker exec -it my_db bash</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>mysql -u root -p<span style="color: #9900ff">my_supiri_pass</span></strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'my_supiri_pass' WITH GRANT OPTION; FLUSH PRIVILEGES;</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>\q</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>exit</strong></span></p><p><span style="font-size: 12px">දැන් අපි හදමු web කියන container එක, නමුත් මෙහිදී අපි my_db container එක web container එකට link කරලමයි හදන්නෙ. මම ඔයාලට කරන විදිය පෙන්වන්නම්.</span></p><p><span style="font-size: 12px">ට්රයි <strong>docker run -it --name web --<span style="color: #ff0000">link</span> my_db:db1 ubuntu bash</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ඔයාලගේ අවදානය "<strong>--<span style="color: #ff0000">link</span> my_db:db1</strong>" මෙන්න මේ කොටසට පොඩ්ඩක් යොමු කරන්න. මෙහිදී මම <span style="color: #ff0000">link </span><span style="color: #000000">කියන flag එක යොදාගෙන තමයි </span><strong>my_db </strong>එක <strong>web </strong>එකට සම්බන්ද කලේ. මෙහි දී link flag එක බාවිතා කරන ආකාරයක් තිබෙනව අපිට එය මේ විදියට නිරුපනය කරන්න පුළුවන් --<strong>link</strong> <source container එකේ නම><strong><span style="color: #0000ff">:</span></strong><නව container එක තුලදී source container එක නියෝජනය කිරීමට යොදන නම්></span></p><p><span style="font-size: 12px"><නව container එක තුලදී source container එක නියෝජනය කිරීමට යොදන නම් (alias) > අපිට Database එක connect කරන විට Database host name එක විදියට web container එක තුල දී බාවිතා කරන්න පුළුවන්.</span></p><p><span style="font-size: 12px">අපි මේ විදියට link flag එක යොදාගත් විට අපේ web container එකේ /etc/hosts file එකට ඉබේම <strong>my_db</strong> sever එකේ IP address එක ඇතුලත් වෙනවා.</span></p><p><span style="font-size: 12px">ට්රයි cat /etc/hosts</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ඒවගේම web container එකේ වෙනම Environmental variables ටිකකුත් සෙට් වෙනව. අපිට ඒ ටික මේ විදියට බලා ගන්න පුළුවන්.</span></p><p><span style="font-size: 12px">ට්රයි <strong>env|grep DB1</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">මෙහි DB1 කියල පෙන්නන්නෙ අපි දීපු alias එක (<නව container එක තුලදී source container එක නියෝජනය කිරීමට යොදන නම්>)</span></p><p><span style="font-size: 12px">දැන් අපි web container එකට mysql-client install කරල db1 හෙවත් my_db එකට connect වෙන්න බලමු.</span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>apt-get update && apt-get install mysql-client -y</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">අපි <strong>mysql-client</strong> install කරට පසු අපිට පුළුවන් web container එක තුල mysql කමාන්ඩ් එක use කරල db1 (my_db) එකේ තියෙන MySql server එක access කරන්න. අපි මෙහිදී my_db හි IP වෙනුවට alias යොදාගෙන තමයි connect වෙන්නෙ.ට්රයි <strong>mysql -<span style="color: #000000">h</span><span style="color: #0000ff"> db1</span> -u root -pmy_supiri_pass</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ට්රයි <strong>\q</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">දැන් මම web container එකෙන් exit වෙලා හදපු Docker containers සියල්ලම මේ විදියට delete කරල දානව.</span></p><p><span style="font-size: 12px">ට්රයි <strong>exit</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">delete කරන්න කලින් docker ps -a පාරක් දල බලමු </span></p><p><span style="font-size: 12px">ට්රයි <strong>docker ps -a</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">දැන් delete කරමු.</span></p><p><span style="font-size: 12px">ට්රයි <strong>docker rm -f $(<span style="color: #ff0000">docker ps -aq</span>)</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">ඔයාල මේ කමාන්ඩ් එක වැඩ කරන ආකාරය තේරුම් ගන්න උත්සාහ කරන්න. පොඩි උදව්වක් දෙන්නම්. delete කරන්න කලින් "docker ps -aq" මේ කමාන්ඩ් එක මුලින් දීල බලන්න.</span></p><p><span style="font-size: 12px">එතකොට ලැබෙන output එක බැලුවම ඔයාලට තේරුම් ගන්න පුළුවන්. ඊට පස්සෙ සම්පූර්ණ කමාන්ඩ් එකම දීල delete කරල දාන්න.</span></p><p><span style="font-size: 12px">අන්තිමටම docker ps -a පාරක් දල චෙක් කරගන්න.</span></p><p><span style="font-size: 12px">ට්රයි <strong>docker ps -a</strong></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px">සියලුම Docker containers ටික deleted !</span></p><p><span style="font-size: 12px">අපි Docker 4 වන කොටසින් හමුවෙමු.</span></p><p><span style="font-size: 12px">ස්තුතියි!</span></p></blockquote><p></p>
[QUOTE="ja2k17ja, post: 21905819, member: 562617"] [b]DevOps - The Must Know Checklist : 1 - Docker 3 වන කොටස[/b] [SIZE="3"][b][u]DevOps - The Must Know Checklist : 1 - Docker 3 වන කොටස[/u][/b] [b][u] [/u][/b] මම අද පාඩමෙන් ඔයාලට කියල දෙන්නෙ අපි Docker containers එකිනෙක කාර්යක්ෂමව සම්බන්ද (link) කරන්නෙ කොහොමද කියල. අපි මේ සදහා යොදාගන්නෙ Docker හි තිබෙන Linking feature එක. එමගින් Docker containers එකිනෙක සම්බන්ද කිරීමට මෙන්ම ඒවා අතර පණිවිඩ හුවමාරු කරගැනීමද සිදු කරන්න පුළුවන්. මුලින්ම අපි Linking feature එක [b]යොදා නොගෙන[/b] Docker containers දෙකක් අතර තොරතුරු හුවමාරු කරගන්නා ආකාරය බලමු. උදාහරණයක් විදියට අපි Docker containers දෙකක් ගනිමු. මින් container එකක් Database server එක ලෙසද අනෙක Web server එක ලෙසද සලකමු. අපිට Web server එකේ සිට DB server එක access කරන්න සිදුවන විට අපිට මෙය ක්රම දෙකකට සිදු කරන්න පුළුවන් . මින් පළමු ක්රමය ලෙස මම කලින් පාඩමෙන් (Docker 1 වන කොටස) විස්තර කල ආකාරයට "p" flag එක බාවිතා කරල DB server එකේ listening port එක host server එකට bind කරලා එය හරහා access කිරීම සිදු කරනව. අපි දැන් පොඩ්ඩක් ඒ ගැනත් ට්රයි කරලා බලමු. මුලින්ම අපි දැනගනිමු අපේ Docker host server එකේ [b]docker0[/b] කියන interface එකේ IP address එක අපිට මෙම IP තව ටික වෙලාවකින් අවශ්ය වෙනව. ට්රයි [b]ifconfig docker0[/b] අපිට මේ විදියට IP address එක විතරක් filter කරල ගන්න පුළුවන්. ට්රයි [b]ifconfig docker0[color=#ff0000]|[/color]grep -Po 'inet addr:\K[\d.]+'[/b] මම මෙගිදී කරලා තියෙන දේ දැන් ඔයාලට ඔයාලට තේරුම් ගන්න පුළුවන්. මම ifconfig හි stdout එක pipe කරල තියෙනව grep කමාන්ඩ් එකකට. grep තමයි filter කරල දෙන්නෙ. මම grep ගැන වැඩි විස්තරයක් මූලික UNIX / Linux කමාන්ඩ්ස් පාඩම් මාලාවෙන් ඉදිරියට කියල දෙන්නම්. දැනට මේ කරලා තියන දේ තේරුම් ගන්න බලන්න. අපි දැන් Docker host ගෙ [b]docker0 [/b]interface එකේ IP address එකත් දන්නව. දැන් අපි MySql Docker container එකක් සද ගනිමු. මුලින්ම [b]mysql/mysql-server[/b] කියන Docker image එක Docker Hub එකෙන් download කරගෙන වැඩේ පටන් ගනිමු. ට්රයි [b]docker pull mysql/mysql-server[/b] ඊළගට අපි Docker container එක සදගනිමු ([b]mysql-server[/b]). අපි එකට my_db කියල කියමු. ට්රයි [b]docker run --name my_db -[color=#ff0000]d[/color] -p 3306:3306 -e MYSQL_ROOT_PASSWORD=[color=#9900ff]my_supiri_pass[/color] mysql/mysql-server[/b] ඔයාල දැක්කද මම මෙහිදී d කියල flag එකක් බාවිතා කරල තියෙනව. අපි කලින් මේ d එක use කරල නැ. මේ d flag එකෙන් අපිට පුළුවන් Docker container එක daemon එකක් විදියට background එකේ රන් කරන්න. මේ කරුණත් ඔයාල මතක තියාගන්න. අපිට මේ විදියට background එකේ රන් වන Docker container එකක stdout එකේ තියෙන දේවල් මෙන්න මේ විදියට බලාගන්න පුළුවන්. ට්රයි [b]docker [color=#9900ff]logs[/color] my_db[/b] මේක නිකන් හරියට අපි monitor එකක් connect කරා වගේ වැඩක්. :) අපි මෙහිදී බාවිතා කලේ [b]docker logs[/b] කියන සබ් කමාන්ඩ් එක. ට්රයි [b]docker ps -a[/b] දැන් අපිට රන් වෙන mysql server එකක් තියෙනව. අපි ඊළගට එම server එකට ලොග් වෙලා මෙන්න මේ විදියට mysql server එක remote server එකකින් access කරන්න පුළුවන් විදියට හදා ගනිමු. මම මෙහිදී mysql ගෙ root එකවුන්ට් එක remote server එකකින් access කරන්න පුළුවන් විදියට permission සෙට් කරනව. මම කරලා තියෙන දේ හොදින් බලන්න. ට්රයි [b]docker exec -it my_db bash[/b] දැන් මම ඉන්නෙ [b]my_db[/b] container එකේ bash shell එකේ. ට්රයි [b]mysql -u root -p[color=#9900ff]my_supiri_pass[/color][/b] ට්රයි [b]GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'my_supiri_pass' WITH GRANT OPTION; FLUSH PRIVILEGES;[/b] ට්රයි [b]\q[/b] ට්රයි [b]exit[/b] දැන් මම ඉන්නෙ Docker host ගෙ bash shell එකේ . අපි බලමු web කියල Ubuntu image එකෙන් තව එක Docker container එකක් සාදාගන්න අපි මේ container එකේ සිට my_db එකේ mysql server එක access කරන්න බලමු. මෙහිදී මට web කියන container එකට mysql-client කියන application එකත් install කරගන්න වෙනව. මම මේ mysql-client ගෙන් තමයි my_db එකේ තියෙන mysql server එකට connect වෙන්නෙ. දැන් අපි හදමු web කියන container එක ට්රයි [b]docker run -it --name web ubuntu bash[/b] දැන් අපිට web ගෙ bash shell එක ලැබිල තියෙන්නෙ. ට්රයි [b]apt-get update && apt-get install mysql-client -y[/b] root@fe8964ed1b1c:/# apt-get update && apt-get install mysql-client -yGet:1 [url]http://security.ubuntu.com/ubuntu[/url] xenial-security InRelease [102 kB] Get:2 [url]http://archive.ubuntu.com/ubuntu[/url] xenial InRelease [247 kB] Get:3 [url]http://security.ubuntu.com/ubuntu[/url] xenial-security/universe Sources [39.9 kB] --- --- --- Setting up libedit2:amd64 (3.1-20150325-1ubuntu2) ...Setting up libnuma1:amd64 (2.0.11-1ubuntu1) ... Setting up libaio1:amd64 (0.3.110-2) ... Setting up mysql-client-core-5.7 (5.7.18-0ubuntu0.16.04.1) ... Setting up mysql-common (5.7.18-0ubuntu0.16.04.1) ... update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode Setting up mysql-client-5.7 (5.7.18-0ubuntu0.16.04.1) ... Setting up mysql-client (5.7.18-0ubuntu0.16.04.1) ... Processing triggers for libc-bin (2.23-0ubuntu9) ... root@fe8964ed1b1c:/# අපි [b]mysql-client[/b] install කරට පසු අපිට පුළුවන් web container එක තුල mysql කියන කමාන්ඩ් එක use කරන්න. දැන් අපි බලමු කොහොමද my_db එකේ තියෙන mysql server එක access කරන්නේ කියල. අපි දැන් ඉන්නෙ web container හි bash shell එකේ. අපි මෙහිදී Docker host ගෙ [b]docker0[/b] interface එකේ IP address එක (172.17.0.1) යොදා ගනිමින් තමයි my_db එක access කරන්නෙ. මොකද අපි my_db ගෙ port 3306 එක Docker host ගේ සියලුම interfaces වල port 3306 ට bind කරලා තියෙන නිසා. ට්රයි [b]mysql -[color=#ff0000]h 172.17.0.1[/color] -u root -p[color=#9900ff]my_supiri_pass[/color][/b] ට්රයි [b]exit[/b] දැක්ක නේද අපිට පුළුවන් දැන් 172.17.0.1 හරහා my_db එකේ තියෙන mysql server එක access කරන්න. නමුත් මේ ක්රමටය වැඩ සාර්ථක ක්රමයක් අපි ඊළගට ඉගෙන ගනිමු. මම ඔයාලට මේ ක්රමය කියල දුන්නෙ. ඉතා වැදගත් කරුණක් මෙහි තියෙන නිසා. එක තමයි අපි කොහොමද Docker host ගෙ IP එකක් හරහා Docker container එකක් තුලට ප්රවේශ වන ආකාරය දැන ගන්න. දැන් ඔයාලට පුළුවන් මෙන්න මේ විදියට web හා my_db කියන Docker container දෙක delete කරන්න. ට්රයි [b]docker rm web[/b] nix@ja2k17ja-docker:~$ docker rm webweb nix@ja2k17ja-docker:~$ ට්රයි [b]docker rm my_db[/b] හ්ම් එකියන්නේ අපිට රන් වෙන Docker container එකක් [b]docker rm[/b] කියන සබ් කමාන්ඩ් එකෙන් delete කරන්න බැ කියල. අපිට මේ Docker container එක stop කරන්න වෙනව නැතිනම් force remove කරන්න වෙනව. දැන් බලමු කොහොමද force remove කරන්නෙ කියල. ට්රයි [b]docker rm -[color=#ff0000]f[/color] my_db[/b] දැන් docker ps -a පාරක් දල චෙක් කරගනිමු. ට්රයි [b]docker ps -a[/b] හරි containers දෙකම deleted වෙලා. දැන් අපි බලමු Docker හි තිබෙන Linking කියන feature එක මගින් containers කොහොමද එකිනෙක සම්බන්ද කරන්නෙ කියල. අපි නැවත වරක් my_db කියල MySql Docker container එකක් සද ගනිමු. කලින් වතාවේ වගේ නොවේ මෙහිදී අපි MySql listing port එක Docker host ට bind කරන්නෙ නෑ. ට්රයි [b]docker run --name my_db -d -e MYSQL_ROOT_PASSWORD=my_supiri_pass mysql/mysql-server[/b] දැන් කලින් වතාවේ වාගේම root ට remote server එකකින් ලොග් වෙන්න permission දෙමු. ට්රයි [b]docker exec -it my_db bash[/b] ට්රයි [b]mysql -u root -p[color=#9900ff]my_supiri_pass[/color][/b] ට්රයි [b]GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'my_supiri_pass' WITH GRANT OPTION; FLUSH PRIVILEGES;[/b] ට්රයි [b]\q[/b] ට්රයි [b]exit[/b] දැන් අපි හදමු web කියන container එක, නමුත් මෙහිදී අපි my_db container එක web container එකට link කරලමයි හදන්නෙ. මම ඔයාලට කරන විදිය පෙන්වන්නම්. ට්රයි [b]docker run -it --name web --[color=#ff0000]link[/color] my_db:db1 ubuntu bash[/b] ඔයාලගේ අවදානය "[b]--[color=#ff0000]link[/color] my_db:db1[/b]" මෙන්න මේ කොටසට පොඩ්ඩක් යොමු කරන්න. මෙහිදී මම [color=#ff0000]link [/color][color=#000000]කියන flag එක යොදාගෙන තමයි [/color][b]my_db [/b]එක [b]web [/b]එකට සම්බන්ද කලේ. මෙහි දී link flag එක බාවිතා කරන ආකාරයක් තිබෙනව අපිට එය මේ විදියට නිරුපනය කරන්න පුළුවන් --[b]link[/b] <source container එකේ නම>[b][color=#0000ff]:[/color][/b]<නව container එක තුලදී source container එක නියෝජනය කිරීමට යොදන නම්> <නව container එක තුලදී source container එක නියෝජනය කිරීමට යොදන නම් (alias) > අපිට Database එක connect කරන විට Database host name එක විදියට web container එක තුල දී බාවිතා කරන්න පුළුවන්. අපි මේ විදියට link flag එක යොදාගත් විට අපේ web container එකේ /etc/hosts file එකට ඉබේම [b]my_db[/b] sever එකේ IP address එක ඇතුලත් වෙනවා. ට්රයි cat /etc/hosts ඒවගේම web container එකේ වෙනම Environmental variables ටිකකුත් සෙට් වෙනව. අපිට ඒ ටික මේ විදියට බලා ගන්න පුළුවන්. ට්රයි [b]env|grep DB1[/b] මෙහි DB1 කියල පෙන්නන්නෙ අපි දීපු alias එක (<නව container එක තුලදී source container එක නියෝජනය කිරීමට යොදන නම්>) දැන් අපි web container එකට mysql-client install කරල db1 හෙවත් my_db එකට connect වෙන්න බලමු. ට්රයි [b]apt-get update && apt-get install mysql-client -y[/b] අපි [b]mysql-client[/b] install කරට පසු අපිට පුළුවන් web container එක තුල mysql කමාන්ඩ් එක use කරල db1 (my_db) එකේ තියෙන MySql server එක access කරන්න. අපි මෙහිදී my_db හි IP වෙනුවට alias යොදාගෙන තමයි connect වෙන්නෙ.ට්රයි [b]mysql -[color=#000000]h[/color][color=#0000ff] db1[/color] -u root -pmy_supiri_pass[/b] ට්රයි [b]\q[/b] දැන් මම web container එකෙන් exit වෙලා හදපු Docker containers සියල්ලම මේ විදියට delete කරල දානව. ට්රයි [b]exit[/b] delete කරන්න කලින් docker ps -a පාරක් දල බලමු ට්රයි [b]docker ps -a[/b] දැන් delete කරමු. ට්රයි [b]docker rm -f $([color=#ff0000]docker ps -aq[/color])[/b] ඔයාල මේ කමාන්ඩ් එක වැඩ කරන ආකාරය තේරුම් ගන්න උත්සාහ කරන්න. පොඩි උදව්වක් දෙන්නම්. delete කරන්න කලින් "docker ps -aq" මේ කමාන්ඩ් එක මුලින් දීල බලන්න. එතකොට ලැබෙන output එක බැලුවම ඔයාලට තේරුම් ගන්න පුළුවන්. ඊට පස්සෙ සම්පූර්ණ කමාන්ඩ් එකම දීල delete කරල දාන්න. අන්තිමටම docker ps -a පාරක් දල චෙක් කරගන්න. ට්රයි [b]docker ps -a[/b] සියලුම Docker containers ටික deleted ! අපි Docker 4 වන කොටසින් හමුවෙමු. ස්තුතියි![/SIZE] [/QUOTE]
Insert quotes…
Verification
Payakata winadi keeyak tibeda?
Post reply
Top
Bottom