28
DOCKER จัดทําโดย นางสาวกชามาศ ชอบเสียง 583020373-3 นายจิรวัฒน์ คําศิริ 583020384-8 นายณัฐพล ภิฐาน์ 583020392-9 นางสาวธาราทิพย์ สมศรี 583021136-2 นายภูวิศ ชนะพาล 583021143-5 นางสาวอุดมพร สิรินันทเกตุ 583021157-4 Group 15 Sec.1 เสนอ รศ.ดร จักรชัย โสอินทร์ รายวิชา 322222 Network I สาขาเทคโนโลยีสารสนเทศและการสืAอสาร ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยขอนแก่น

DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

DOCKER

จดทาโดย

นางสาวกชามาศ ชอบเสยง 583020373-3

นายจรวฒน คาศร 583020384-8

นายณฐพล ภฐาน 583020392-9

นางสาวธาราทพย สมศร 583021136-2

นายภวศ ชนะพาล 583021143-5

นางสาวอดมพร สรนนทเกต 583021157-4

Group 15 Sec.1

เสนอ รศ.ดร จกรชย โสอนทร

รายวชา 322222 Network I สาขาเทคโนโลยสารสนเทศและการสAอสาร ภาควชาวทยาการคอมพวเตอร

คณะวทยาศาสตร มหาวทยาลยขอนแกน

Page 2: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

คานา

รายงานเลมนD เปนสวนหนAงของรายวชา Network I ของนกศกษาสาขาเทคโนโลย

สารสนเทศและการสAอสารชDนปทA 2 จดทาขDนเพAอศกษาการทางาน และคณสมบตตางๆของ

Docker และเปนการแนะนา Tool ทAชวยในการทางานใหสะดวกและงายขDน แกผทAศกษาและ

หวงวาจะเปนประโยชนแกผทAศกษา และถาหากมขอผดพลาด ณ โอกาสนDดวย

คณะผจดทา วนทA 1 พฤษภาคม 2560

Page 3: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

สารบญ

เร�อง หนา

หลกการและเหตผล �

วตถประสงค �

ทฤษฏท�เก�ยวของ �

ความสามารถของโปรแกรมท�ทาได /

ขอดของโปรแกรม /

ขอเสยของโปรแกรม /

ความแตกตางระหวาง Virtual Machine กบ Container >

วธการตดตAง B - D

ขAนตอนการใชงาน G – �I

สราง apache sql และ php 17

สรป 22

ภาคผนวก 23

อางอง 25

Page 4: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

1

หลกการและเหตผล ในการจาลองสภาพแวดลอมขDนมาในเครAองสาหรบรน Service เพAอทAจะศกษาและทาการวเคราะหหาแนวทางการแกไขและพฒนาระบบตางๆ หรอจะเปนการปรบปรงระยะเวลาในการดาเนนงาน แนวทางในการจดสรรทรพยากรเพAอใหเกดประโยชนสงสด Docker เปน Tool ตวหนAงทAทาใหเราสามารถหอระบบของเราแลวเอาไปรนทAไหนกได ทAม Docker ตดตDงไว โดยเปนการสราง Container เพAอจาลองสภาพแวดลอมการทางานสาหรบ Service 1 ตว Docker ไมตองงอ OS ใหม ดงนDนจงไมตองเสยเวลาตดตDง ไมตองเสยเวลา config ทAสาคญใชพDนทAในการจดเกบขอมลนอยกวามาก เพราะไมตองสDนเปลองทรพยากรในการรน OS ใหมขDนมาทDงตว วตถประสงค

\. เพAอศกษาการทางาน และคณสมบตตางๆของ Docker 2. เพAอเปนการแนะนา Tool ทAชวยในการทางานใหสะดวกและงายขDน

ทฤษฎท�เก�ยวของ

Virtual Machine คอซอฟตแวรทAใชทรพยากรของเครAองคอมพวเตอรไมวาจะเปน RAM, Hard disk, CPU ในการจาลองเครAองคอมพวเตอรเสมอน ซA งจะเรยกเครAองทAถกใชทรพยากรวา Host และเรยกเครAองเสมอนวา Guest โดยในเครAอง Guest สามารถตดตDงและใชงานระบบปฏบตการไดเสมอนกบเปนซอฟตแวรหนAงของเครAองคอมพวเตอร และยงสามารถสราง Guest ไดมากกวา \ Guest ในเครAอง Host เดยวกน

Page 5: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

2

ความสามารถของโปรแกรมท�ทาได • การสราง Container เพAอจาลองสภาพแวดลอมการทางานสาหรบ Service 1 ตว • สามารถตดตDงแอปไดหลายเวอรชนในเครAองเดยว • สามารถในการควบคมใหเครAอง Development และ Production ม Environment เหมอนกนทก

ประการ

ขอดของโปรแกรม 1. เรว – ถาใครทAใช VM มากอน จะพบวามนเปนอะไรทA ชาและเสยเวลามาก ๆ กวาจะโหลดขDน แต

Docker นAนเรวมาก ๆ เพราะวา มนใช OS, CPU และ Memory รวมกนกบ Host OS ทาใหมนเบาหววเลย ตางกบ VM ทAใชทกอยางแยกกนหมด และการจาลองทDง OS กทาใหมบางอยางทAเราไมไดใช แตกตองรน ทาใหเราเสยทรพยากรไปฟร ๆ

p.มระบบ Registry – ระบบนDจะชวยใหเราสามารถตดตDงโปรแกรมหรอ Environment ทAเราตองการไดเรวขDน เพราะวามนมคนทาไวใหเราแลว โดยเราแคเพยงโหลด Image ตวนDนมา และตดตDง กสามารถใช Environment นDนไดเลย ซA งทาง Docker กจะมสAงทAเรยกวา Docker Hub อย โดยเราสามารถ Push ตว Image ทAเราสรางไวขDนไป หรอเราจะไป Pull Image ทAคนอAนสรางไวมาใชกได และตอนนDใน Docker Hub กม Image มากมายทDง Official และทAทาเองใหเราเลอกใชไดมากมาย

r.สะดวก – บางคนอาจจะจาเปนตองใช Environment ทAมโปรแกรมเยอะมาก ๆ หรอตดตDงโปรแกรมทAทายาก ๆ เชน อยากได Elasticsearch เปนคน เมAอกอน เรากตองสราง VM ขDนมาและคอยตดตDง Elasticsearch ซA งกนเวลามาก แตดวย Image สาเรจรปทาใหเราสามารถตดตDง โปรแกรม หรอตDงคา Environment ทAเราตองการไดภายในเวลาไมกAวนาท และเพยงแคไมกAคาสAงเทานDน

ขอเสยของโปรแกรม

\.Docker ถกสรางมาโดยองกบ Kernel ของ Linux ทาใหมนไมสามารถทางานบน Windows และ Mac OS X หากใชงานบนอะไรทAไมใช Linux จะตองสราง Docker Machine กอน และถาอยบน Windows การทางานจะมประสทธภาพจะไมเทากบบน Linux

Page 6: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

3

ความแตกตางระหวาง Virtual Machine กบ Container

• Container จะเปนการเพAอจาลองและควบคมสภาพแวดลอมสาหรบการรนเฉพาะบาง Service และรน service เทาทAจาเปนตองใชเทานDน ทาใหใชทรพยากรนอยกวา Virtual Machine

• Virtual Machine จะเปนการจาลอง Environment มาทDง OS รนขDนมาเปนเครAอง Server 1 เครAอง และมการรน service หลายๆ service ใน VM เดยวกน ทาใหแตละ VM ตองใชทรพยากรจานวนมาก

Page 7: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

4

วธการตดตA ง (Windows Server 2016)

• ทาการตดตD ง OneGet PowerShell Module (ใหรนบน PowerShell ทA Run As Administrator)

• เมAอขD นถามวาจะตดตD งหรอไม .ใหกด Y ตามดวย Enter

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

• จากนDนใช OneGet ในการตดตDง Docker Version ลาสด • เมAอขDนถามวาจะตดตDงหรอไม กด A ตามดวย Enter

Install-Package -Name docker -ProviderName DockerMsftProvider

• จากนDนทาการ Restart เครAอง

• หลงจาก Restart มาจะเหนวาสามารถใชคาสAง Docker บน Powershell ไดแลวดงนD

Page 8: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

5

หมายเหต : ในกรณทAรนแลว error เกAยวกบ open //./pipe/docker_engine ใหเปด firewall port 2375 ผาน powershell ทAรนดวย administrator ดงนD

# Open firewall port 2375 netsh advfirewall firewall add rule name="docker engine" dir=in action=allow protocol=TCP localport=2375 # Configure Docker daemon to listen on both pipe and TCP (replaces docker --register-service invocation above) Stop-Service docker dockerd --unregister-service dockerd -H npipe:// -H 0.0.0.0:2375 --register-service Start-Service docker

Page 9: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

6

ขAนตอนการใชงาน DOCKER

คาสAง docker run ubuntu คอ run images ubuntu จาก docker hub

คาสAง docker images เพAอแสดงขอมล images ขDนมาด

คาสAง docker ps –a คอ แสดง process ทAทางานอยท Dงหมด

Page 10: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

7

docker run –it ubuntu bash คอ run เขาไปใน Ubuntu

คาสAง ls คอ คาสAงแสดงไฟลทDงหมดทAอยใน root@7ea9e169eada

Page 11: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

8

คาสAง cd คอเขาไปในทางไฟลนDน ๆ >> cd bin คอ เขาไปในไฟล bin และคาสAง ls แสดงไฟลทDงหมดใน bin

คาสAง cd .. คอ ออกจากไฟลนDนๆ

Page 12: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

9

คาสAง cd usr/ คอ เขาไปในไฟลงานชAอ usr

คาสAง mkdir คอสรางไฟลงานขDนมา >> mkdir test สรางไฟลงานชAอ test

Page 13: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

10

คาสAง cd test เขาไปในไฟล test และ คาสAง date คอแสดงวนทA เวลา ณ ตอนนD

คาสAง exit คอ ออกจากไฟลงานตางๆ

Page 14: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

11

คาสAง docker logs และตอดวยชAอ container id คอ จะแสดงการทางานเมAอกD ทAเราทาไวในไฟลงาน test

Page 15: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

12

เขา Kitematic และมนจะแสดง containers ทAเราสรางใน docker CLI และแสดงผลการทางานเมAอคร

ถาเราจะรนอะไรขDนเวบ แคเรานาไฟลไปใสใน /website_files รปตวอยางเคยใช 2048 กเลยขDนมาดงภาพ แต

ในเวบจะไมขDนเพราะไมพบไฟลนDนๆ

Page 16: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

13

ขAนตอนการใชงาน wordpress ตวอยาง จะทาให wordpress ลDงคกบ mysql ทาเวบตวเองขDนมา

ใชคาสAง docker pull mysql จาก docker hub เพAอดง mysql มาทางาน

ใชคาสAง docker run --name wwsql -e MYSQL_ROOT_PASSWORD=1234 -d mysql:latest เพAอรน sql

และกาหนดชAอ sql และ รหสผาน mysql:latest คอการกาหนดเวอรชDน แตคาวา latest คอเวอรชAนลาสด

Page 17: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

14

ใชคาสAง docker pull wordpress คอดง images wordpress จาก docker hub มาเพAอใชงาน

Page 18: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

15

คาสAง docker run --name wlocal --link wwsql:mysql -p 8080:80 -d wordpress คอรน wordpress ใน mysql

ทAเราสรางเมAอกD ทA port 8080:80

Page 19: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

16

คาสAง docker port 786d294d3520 เพAอตรวจด port ของ local

และลองทดสอบในการรนบน browser >> IP docker 192.168.99.100:8080 จะขDนหนา wordpress แลวสราง

เวบไดแลว

Page 20: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

17

แกไขเพ�มเตม

สราง apache sql และ php

สรางไฟลชAอ Dockerfile apache-config.conf

Dockerfile

Page 21: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

18

apache-config.conf

index.php

Page 22: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

19

สราง container โดยใชคาสAง docker build -t mysite .

Page 23: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

20

รอสกพกจนเสรจ จนได mysite:latest

จง running ใชคาสAง docker run -p 8080:80 -d mysite เพAอสAงรนทA port 8080:80

ทดสอบเขา IP Docker 192.168.99.100 ตามดวย port ทAกาหนด

Page 24: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

21

Page 25: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

22

คอ เครAองเราทAอยขางนอกสด และดานในจะมเครAองทAเปน Linux เพAอไวใชรน Docker (เนAองจาก

เครAองทAใชเปน Windows เลยตองม VM ทAเปน Linux ครอบอกรอบ หรอใช DockerToolbox) และใน VM

เรารนอย 2 Container นAนคอ PHP+Apache และ MySQL โดยเราใหทDง 2 Container นD เชAอมตอกนเอง โดยทA

ไมผานเครAองเรา และทาการ Map Port ระหวางเครAองเรากบ VM ขางในดวยเชนกน นAนคอขางนอกเรยกเขา

ไปเปน 3000 แตพอเขามาขางใน ตว Linux มนจะแปลงเปน Port 80 เพAอไปเรยก Web Server ใหเราโดย

อตโนมต

สรป Docker เปน Tool ทAทาใหเราทางานไดงายขDนมาก ๆ มนชวยเราตดปญหาหลาย ๆ อยางออกไปเยอะ

มาก ๆ เชน Environment ของเครAอง Dev กบเครAอง Production ทAไมตรงกน หรอแมกระทAง เครAองทAใช Dev ดวยกนเองทAไมตรงกน และมนยงชวยใหเราจดการ Environment ทAเราใชทางานไดงายขDนดวยนะ เชน การทาเวบอย 2 ตว ตวนงตองใช php 5 รน สวนอกงานตองใช php 7 กแคสราง Container ขDนมา 2 ตว แลวพอจะใชเวอรชAนไหนกรนเวอรชAนนDนขDนมาใชได หรอจะเปนในเรAองของการ Test กได เราถาสามารถเอาเวบทAรน php 7 มาเชคกบ php5 กไดวา ถาเราเอามารนแลวจะมปญหาอะไรไหม? อะไรแบบนDกไดเชนกน นอกจากนDมนยงชวยใหเราตดตDงโปรแกรมบางอยางไดงายขDนมาก เพราะมนทาตดตDงอะไรใหเราครบ สาเรจเลย และตอนนD Docker คงเปน Tool ทAควรจะตองรจกทกคนแลว เพราะวามนเปนอะไรทAมาแรงมาก ๆ ทAชวยอานวยความสะดวกสบาย

192.168.99.100:808

Page 26: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

23

ภาคผนวก

Page 27: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

24

โปรแกรมท�ใชศกษา

Page 28: DOCKER - Department of Computer ScienceคําสัAง cd .. คือ ออกจากไฟล์นั Dนๆ . 9 คําสัAง cd usr/ คือ เข้าไปในไฟล์งานชือ

25

อางอง

https://www.jaynarol.com/understand-docker/

https://www.arnondora.in.th/docker-tip-lamp-stack-docker/

http://thaiopensource.org/มาเลน-docker-กน/

https://nasmees.wordpress.com/p�\�/��/\�/begin-docker/

https://kittinanx.blogspot.com/2015/06/dockerfile.html

https://medium.com/@meeramarygeorge/create-php-mysql-apache-development-environment-using-

docker-in-windows-�beeba����