สรุปคำสั่ง 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
จะมีกลุ่มเฟสบุ๊คต่างๆ รอคุณอยู่
สนใจกลุ่มไหนก็เข้าไปแจม
สามารถโพสต์ถามปัญหาที่สงสัยได้
จะมีเพื่อนๆ น่ารักคอยตอบเสมอ
同時也有6部Youtube影片,追蹤數超過12萬的網紅prasertcbs,也在其Youtube影片中提到,? เทคนิคต่าง ๆ ที่ใช้ในคลิป 1. การ run postgresql container พร้อมกำหนด volumne สำหรับ persist data 2. การใช้ pgadmin4 เพื่อบริหารจัดการ PostgreSQL 3. ...
「docker container run」的推薦目錄:
- 關於docker container run 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的精選貼文
- 關於docker container run 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最讚貼文
- 關於docker container run 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於docker container run 在 prasertcbs Youtube 的精選貼文
- 關於docker container run 在 prasertcbs Youtube 的最佳解答
- 關於docker container run 在 prasertcbs Youtube 的最佳貼文
- 關於docker container run 在 How to Run Container in Background Using the “docker run ... 的評價
docker container run 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最讚貼文
สรุปคำสั่ง 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 แบบเต็มๆ
.
8) คำสั่งลบไฟล์ 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/site/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
docker container run 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
ref: https://sysdig.com/blog/dockerfile-best-practices/
如果你常用到容器化、微服務架構,這些輕量化的架構當碰到問題時,背後的資安事件調查、報告、修復卻是影響甚鉅。然而,這些影響都可以透過「把安全意識擺在開發階段 (shifting left security)」來降低風險,而這篇文章就會講述 Dockerfile 的最佳實作手段有哪一些。
首先,我們會從幾個大面向來說明各種控制安全風險的細節,像是權限控管、降低攻擊層面、預防機敏資料洩漏,以及在發布 container image 時的注意事項。而你需要特別注意的是,其實 Dockerfile 也只是算是開發階段的一部份,所以這邊能提醒到的內容都屬於部署前(特別是開發階段)的準備。以下共提及 20 個你可以注意的重點,但因為篇幅較長,筆者將選出較重要的幾個來談談。
讓我們從「權限控管」說起:
Rootless container
根據報告結果顯示,有超過 58% 的 image 都是用 root 作為執行服務的使用者,所以在此也會建議透過 USER 參數來設定容器的預設使用者,同時,也可以利用執行環境/架構的設定來避免容器的預設使用者是 root。
Make executables owned by root and not writable
服務的 binary file 應該避免被任何人修改,容器的預設使用者只需要執行服務的權限,而不是擁有權。
至於「減少攻擊面」的部分:
Multistage builds小
在 image 的建立,可以透過 multistage build 來建立很多層 container,例如在第一層安裝編譯所需的套件,而第二層則只需安裝 runtime 所需的套件(如 openssl 等),再複製第一層所編譯出來的執行檔就可以了。其餘的因開發/編譯所安裝的套件皆不需要放在最後的 image,這樣同時也可以把 image 的大小縮小。
Distroless & Truested image
採用最小/最輕量化的 base image 來作為你打造 image 的基礎,同時使用可信任來源的 image,避免不小心在未知的情況引入好幾個潛在的安全威脅。(在原文中,sysdig 也使用了自身開發的工具來檢測 image 是否有安全問題,如果有需要也能參考看看)
而再來關於「機敏資訊」的部分:
Copy
當你在從你的開發環境複製檔案到 image 當中時,需要非常小心,因為你很可能一不小心就把你的密碼、開發環境的 token、API key 等資訊複製進去了。而且不要以為把 container 裡面的檔案刪掉就沒事了,別忘了 container image 是一層一層堆疊起來的,就算刪掉了,還是能在前面的 layer 裡面找到。
但如果還是有需要用到這些機敏資料,也可以考慮使用環境變數(docker run -e 引入),或是 Docker secret、Kubernetes secret 也能夠幫你引入這些參數。如果是設定檔的話,則可以用 mount 的方式來掛載到你的 container 裡面。
總而言之,你的 image 裡面不該有任何機敏資料、設定檔,開發服務時讓服務在 runtime 的時候可以接受來自環境變數的參數才是相對安全的。
其他的部分:
其實文章當中還有提到很多製作 image 的注意事項,像是在 deployment 階段,可能你部署的 latest 與實際的 latest 因時間差而不同。又或是在 image 裡面加上 health check,也才能做到狀況監測。
在容器化服務的時代,開發者不僅需要具備撰寫開發程式的能力,也要對於虛擬化環境有足夠的理解,否則,在對架構不熟的情況就將服務部署上去,或把 image 推送到公開的 registry,都可能造成重要的資料外洩與潛在的資安危機。
docker container run 在 prasertcbs Youtube 的精選貼文
? เทคนิคต่าง ๆ ที่ใช้ในคลิป
1. การ run postgresql container พร้อมกำหนด volumne สำหรับ persist data
2. การใช้ pgadmin4 เพื่อบริหารจัดการ PostgreSQL
3. การใช้ docker cp เพื่อทำการ copy ไฟล์ระหว่าง host และ container
# script สำคัญที่ใช้ในคลิปนี้
# check docker version
docker --version
# run postgresql
docker run --rm --name pegasus -e POSTGRES_PASSWORD=banana -d -p 5432:5432 -v pgvolume:/var/lib/postgresql/data postgres
# run pgadmin4
docker run -p 80:80 --name pg4 -e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' -e 'PGADMIN_DEFAULT_PASSWORD=banana' -d dpage/pgadmin4
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► 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
สอน Microsoft SQL Server 2012, 2014, 2016, 2017 ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn
สอน MySQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFmJDsZipFCrY6L-0RrBYLT
สอน 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 container run 在 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 container run 在 prasertcbs Youtube 的最佳貼文
? เทคนิคต่าง ๆ ที่ใช้ในคลิป
1. การ pull image จาก docker
2. การแสดง images ที่มีในเครื่อง
3. การ run mysql container
4. การทำ data persistence ด้วย volume เพื่อเก็บข้อมูลของฐานข้อมูลไว้
# script สำคัญที่ใช้ในคลิปนี้
docker --version
# pull docker image
docker pull mysql
# list images
docker images
# run mysql on docker
docker run --name dolphin --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=banana -d mysql
# list processes
docker ps -a
# exec command in container
docker exec -it dolphin mysql -u root -p
# connect to mysql from terminal
* mysql -u root -p -h localhost -P 3306 --protocol=tcp
* mysql -u root -p -P 3306 --protocol=tcp
* mysqlsh root@localhost:3306 --sql
# stop process
docker stop dolphin
# persist data (using volume)
docker run --name dolphin --rm -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=banana -v mysqlvolume:/var/lib/mysql mysql
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
สอน docker ► https://www.youtube.com/watch?v=CFIwQvBY_MM&list=PLoTScYm9O0GGJV7UpJs6NVvsf6qaKja9_
สอน MySQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFmJDsZipFCrY6L-0RrBYLT
สอน PostgreSQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGi_NqmIu43B-PsxA0wtnyH
สอน 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_MySQL #docker
docker container run 在 How to Run Container in Background Using the “docker run ... 的必吃
In this tutorial, you will learn how to run a container in the background using the " docker run " command. When you run a Docker container ... ... <看更多>