[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-1-1-all-docker-commands-dev-used-90-percent-all--*":3,"academy-blog-translations-i6uypvwl5hxr5ic":80},{"data":4,"page":79,"perPage":79,"totalItems":79,"totalPages":79},[5],{"alt":6,"collectionId":7,"collectionName":8,"content":9,"cover_image":10,"cover_image_path":11,"created":12,"created_by":13,"expand":14,"id":73,"keywords":74,"locale":49,"published_at":75,"scheduled_at":13,"school_blog":71,"short_description":76,"slug":77,"status":69,"title":6,"updated":78,"updated_by":13,"views":72},"รวมคำสั่ง Docker ที่ใช้จริง 90% ของชีวิต Dev","sclblg987654321","school_blog_translations","\u003Ch2 data-pm-slice=\"1 1 []\">\u003Cspan>รวมคำสั่ง Docker ที่ใช้จริง 90% ของชีวิต Dev\u003C\u002Fspan>\u003C\u002Fh2>\u003Ch3>\u003Cspan>ทำไม Developer ทุกคนควรใช้ Docker\u003C\u002Fspan>\u003C\u002Fh3>\u003Cp>\u003Cspan>ในยุคที่การพัฒนาโปรแกรมเปลี่ยนผ่านสู่แนวทาง DevOps และ Microservices อย่างเต็มรูปแบบ เครื่องมืออย่าง Docker จึงกลายเป็นอาวุธสำคัญของนักพัฒนา ด้วยความสามารถในการจำลองสภาพแวดล้อมให้เหมือนกันทุกเครื่อง ทุกระบบปฏิบัติการ ลดปัญหา “รันบนเครื่องเราได้ แต่ Production พัง” ได้อย่างชะงัด\u003C\u002Fspan>\u003C\u002Fp>\u003Cp>\u003Cspan>บทความนี้จะรวมคำสั่ง Docker ที่ใช้จริงในชีวิตประจำวันของนักพัฒนา ไม่ว่าจะเป็น Backend, Frontend, Full Stack หรือแม้แต่ QA Engineer ก็สามารถนำไปใช้ได้ พร้อมเสริมด้วยแนวคิดที่เกี่ยวข้อง เช่น การจัดการ Image, Container, Volume, และ Network รวมถึงเทคนิคเพิ่มประสิทธิภาพ Dev Workflow ให้เร็วขึ้นหลายเท่า\u003C\u002Fspan>\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cfigure class=\"image image_resized\" style=\"width:75%;\">\u003Cimg style=\"aspect-ratio:768\u002F768;\" alt=\"Template Blog_11zon.webp\" src=\"https:\u002F\u002Fimagedelivery.net\u002Fg5Z0xlCQah-oO61sLqaEUA\u002Ff0080b57-6ccf-434a-f7f7-da6d4c3ea300\u002Ftwsme\" width=\"768\" height=\"768\">\u003C\u002Ffigure>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>\u003Cspan>หัวข้อที่ 1: พื้นฐานคำสั่ง Docker ที่ต้องใช้ทุกวัน\u003C\u002Fspan>\u003C\u002Fh3>\u003Ch4>\u003Cspan>1. รัน Container จาก Image\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker run -d -p 3000:3000 --name myapp node:18\u003C\u002Fcode>\u003C\u002Fpre>\u003Cul data-spread=\"false\">\u003Cli>\u003Ccode>\u003Cspan>-d\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan>: รันแบบ detached (เบื้องหลัง)\u003C\u002Fspan>\u003C\u002Fli>\u003Cli>\u003Ccode>\u003Cspan>-p\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan>: แมปพอร์ตเครื่องจริงกับใน container\u003C\u002Fspan>\u003C\u002Fli>\u003Cli>\u003Ccode>\u003Cspan>--name\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan>: ตั้งชื่อ container เพื่อเรียกใช้ง่าย\u003C\u002Fspan>\u003C\u002Fli>\u003C\u002Ful>\u003Ch4>\u003Cspan>2. ดู container ที่กำลังรันอยู่\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker ps\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>3. ดู container ทั้งหมด (รวมที่หยุดแล้ว)\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker ps -a\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>4. หยุด container\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker stop myapp\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>5. ลบ container\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker rm myapp\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>6. ดึง image จาก Docker Hub\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker pull nginx:latest\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>7. ดู image ที่มีอยู่ในเครื่อง\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker images\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>8. ลบ image ที่ไม่ใช้แล้ว\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker rmi nginx:latest\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>\u003Cspan>หัวข้อที่ 2: เทคนิค Docker สำหรับ Dev ตัวจริง\u003C\u002Fspan>\u003C\u002Fh3>\u003Ch4>\u003Cspan>1. Bind Mount: แก้โค้ดแบบ Real-time\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker run -d -v $(pwd):\u002Fapp -p 3000:3000 node:18\u003C\u002Fcode>\u003C\u002Fpre>\u003Cul data-spread=\"false\">\u003Cli>\u003Cspan>เหมาะกับงาน Dev ที่ต้องการ hot reload\u003C\u002Fspan>\u003C\u002Fli>\u003C\u002Ful>\u003Ch4>\u003Cspan>2. ใช้ Docker Compose แทนคำสั่งยาว ๆ\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\"># docker-compose.yml\nversion: '3.8'\nservices:\n  web:\n    image: node:18\n    ports:\n      - '3000:3000'\n    volumes:\n      - .:\u002Fapp\u003C\u002Fcode>\u003C\u002Fpre>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker compose up -d\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>3. ดู log ของ container\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker logs -f myapp\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>4. เข้า shell ของ container\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker exec -it myapp sh\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Cspan>หรือถ้าเป็น Linux Base image:\u003C\u002Fspan>\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker exec -it myapp bash\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>5. ตรวจสอบการใช้ทรัพยากร\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker stats\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>\u003Cspan>หัวข้อที่ 3: การจัดการ Volume และ Network\u003C\u002Fspan>\u003C\u002Fh3>\u003Ch4>\u003Cspan>1. สร้าง volume\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker volume create mydata\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>2. ใช้งาน volume กับ container\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker run -d -v mydata:\u002Fdata nginx\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>3. ดูข้อมูล volume\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker volume inspect mydata\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>4. สร้าง network แยกใช้งานเฉพาะกลุ่ม\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker network create mynetwork\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>5. ใช้งาน network กับ container\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker run -d --network=mynetwork --name=db mysql:5.7\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>\u003Cspan>หัวข้อที่ 4: Cleanup Docker แบบมือโปร\u003C\u002Fspan>\u003C\u002Fh3>\u003Ch4>\u003Cspan>1. ลบ container ที่หยุดแล้วทั้งหมด\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker container prune\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>2. ลบ image ที่ไม่ใช้งาน\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker image prune\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4>\u003Cspan>3. ลบทุกอย่างให้สะอาด (ระวัง!)\u003C\u002Fspan>\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-plaintext\">docker system prune -a\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>\u003Cspan>หัวข้อที่ 5: รวมท่า Docker ที่ Dev ใช้จริงทุกวัน\u003C\u002Fspan>\u003C\u002Fh3>\u003Cfigure class=\"table\">\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>\u003Cspan>Task\u003C\u002Fspan>\u003C\u002Fth>\u003Cth>\u003Cspan>Command\u003C\u002Fspan>\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Cspan>ดู IP ของ container\u003C\u002Fspan>\u003C\u002Ftd>\u003Ctd>\u003Ccode>\u003Cspan>docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' myapp\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cspan>คัดลอกไฟล์เข้า container\u003C\u002Fspan>\u003C\u002Ftd>\u003Ctd>\u003Ccode>\u003Cspan>docker cp .\u002Flocalfile.txt myapp:\u002Fapp\u002F\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cspan>คัดลอกไฟล์ออกจาก container\u003C\u002Fspan>\u003C\u002Ftd>\u003Ctd>\u003Ccode>\u003Cspan>docker cp myapp:\u002Fapp\u002Foutput.txt .\u002F\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cspan>เช็ก port mapping\u003C\u002Fspan>\u003C\u002Ftd>\u003Ctd>\u003Ccode>\u003Cspan>docker port myapp\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cspan>รีสตาร์ท container\u003C\u002Fspan>\u003C\u002Ftd>\u003Ctd>\u003Ccode>\u003Cspan>docker restart myapp\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Ffigure>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>\u003Cspan>หัวข้อที่ 6: Docker ใน DevOps Workflow จริง\u003C\u002Fspan>\u003C\u002Fh3>\u003Cul data-spread=\"false\">\u003Cli>\u003Cspan>ใช้ Docker ร่วมกับ GitLab CI\u002FCD, GitHub Actions\u003C\u002Fspan>\u003C\u002Fli>\u003Cli>\u003Cspan>Build image อัตโนมัติ และ push ไปยัง Docker Registry\u003C\u002Fspan>\u003C\u002Fli>\u003Cli>\u003Cspan>เขียน \u003C\u002Fspan>\u003Ccode>\u003Cspan>Dockerfile\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan> ที่ดีและปรับขนาด image ให้เล็กลงด้วย \u003C\u002Fspan>\u003Ccode>\u003Cspan>multi-stage build\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Chr>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>\u003Cspan>สรุป: Docker ไม่ได้ยาก แค่ใช้ให้ถูกจังหวะ\u003C\u002Fspan>\u003C\u002Fh3>\u003Cp>\u003Cspan>Docker คือเครื่องมือที่เปลี่ยนชีวิต Dev ให้เป็นระบบมากขึ้น เหมาะกับงานเดี่ยว งานทีม และระบบใหญ่ ๆ ที่ต้องการความแน่นอนในการ deploy บทความนี้จึงรวบรวมทุกสิ่งที่ Dev ใช้จริง 90% ในแต่ละวัน เพื่อให้คุณพร้อมใช้งานได้ทันที\u003C\u002Fspan>\u003C\u002Fp>","docker_90_dev_0e21awzx9y.jpg","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F2044zho2zxcc16l\u002Fdocker_90_dev_0e21awzx9y.jpg","2026-03-04 08:49:54.255Z","",{"keywords":15,"locale":43,"school_blog":53},[16,23,28,33,38],{"collectionId":17,"collectionName":18,"created":19,"created_by":13,"id":20,"name":21,"updated":22,"updated_by":13},"sclkey987654321","school_keywords","2026-03-04 08:44:18.652Z","jr5zczy6qrxmd88","Docker","2026-04-10 16:12:43.264Z",{"collectionId":17,"collectionName":18,"created":24,"created_by":13,"id":25,"name":26,"updated":27,"updated_by":13},"2026-03-04 08:49:53.381Z","4u65rvi7hocv2oy","Docker สำหรับนักพัฒนา","2026-04-10 16:14:13.922Z",{"collectionId":17,"collectionName":18,"created":29,"created_by":13,"id":30,"name":31,"updated":32,"updated_by":13},"2026-03-04 08:35:11.709Z","ga2eo1rr4uw66mu","DevOps","2026-04-10 16:12:39.734Z",{"collectionId":17,"collectionName":18,"created":34,"created_by":13,"id":35,"name":36,"updated":37,"updated_by":13},"2026-03-04 08:49:52.090Z","vj3fh5r9tg58zfk","Docker Commands","2026-04-10 16:14:13.522Z",{"collectionId":17,"collectionName":18,"created":39,"created_by":13,"id":40,"name":41,"updated":42,"updated_by":13},"2026-03-04 08:49:53.674Z","hx37jen9iwj79fj","รวมคำสั่ง Docker","2026-04-10 16:14:14.067Z",{"code":44,"collectionId":45,"collectionName":46,"created":47,"flag":48,"id":49,"is_default":50,"label":51,"updated":52},"th","pbc_1989393366","locales","2026-01-22 10:59:55.832Z","twemoji:flag-thailand","s8wri3bt4vgg2ji",true,"Thai","2026-04-10 15:42:46.614Z",{"category":54,"collectionId":55,"collectionName":56,"expand":57,"id":71,"views":72},"spm4l1k5bgmhmmt","pbc_2105096300","school_blogs",{"category":58},{"blogIds":59,"collectionId":60,"collectionName":61,"created":62,"created_by":13,"id":54,"image":63,"image_alt":13,"image_path":64,"label":65,"name":66,"priority":67,"publish_at":68,"scheduled_at":13,"status":69,"updated":70,"updated_by":13},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:31:18.590Z","50hyjr6os45_ayazwr5gq7.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fspm4l1k5bgmhmmt\u002F50hyjr6os45_ayazwr5gq7.png",{"en":66,"th":66},"Knowledge",0,"2026-03-18 02:25:41.222Z","published","2026-04-25 02:32:14.497Z","i6uypvwl5hxr5ic",511,"2044zho2zxcc16l",[20,25,30,35,40],"2025-04-29 09:34:15.219Z","รวบรวมทุกคำสั่ง Docker ที่นักพัฒนาใช้งานจริง ตั้งแต่พื้นฐานจนถึงเทคนิคขั้นสูง","docker-commands-dev-used-90-percent","2026-04-22 07:10:28.052Z",1,{"th":77}]