ข้ามไปยังเนื้อหา
ToolMug

ใช้ ↑ ↓ เพื่อเลื่อน, Enter เพื่อเปิด, Esc เพื่อปิด

แปลง Docker Compose เป็น docker run

วาง compose.yaml หรือ docker-compose.yml เพื่อรับคำสั่ง docker run ที่เทียบเท่าสำหรับทุก service เหมาะสำหรับเริ่ม container บนเครื่องที่ไม่มี Compose หรือตรวจว่าบริการเริ่มทำงานอย่างไร

ทำงานในเบราว์เซอร์ของคุณ ข้อมูลที่คุณป้อนจะไม่ถูกอัปโหลด

Docker Compose → docker run
Docker Compose
docker run

วิธีใช้งาน

  1. วางไฟล์ Compose ทางซ้าย หรือคลิกโหลดตัวอย่าง
  2. คำสั่ง docker run ของแต่ละ service จะแสดงทางขวาตามลำดับในไฟล์
  3. ตรวจหมายเหตุสีเหลืองสำหรับฟิลด์ที่แปลงไม่ได้ เช่น 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>

ไฟล์ถูกอัปโหลดไหม

ไม่ การแยกวิเคราะห์และแปลงทำในเบราว์เซอร์

ความเป็นส่วนตัว

เครื่องมือนี้ทำงานในเบราว์เซอร์ของคุณทั้งหมด ไฟล์และข้อความของคุณได้รับการประมวลผลบนอุปกรณ์ของคุณ และจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ของเรา

เครื่องมือที่เกี่ยวข้อง