สรุปคำสั่ง docker ฉบับสายย่อ เด็กแนว
เอาที่สำคัญๆ หากินได้ยาวๆ
.
1) คำสั่งดูเลขเวอร์ชั่น docker engine ในเครื่อง
docker -v
.
2) คำสั่งล็อกอินเข้าไปใน docker hub (ที่เก็บไฟล์ image ของ docker)
docker login [OPTIONS] [SERVER]
.
3) คำสั่ง logout ออกจาก docker hub ...บาย บาย
docker logout
.
4) คำสั่งค้นหาไฟล์ image จาก docker hub
docker search
.
5) คำสั่งดาวน์โหลดไฟล์ image จาก docker hub มาที่เครื่องเรา
docker pull
.
6) คำสั่งรันไฟล์ image -> เพื่อสร้าง container (สร้างกี่ตัวก็ได้)
docker run [options]
.
7) คำสั่งดูรายชื่อไฟล์ images ที่อยู่ในเครื่องเรา
docker images
docker images --no-trunc // แสดง Images ID แบบเต็มๆ
.
😎 คำสั่งลบไฟล์ images
docker rmi
docker rmi -f
docker rmi -f $(docker images -a -q) // ลบทั้งหมด
.
9) คำสั่งดูรายชื่อ container
docker ps // แสดง container ที่ทำงานอยู่
docker ps -a // แสดงรายการ container ทั้งหมดที่ทำงานอยู่และหยุดทำงานไปแล้ว
.
10) คำสั่งลบ container
docker rm
docker rm -f
docker rm $(docker ps -a -q) // ลบทั้งหมด
docker rm $( docker ps -q -f status=exited) // ลบ continer ทั้งหมดที่ไม่ทำงาน
.
11) คำสั่งสั่งให้ container ทำงาน (สตาร์ท)
docker start
.
12) คำสั่งหยุด container (กลับมาสตาร์ทใหม่ภายหลังได้)
docker stop
docker stop $(docker ps -a -q) // หยุดการทำงาน container ทั้งหมด
.
13) คำสั่งแช่แข็ง container
docker pause
docker unpause
.
14) คำสั่งรีโมทเข้าไปใน container แล้วรันคำสั่ง เช่น รัน bash shell ของ linux เป็นต้น
docker exec -it
.
14) คำสั่งดูข้อมูลของ container
docker inspect
.
15) คำสั่งดูการใช้ทรัพยกรเครื่องของ container
docker stats // ทั้งหมด
docker stats
.
16) คำสั่งดู logs ของ container
docker logs
.
16) คำสั่งคำสั่งสร้างไฟล์ image
docker build [OPTIONS] PATH | URL | -
.
17) คำสั่ง commit ไฟล์ image ที่เราสร้าง
docker commit
.
18) คำสั่งส่่งไฟล์ image ขึ้น docker hub
docker image push [OPTIONS] NAME[:TAG]
.
++++++++++++++++++++
อธิบายเพิ่ม docker
++++++++++++++++++++
docker มันคือ container
ถ้าจะเรียกให้ถูกต้องเป๊ะๆ ก็คือ software container
.
จะคล้ายๆ Virtual Machine (VM)
แต่เบากว่า
Overhead น้อยกว่า
รันได้เร็วกว่า
.
container มันเป็นคอนเซปต์การสร้างสภาพแวดล้อมเฉพาะให้กับซอฟต์แวร์ เพื่อให้สามารถทำงานได้โดยไม่กวนกับซอฟต์แวร์ตัวอื่นบนระบบปฏิบัติการเดียวกัน
.
เช่น เครื่องลง PHP กับ Apache HTTP ไว้
คราวนี้พอจะรัน Tomcat แล้ว port มันชนกัน
เกิดอุบัติเหตุแบบนี้ ทำไงดีหว้า?
ต้องร้องเรียนตำรวจเลยไหม?
...ก็ไม่ต้อง
สามารถใช้ container เป็นอีกหนึ่งวิธีแก้ปัญหา
.
สำหรับคอนเซปต์ container
ให้นึกถึงว่าเรามีตู้ container ใส่ของ จำนวน 2 ตู้
ทั้งสองตู้ข้างในมีสภาพแวดล้อมเป็น Linux
.
- โดย container ตู้แรก จะติดตั้ง PHP กับ Apache HTTP ลงไป
- container ตู้ตัวที่สอง จะติดตั้ง Tomcat ลงไป
.
โดยทั้งสองตู้สามารถวางไว้ภายในระบบปฏิบัติการเดียวกัน
สามารถรันทำงานแยกสภาพแวดล้อมจากกันไปเลย
ไม่ชน ไม่ทะเลาะตบตีแย่งแฟนกัน
.....เฮยๆ ไม่ใช่ายแหละ ไม่แย่ง resource กัน
.
และเราก็สามารถย้ายตู้ container ที่มีซอฟต์แวร์ที่เราได้ติดตั้งลงไปนั้น
ก็สามารถย้ายตู้ไปไว้ที่เครื่องไหนก็ได้
ขอให้เครื่องนั้นๆ ติดตั้ง docker engine ก็พอ
(นำไฟล์ image ของ docker ไปรันบนเครื่องไหนก็ได้ขอให้มี docker engine)
.
.
.
อ้างอิง
- https://sites.google.com/.../chanwit/blogs/what-is-container
-http://www.siamhtml.com/getting-started-with-docker/
-https://medium.com/quintuples/รวม-docker-command-line-พื้นฐาน-74b61101effa
-https://memo8.com/docker-command/
.
.
.
✍ เรียบเรียงโดย โปรแกรมเมอร์ไทย thai programmer
.
.
.
มีปัญหาด้านไอทีให้ไปที่ลิงก์นี้
https://github.com/adminho/Thai-IT-community
จะมีกลุ่มเฟสบุ๊คต่างๆ รอคุณอยู่
สนใจกลุ่มไหนก็เข้าไปแจม
สามารถโพสต์ถามปัญหาที่สงสัยได้
จะมีเพื่อนๆ น่ารักคอยตอบเสมอ
同時也有2部Youtube影片,追蹤數超過12萬的網紅prasertcbs,也在其Youtube影片中提到,? เทคนิคต่าง ๆ ที่ใช้ในคลิป 02:22 เข้าใจ instructions และ arguments ที่สำคัญที่อยู่ใน Dockerfile 08:44 การใช้ docker build 20:20 การ push image ที่สร้...
「docker hub」的推薦目錄:
- 關於docker hub 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的精選貼文
- 關於docker hub 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
- 關於docker hub 在 BorntoDev Facebook 的最佳貼文
- 關於docker hub 在 prasertcbs Youtube 的最佳貼文
- 關於docker hub 在 prasertcbs Youtube 的最讚貼文
- 關於docker hub 在 Pushing and Pulling to and from Docker Hub 的評價
- 關於docker hub 在 Docker Hub Introduction Tutorial - YouTube 的評價
- 關於docker hub 在 Docker Hub experimental CLI tool - GitHub 的評價
- 關於docker hub 在 Docker hub vs docker cloud - Stack Overflow 的評價
- 關於docker hub 在 Build Your Docker Images Automatically When You Push on ... 的評價
- 關於docker hub 在 Sysdig TRT uncovers massive cryptomining operation ... 的評價
docker hub 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
ref: https://www.infoworld.com/article/3632142/how-docker-broke-in-half.html
這篇文章是作者訪談多位前任/現任的 Docker 員工,Docker 社群貢獻者, Docker 消費者以及市場分析師的相關心得文,目的是想要探討 Docker 商業模式的成功與失敗,到底目前 Docker 商業模式的進展是否有跡可循,以及我們可以從這些歷史決策中學到什麼?
Docker 不是輕量級虛擬化技術的開創者,但是卻是個將 Container 這個技術給推向所有開發者的重要推手,Docker 簡化整體的操作使得每個開發者都可以輕鬆的享受到 Container 的好處,但是從結果論來說, Docker 還是於 2019 年 11 月給 Mirantis 給收購了
到底 Docker 的商業模式哪一步走錯了,接下來就跟者作者一起去訪談與思考。
[Docker 的誕生之路]
Solomon Hykes(文章很多該人看法) 於 2008 年創辦一間專注提供 Platform as a Serivce 的公司, DotCloud,該公司希望讓開發者可以更簡易的去建置與部署開發的應用程式,該公司的底層技術後來也由 Docker 繼續沿用,當然創辦 Docker 的依然是 Solomon Hykes。
Docker 開源專案誕生之後吸引了全球目光,除了來自各地的使用與開發者外,大型公司如 Microsfot,AWS,IBM 等都也加入,但是就跟其他基於開源專案的軟體公司一樣, Docker 也面臨的商業模式的問題,這種類型的軟體公司到底要如何穩定獲利?
從 2021 往回看,一個很簡短的說法可以說是 Docker 的企業化管理工具 Docker Swarm 還沒有站穩腳步之時就遇到 Kubernetes 這個龐然怪獸,然後 Kubernetes 橫掃時間把所有 Docker Swarm 的市場全面清空,
當然真實版本一定更加複雜得多,絕對不是一句 Kubernetes 就可以概括的
[開源專案的商業化之路總是困難]
Docker 於 2014 年開始認真探討其商業策略,如何將其作為 Container 領頭羊的角色轉變成為一個可以帶來收入的策略,VC 創投的資金讓其有能力收購 Koality 與 Tutum,同年 Docker 也正式宣布第一個商業版本的支援計劃。
這一連串的計算誕生出了許多產品,譬如 Docker Hub 及 Docker Enterprise.
不過可惜的是上述的產品並沒有辦法從企業用戶手中帶來穩定的獲利,大部分的客戶相對於直接購買 Docker 解決方案,更傾向跟已經合作的系統整合商一起合作。
Solomon Hykes 今天夏天跟 infoworld 的一次訪談中提到,Docker 從來沒有推出一套真正的好的商業產品,原因是因為 Docker 並沒有很專注地去處理這塊需求。
Docker 嘗試每個領域都碰一小塊,但是卻發現想要同時維護一個開發者社群又要同時打造一個良好的商業產品是極度困難的, Dockre 花費大量的時間與金錢想要魚與熊掌兼得,但是最後才體會到這件事情幾乎不太可行,Hykes 也認為 Docker 應該要花更多時間去聆聽用戶的需求,而不是自己埋頭苦幹的去打造一個沒有滿足使用者需求的企業產品。
來自 Google 的開發推廣大使 Kelsev Hightower 於今年的訪談中提到,Docker 成功地解決問題,但是卻遇到了瓶頸,舉例來說,Docker 提供工具讓開發者可以 產生 Image, 提供地方儲存 Image,運行 Image 除了這些之外, Docker 還有可以發展的空間嗎?
Hykes 不贊同這個說法,譬如 RedHat 與 Pivotal 都很成功的將 Docker 整合到彼此的 PaaS 產品(OpenShift, Cloud Foundry),也成功從中獲利,所以 Docker 實際上有很多方式可以去獲利的,只是沒有成功而已。
從結果論來看, Docker 早期的商業夥伴,一家專注於 Travel 的科技公司, Amadeus 於 2015 年正式跟 Docker 分手改而投向 RedHat 的懷抱。
畢竟 RedHat 有提供更多關於 Container 相關的技術支援,畢竟對於一個想要踏入 Container 世界的企業,如何將應用程式容器化是第一步,而接下來則是更為重要的 Container Orchestration 解決方案,很明顯的 Docker 這個戰場上是完全被 Kubernetes 打趴的。
[Kubernetes 的決策]
Docker 拒絕擁抱 Kubernetes 被認為是一個致命的錯誤策略,Jérôme Petazzoni, Docker 第一位也是目前在位最久的員工提到, Docker 內部曾經針對 Kubernetes 的生態去探討過,當時內部的共識是 Kubernetes 架構過於複雜,而 Docker Swarm 的架構相對簡單,比較之下 Docker Swarm 應該更容易獲得商業上的成功。
從其他的訪談可以得知, Docker 曾經是有機會可以跟 Google 內的 Kubernetes 團隊一起合作發展 Kubernetes,並且有機會去掌握整個 Container 生態系的發展。如果這些合作可以順利發展,那 Docker GitHub 底下的第一個專案可能就會是 Kubernetes,而 Docker Swarm 可能根本就不會產生了。
Hykes 承認的說,那個時空背景(2014,2015)下, Docker 公司很難找到一個很好的 Container Orchestration 解決方案來滿足各種各戶的需求,而那時候的 Kubernetes 也很難斬釘截鐵的說就是那個解決方案, 畢竟那時候 Kubernetes 還非常早期,同時期還有很多開源專案,很難料想到
Kubernetes 最後會主宰整個 Container Orchestration 世界。
文章後半段還有非常多的討論,非常推薦大家去看全文,雖然沒有辦法改變歷史,但是從歷史中可以學到非常有趣的東西,特別是當被客戶問到 Docker/Kubernetes 的一些生態問題時,有這些歷史資料的可以讓你講起來更有迷之自信
docker hub 在 BorntoDev Facebook 的最佳貼文
โอ๊ยยยย...อยากใช้งาน Docker แบบคนอื่นเขาบ้าง แต่ศัพท์เทคนิคเยอะแยะไปหมด มึนหมดแล้ววว 😖😰
.
Don't worry จ้าเพื่อน ๆ เพราะวันนี้แอดจะมารวบรวม 10 คำศัพท์เด็ด ๆ ที่ควรรู้ก่อนจะใช้งาน Docker ให้เพื่อน ๆ มือใหม่ได้ดูกัน หากอยากรู้แล้วว่ามีอะไรบ้าง ไปดูกันเลยยย !!
.
ก่อนจะไปเข้าเนื้อหากัน เรามารู้จักเจ้า Docker กันแบบคร่าว ๆ ก่อนเนอะ
.
ลองนึกภาพง่าย ๆ เมื่อก่อนหากเราอยากรัน Service อะไรสักอย่างนึง เราจะต้องจำลองสภาพแวดล้อมของเครื่อง โดยใช้ Virtual Machine เพื่อจำลองทั้ง OS ให้รองรับกับการรัน Service นั้น ๆ แต่เจ้า Docker มันทำได้ง่ายกว่านั้น เพราะมันจะใช้การจำลองสภาพแวดล้อมบน Server ไม่ต้องใช้พื้นที่และทรัพยากรเยอะเหมือน VM อีกต่อไป แถมยังมีขนาดเล็ก ติดตั้งได้รวดเร็ว รองรับทั้ง MacOS, Windows, และ Linux นั่นเอง !! เจ๋งสุด 👍
.
🔥 ไปดูกันเลยว่ามีศัพท์อะไรที่มือใหม่ควรรู้ก่อนใช้งาน Docker บ้าง…
.
.
📃 Docker Images
.
เป็นต้นแบบที่ใช้สร้าง Docker Containers ซึ่งจะเก็บการตั้งค่าของสภาพแวดล้อม และการ Config ค่าต่าง ๆ ที่จำเป็นสำหรับการรัน Service จะทำงานเมื่อมีการเรียกใช้ที่ Docker Containers
.
.
📃 Docker Containers
.
เปรียบเสมือนกล่องที่รวบรวมแอปพลิเคชัน ค่า Config และสภาพแวดล้อมที่จำเป็นต่อการทำงาน ที่สร้างจาก Docker Images
.
.
📃 Dockerfiles
.
เป็นเอกสารที่รวบรวมการใช้งานและคำสั่งทั้งหมด เพื่อใช้ในการสร้าง Docker Images
.
.
📃Docker Registry
.
คือบริการโฮสต์ที่ใช้เก็บ Images Repository ทำให้เราสามารถ Push หรือ Pull Repository ผ่านเครือข่ายได้ สามารถใช้งานผ่าน Docker Hub และ คำสั่ง docker search
.
.
📃 Docker Repository
.
เป็นที่เก็บชุดของ Docker images สามารถทำการ Push หรือ Pull ผ่าน Docker Registry ได้
.
.
📃 Volumes
.
ข้อมูลไดเร็กทอรี่ที่อยู่ภายใน Docker Containers ใช้เพื่อรักษาข้อมูลใน Containers มีทั้งหมด 3 ประเภท คือ
🔸 Host volume - เป็น volume ของ Docker Host สามารถเข้าถึงได้จาก Containers
🔸 Named volume - เป็น volume ที่ใช้จัดการตำแหน่งบนดิกส์แบบระบุชื่อ
🔸 Anonymous volume - คล้ายกับ Named volume แต่จะไม่มีการระบุชื่อ
.
.
📃 Docker Compose
.
เป็นคำสั่งที่ใช้ในการสร้างหลาย ๆ Containers ขึ้นมาในครั้งเดียว ซึ่งจะมีการเซ็ท Config และ Service ต่าง ๆ ไว้เรียบร้อยแล้วในไฟล์ docker-compose.yml โดยไม่ต้องมานั่ง Config ทีละอันให้เสียเวลานั่นเอง
.
.
📃 Docker Swarm
.
เป็นเครื่องมือที่ช่วยรัน Docker หลาย ๆ ตัวได้พร้อมกันในสภาพแวดล้อมเดียวกัน
.
.
📃 Swarm
.
เป็นกลุ่มของ Docker Engine ที่ทำงานใน Swarm Mode
.
.
📃 Swarm Mode
.
เป็นโหมดที่ใช้จัดการ Cluster Management และ Orchestration ที่อยู่ใน Docker Engine เมื่อเราสร้าง Swarm ใหม่ หรือรวมโหนดต่าง ๆ เข้ากับ Swarm เจ้า Docker Engine ก็จะทำงานอยู่ใน Swarm Mode นั่นเอง
.
.
และทั้งหมดนี้คือคำศัพท์พื้นฐานสำหรับมือใหม่หัดใช้ Docker หวังว่าจะเป็นประโยชน์กับเพื่อน ๆ นะ หากใครมีคำอื่น ๆ อยากจะเพิ่มเติม สามารถคอมเมนต์มาพูดคุยกันได้เลย ❤️
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
#Docker #VM #BorntoDev
docker hub 在 prasertcbs Youtube 的最佳貼文
? เทคนิคต่าง ๆ ที่ใช้ในคลิป
02:22 เข้าใจ instructions และ arguments ที่สำคัญที่อยู่ใน Dockerfile
08:44 การใช้ docker build
20:20 การ push image ที่สร้างไปยัง docker hub
25:05 การ pull image จาก docker hub
28:35 การลบ image ใน docker hub
ดาวน์โหลดไฟล์ Dockerfile ที่ใช้ในคลิป ► https://bit.ly/2WGQtBd
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
สอน docker ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGJV7UpJs6NVvsf6qaKja9_
สอน Microsoft SQL Server 2012, 2014, 2016, 2017 ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn
สอน MySQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFmJDsZipFCrY6L-0RrBYLT
สอน PostgreSQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGi_NqmIu43B-PsxA0wtnyH
สอน SQLite ► https://www.youtube.com/playlist?list=PLoTScYm9O0GHjYJA4pfG38M5BcrWKf5s2
สอน SQL สำหรับ Data Science ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGq8M6HO8xrpkaRhvEBsQhw
การเชื่อมต่อกับฐานข้อมูล (SQL Server, MySQL, SQLite) ด้วย Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
การใช้ Excel ในการทำงานร่วมกับกับฐานข้อมูล (SQL Server, MySQL, Access) ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGA2sSqNRSXlw0OYuCfDwYk
#prasertcbs_SQL #prasertcbs #prasertcbs_MySQL #docker
docker hub 在 prasertcbs Youtube 的最讚貼文
? เทคนิคต่าง ๆ ที่ใช้ในคลิป
1. การ pull image จาก docker
2. การแสดง images ที่มีในเครื่อง
3. การ run postgres container
4. การทำ data persistence ด้วย volume เพื่อเก็บข้อมูลของฐานข้อมูลไว้
# script สำคัญที่ใช้ในคลิปนี้
# postgres on docker hub
https://hub.docker.com/_/postgres
# pull docker image
docker pull postgres
# list images
docker images
# run postgres on docker
docker run --name pegasus --rm -e POSTGRES_PASSWORD=banana -d -p 5432:5432 postgres
# list process
docker ps -a
# exec command in container
docker exec -it pegasus psql -U postgres
# connect to postgres from terminal
psql -U postgres -h localhost
# stop process
docker stop pegasus
# persist data (using volume)
docker run --name pegasus --rm -e POSTGRES_PASSWORD=banana -d -p 5432:5432 -v pgdatavolume:/var/lib/postgresql/data postgres
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
สอน docker ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGJV7UpJs6NVvsf6qaKja9_
สอน PostgreSQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGi_NqmIu43B-PsxA0wtnyH
สอน MySQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFmJDsZipFCrY6L-0RrBYLT
สอน Microsoft SQL Server 2012, 2014, 2016, 2017 ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn
สอน SQLite ► https://www.youtube.com/playlist?list=PLoTScYm9O0GHjYJA4pfG38M5BcrWKf5s2
สอน SQL สำหรับ Data Science ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGq8M6HO8xrpkaRhvEBsQhw
การเชื่อมต่อกับฐานข้อมูล (SQL Server, MySQL, SQLite) ด้วย Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
การใช้ Excel ในการทำงานร่วมกับกับฐานข้อมูล (SQL Server, MySQL, Access) ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGA2sSqNRSXlw0OYuCfDwYk
#prasertcbs_SQL #prasertcbs #prasertcbs_PostgreSQL #docker
docker hub 在 Docker Hub Introduction Tutorial - YouTube 的推薦與評價
In this video I provide an introduction to Docker Hub Docker remote repository. We pull an image from Docker Hub, make some edits, ... ... <看更多>
docker hub 在 Docker Hub experimental CLI tool - GitHub 的推薦與評價
The Docker Hub Tool is a CLI tool for interacting with the Docker Hub. It makes it easy to get information about your images from the terminal and to ... ... <看更多>
docker hub 在 Pushing and Pulling to and from Docker Hub 的推薦與評價
Docker Hub is the place where open Docker images are stored. When we ran our first image by typing docker run --rm -p 8787:8787 rocker/verse. ... <看更多>