Command
https://docs.docker.com/reference/run/- docker run [option...] <image> [command]
- -p <external-port>:<container-port> - expose container port to host
- -d - รัน container ไว้เบื้องหลัง (daemon)
- --name <container-name> - ตั้งชื่อ container
- -v <src>:<dest> - mount ไฟล์ที่ <src> ของ host กับ <dest> ของ container
- --link <container>:<hostname>
- -it - i=interactive, t=pseudo tty ใช้เมื่อต้องการทำงานแบบ interactive เช่นใช้ bash
- eg. docker run hello-world - รัน image hello-world
- docker run -it ubuntu /bin/bash - สร้าง container จาก image ubuntu แล้วรัน bash
- docker run -d --name my-nginx -p 8000:80 nginx - สร้าง container ชื่อ my-nginx จาก image nginx แล้ว expose port 80 ของ container ไปยัง port 8000 ของเครื่อง host
- docker ps [option]
- docker ps - ดูรายการ container
- docker ps -a - ดูรายการ container ทุกรายการรวมถึง container ที่ stop อยู่
- docker images [option] [repository]
- docker images - ดูรายการ image ที่มี
- docker pull <image>
- docker pull nginx - โหลด image nginx ลงในเครื่อง
- docker push <image>
- docker push my-usernam/my-image - อัพโหลด image ไปยัง docker hub (registry)
- docker build [option] <dockerfile-path>
- docker build -t my-image . - สร้าง image จาก Dockerfile ในตำแหน่งปัจจุบัน แล้วตั้งชื่อ image ที่ได้ว่า myimage
- docker stop <container> [container...]
- docker stop my-laravel - หยุดการทำงานของ container my-laravel
- docker start <container> [container...]
- docker start my-laravel - ให้ container my-laravel ที่หยุด เริ่มทำงานอีกครั้ง
- docker rm <container> [container...]
- docker rm my-laravel - ลบ container my-laravel (ต้อง stop ก่อน)
- docker rmi <image> [image...]
- docker rmi laravel - ลบ image ชื่อ laravel ออก
- docker inspect <container|image>
- docker inspect laravel - (image) ดูรายละเอียดของ image laravel
- docker inspect my-laravel - (container) ดูรายละเอียดของ container my-laravel
- docker exec [option] <container>
- docker exec -it my-nginx /bin/bash - เรียกใช้ bash จาก container my-nginx (ใส่ -it เพื่อให้ใช้งานแบบ interactive ได้)
Dockerfile
https://docs.docker.com/reference/builder/- FROM <image>
- ระบบุ base image ที่จะนำมาใช้ทำงาน
- COPY <src> <dest>
ADD <src> <dest>- คัดลอกไฟล์จาก <src> ไปเก็บไว้ใน container ที่ <dest>
- RUN <command>
- คำสั่งที่ต้องการให้ทำในขณะที่กำลังสร้าง image ( จะสร้าง Layer ใหม่ )
- CMD <command>
- คำสั่งที่ต้องการให้รันเมื่อ image ถูกรัน สามารถถูกแทนที่ด้วย [command] จากคำสั่ง docker run ได้
- ENTRYPOINT <command>
- คำสั่งที่ต้องการให้รันเมื่อ image ถูกรัน
- EXPOSE <port,...>
- ระบบว่าจะ container นี้ใช้งาน port อะไรบ้าง