Chuyển đến nội dung
ToolMug

Đổi docker run sang Docker Compose

Dán một hoặc nhiều lệnh docker run để nhận compose.yaml tương đương. Port, volume, biến môi trường, network, chính sách restart, giới hạn bộ nhớ và CPU, logging cùng health check được chuyển đổi; cờ không chuyển được được liệt kê để bạn thêm thủ công.

Chạy trong trình duyệt — không có dữ liệu nào bạn nhập bị tải lên

docker run → Docker Compose
docker run
Docker Compose

Cách sử dụng

  1. Dán lệnh docker run bên trái. Lệnh nhiều dòng có dấu gạch chéo cuối dòng được hỗ trợ; tách nhiều lệnh bằng dòng mới, dấu chấm phẩy hoặc &&.
  2. Tệp Compose hiện bên phải. Mỗi lệnh thành một service đặt theo --name, hoặc theo image nếu không có tên.
  3. Xem ghi chú màu vàng về mục chưa chuyển đổi, rồi sao chép hoặc tải compose.yaml và chạy docker compose up -d.

Giải thích tùy chọn

Cờ hỗ trợ
-p, -v, --mount, -e, --env-file, --name, --restart, --network, -w, -u, -h, --entrypoint, -l, --add-host, --dns, --cap-add/drop, --device, -m, --cpus, --shm-size, --ulimit, --log-driver/--log-opt, --health-*, -i, -t, --privileged, --init, --read-only và hơn nữa.
Volume và network có tên
Volume có tên (như pgdata:/data) được khai báo dưới volumes cấp cao nhất. Network tùy chỉnh được khai báo external true để dùng network đã tồn tại. Network host và none trở thành network_mode.
Port
Mapping port luôn được đặt trong dấu ngoặc kép. YAML 1.1 đọc giá trị như 22:22 thành số cơ số 60, và tài liệu Docker khuyên viết port dạng chuỗi.
Cờ bỏ qua
-d và --rm không có tương đương trong Compose nên bị bỏ. Cờ không hỗ trợ như --gpus được liệt kê trong ghi chú.

Ví dụ

docker run -d --name web --restart unless-stopped -p 8080:80 \\
  -v ./html:/usr/share/nginx/html:ro -e TZ=Asia/Shanghai --memory 512m nginx:1.27

trở thành:

services:
  web:
    image: nginx:1.27
    container_name: web
    restart: unless-stopped
    mem_limit: 512m
    ports:
      - "8080:80"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ./html:/usr/share/nginx/html:ro

Câu hỏi thường gặp

Tệp có cần dòng version không?

Không. Docker Compose hiện tại (v2) không còn dùng trường version cấp cao nhất; nếu có, trường này bị bỏ qua kèm cảnh báo.

Mật khẩu trong biến môi trường có được tải lên không?

Không. Phân tích và chuyển đổi chạy trong trình duyệt, không có gì được gửi tới máy chủ.

Công cụ xử lý đối số có dấu nháy không?

Có. Dấu nháy đơn, dấu nháy kép và escape gạch chéo ngược theo quy tắc shell, nên -e "MSG=hello world" giữ nguyên toàn bộ giá trị.

Quyền riêng tư

Công cụ này chạy hoàn toàn trong trình duyệt của bạn. Tệp và văn bản được xử lý ngay trên thiết bị và không bao giờ được tải lên máy chủ của chúng tôi.

Công cụ liên quan