FresherKỹ thuậtDocker
Các flag trong lệnh docker run -d -p 8080:80 --name web nginx làm gì?
Thử trả lời trước
Đáp án mẫu
Lệnh này khởi động một container từ image nginx và chạy nó ở chế độ nền với một port được publish và một tên cố định.
-dchạy container ở chế độ detached, tức là chạy nền, và in ra id của nó. Không có flag này, container chạy ở foreground và chiếm terminal của bạn.-p 8080:80publish một port theo dạnghost:container. Traffic đến cổng 8080 trên host được chuyển tiếp đến cổng 80 bên trong container, nơi nginx lắng nghe.--name webđặt cho container một tên dễ đọc, thay vì tên ngẫu nhiên, để bạn chạydocker logs webhoặcdocker stop web.nginxlà image. Không có tag nghĩa lànginx:latest, và Docker sẽ pull về trước nếu chưa có trên máy.
docker run -d -p 8080:80 --name web nginx
curl http://localhost:8080
docker logs web
docker rm -f web
Mặc định port được bind trên mọi interface. Dùng -p 127.0.0.1:8080:80 để chỉ mở cho máy cục bộ.
Số bên trái luôn là host, còn số bên phải là container.
Ý chính
- -d chạy container ở chế độ nền
- -p host:container publish một port
- --name đặt tên container dễ đọc
- Không có tag nghĩa là latest, và image được pull nếu chưa có
Câu hỏi nối tiếp thường gặp
- Bạn publish port chỉ trên localhost như thế nào?
Lỗi thường gặp
- Đảo ngược port host và container trong -p
- Chạy không có --name rồi phải đoán tên được sinh tự động