Difference between revisions of "Docker"
From CMU ITSC Network
Line 50: | Line 50: | ||
== Work Shop 2 : คำสั่งพื้นฐาน == | == Work Shop 2 : คำสั่งพื้นฐาน == | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | |Command | ||
+ | |Description | ||
+ | |- | ||
+ | |'''docker build''' | ||
+ | |Build an image from a Dockerfile | ||
+ | |- | ||
+ | |'''docker commit''' | ||
+ | |Create a new image from a container’s changes | ||
+ | |- | ||
+ | |'''docker container''' | ||
+ | |Manage containers | ||
+ | |- | ||
+ | |'''docker cp''' | ||
+ | |Copy files/folders between a container and the local filesystem | ||
+ | |- | ||
+ | |'''docker exec''' | ||
+ | |Run a command in a running container | ||
+ | |- | ||
+ | |'''docker image''' | ||
+ | |Manage images | ||
+ | |- | ||
+ | |'''docker images''' | ||
+ | |List images | ||
+ | |- | ||
+ | |'''docker inspect''' | ||
+ | |Return low-level information on Docker objects | ||
+ | |- | ||
+ | |'''docker logs''' | ||
+ | |Fetch the logs of a container | ||
+ | |- | ||
+ | |'''docker network''' | ||
+ | |Manage networks | ||
+ | |- | ||
+ | |'''docker ps''' | ||
+ | |List containers | ||
+ | |- | ||
+ | |'''docker pull''' | ||
+ | |Pull an image or a repository from a registry | ||
+ | |- | ||
+ | |'''docker push''' | ||
+ | |Push an image or a repository to a registry | ||
+ | |- | ||
+ | |'''docker restart''' | ||
+ | |Restart one or more containers | ||
+ | |- | ||
+ | |'''docker rm''' | ||
+ | |Remove one or more containers | ||
+ | |- | ||
+ | |'''docker rmi''' | ||
+ | |Remove one or more images | ||
+ | |- | ||
+ | |'''docker run''' | ||
+ | |Run a command in a new container | ||
+ | |- | ||
+ | |'''docker stats''' | ||
+ | |Display a live stream of container(s) resource usage statistics | ||
+ | |- | ||
+ | |'''docker stop''' | ||
+ | |Stop one or more running containers | ||
+ | |- | ||
+ | |'''docker tag''' | ||
+ | |Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE | ||
+ | |- | ||
+ | |'''docker top''' | ||
+ | |Display the running processes of a container | ||
+ | |- | ||
+ | |'''docker volume''' | ||
+ | |Manage volumes | ||
+ | |} | ||
+ | https://docs.docker.com/engine/reference/commandline/docker/ |
Revision as of 06:16, 8 March 2019
Docker คืออะไร
- Software Container เป็นการสร้างสภาพแวดล้อมสำหรับ software โดยแยกออกออกมาเพื่อไม่ให้กวนกับ software อื่น ๆ บนระบบปฏิบัติการเดียวกัน สามารถนำ Container ไปทำงานบนเครื่องไหนก็ได้จะได้ผลเหมือนกัน
- Docker เป็น engine ในการจัดการ Software Container ที่ใช้งานได้ง่าย ไม่ซับซ้อน เป็นที่แพร่หลาย
- Container VS VM
*image from https://www.docker.com
ปัญหาที่เจอบ่อย
- ต้องติดตั้ง ตั้งค่า server ที่จะรัน Application
- ไม่สามารถติดตั้งหรืออัพเกรด Library บางอย่างบน OS ได้เนื่องจากกระทบกับ Application อื่น
- เครื่อง Dev กับ Production ไม่เหมือนกัน
Docker Architecture
Docker Engine
- Docker Client คือพวก CLI ของ Docker ที่ใช้ในการจัดการ
- Docker Daemon คือ service ของ Docker ที่รันบน Server เราจะเรียก Server นี้ว่า Docker Machine
Docker Hub
- เป็น Repository หรือเรียกว่า Registry ทำหน้าที่ให้บริการ Docker Image มี Image ของผู้พัฒนาโปรแกรมต่าง ๆ ให้ใช้งาน มีการจัดเก็บ version ของ image อย่างเป็นระบบ มีเอกสารคู่มือการใช้งาน Image
โดยให้บริการที่ https://hub.docker.com ใช้งานได้ฟรี
- สามารถสร้าง Private Registry บน Server เองได้
Docker Image
- เป็น Template ที่สร้างขึ้นโดยนักพัฒนาเป็นชุดของ Software/Library สามารถดึง(pull)มาจาก Registry เพื่อใช้งานหรือสร้างขึ้นมาเองได้
- เป็นไฟล์แบบอ่านอย่างเดียว
Docker Container
- คือ Image ที่ถูกรันขึ้นมาใช้งาน โดยจะมีสภาพแวดล้อมตาม Image ต้นแบบ
- ไฟล์หรืออะไรที่ถูกสร้างขึ้นมาใน Container จะหายไปเมื่อมีการลบ Container
- สามารถการเปลี่ยนแปลงใน Container กลับไปเป็น Image ได้เรียกว่า commit
Docker Machine
- Docker Desktop for Windows https://docs.docker.com/docker-for-windows/install/
- Docker for Ubuntu https://docs.docker.com/install/linux/docker-ce/ubuntu/
Work Shop 1 : pull image
เปิด powshell ขึ้นมา แล้วพิมพ์คำสั่งในการ pull image
docker pull mysql:latest
docker pull ubuntu:latest
docker pull alpine
แสดง image ที่อยู่บนเครื่อง
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 91dadee7afee 2 days ago 477MB
ubuntu latest 47b19964fb50 4 weeks ago 88.1M
alpine latest caf27325b298 5 weeks ago 5.53MB
Work Shop 2 : คำสั่งพื้นฐาน
Command | Description |
docker build | Build an image from a Dockerfile |
docker commit | Create a new image from a container’s changes |
docker container | Manage containers |
docker cp | Copy files/folders between a container and the local filesystem |
docker exec | Run a command in a running container |
docker image | Manage images |
docker images | List images |
docker inspect | Return low-level information on Docker objects |
docker logs | Fetch the logs of a container |
docker network | Manage networks |
docker ps | List containers |
docker pull | Pull an image or a repository from a registry |
docker push | Push an image or a repository to a registry |
docker restart | Restart one or more containers |
docker rm | Remove one or more containers |
docker rmi | Remove one or more images |
docker run | Run a command in a new container |
docker stats | Display a live stream of container(s) resource usage statistics |
docker stop | Stop one or more running containers |
docker tag | Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE |
docker top | Display the running processes of a container |
docker volume | Manage volumes |
https://docs.docker.com/engine/reference/commandline/docker/