วิธีใช้งาน
- วางไฟล์ Compose ทางซ้าย หรือคลิกโหลดตัวอย่าง
- คำสั่ง docker run ของแต่ละ service จะแสดงทางขวาตามลำดับในไฟล์
- ตรวจหมายเหตุสีเหลืองสำหรับฟิลด์ที่แปลงไม่ได้ เช่น build, deploy หรือ depends_on แล้วคัดลอกคำสั่ง
คำอธิบายตัวเลือก
- ฟิลด์ที่รองรับ
- image, container_name, command, entrypoint, ports, volumes (ไวยากรณ์สั้นและยาว), environment, env_file, networks, network_mode, restart, user, working_dir, labels, logging, ulimits, healthcheck, resource limits และอื่น ๆ
- ฟิลด์ที่แปลงไม่ได้
- ฟิลด์เฉพาะ Compose เช่น build, deploy, depends_on, secrets และ configs จะแสดงในหมายเหตุ service ที่ไม่มี image จะได้ชื่อ image ตัวแทน ให้ build เองก่อน
- หลาย network
- docker run เข้าร่วมได้เพียงหนึ่ง network ด้วย --network ให้เชื่อม network อื่นภายหลังด้วย docker network connect
ตัวอย่าง
service แบบนี้:
services:
web:
image: nginx:1.27
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
- data:/var/cache/nginx
environment:
TZ: UTC
restart: unless-stopped
depends_on: [db]
จะกลายเป็น:
docker run -d \
--name web \
-p 8080:80 \
-v ./html:/usr/share/nginx/html:ro \
-v data:/var/cache/nginx \
-e TZ=UTC \
--restart unless-stopped \
nginx:1.27
depends_on ไม่มีสิ่งที่เทียบเท่าใน docker run จึงถูกแสดงไว้ในหมายเหตุแทน ให้เริ่ม service ที่อ้างถึงด้วยตัวเองตามลำดับที่ถูกต้อง พาธสัมพัทธ์ ./html จะถูกตีความจากไดเรกทอรีที่คุณรันคำสั่ง ดังนั้นให้รันจากโฟลเดอร์ที่มีไดเรกทอรีนั้นอยู่
คำถามที่พบบ่อย
ทำไมทุกคำสั่งมี -d
Compose โดยทั่วไปเริ่มบริการเบื้องหลัง (docker compose up -d) คำสั่งจึงทำเหมือนกัน ลบ -d หากต้องการดูเอาต์พุตด้านหน้า
volume และ network ที่ตั้งชื่อจำเป็นต้องสร้างก่อนหรือไม่
docker run สร้าง named volume ที่หายไปให้อัตโนมัติ แต่ network แบบกำหนดเองต้องสร้างก่อนด้วย docker network create <name>
ไฟล์ถูกอัปโหลดไหม
ไม่ การแยกวิเคราะห์และแปลงทำในเบราว์เซอร์
ความเป็นส่วนตัว
เครื่องมือนี้ทำงานในเบราว์เซอร์ของคุณทั้งหมด ไฟล์และข้อความของคุณได้รับการประมวลผลบนอุปกรณ์ของคุณ และจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ของเรา