⚠️ Chú ý: Hãy chắc chắc rằng máy tính của bạn đã cài và đang chạy Docker. Nếu chưa hãy tải xuống tại trang chủ của Docker
Giới hiệu sơ lượt về youtube-downloader
- Là một ứng dụng web python đơn giản và cơ bản sử dụng thư viện Pytube để tải video từ Youtube
- Ảnh chụp màn hình:
Trước tiên để có thể chạy được chương trình hãy clone kho lưu trữ này về máy của bạn
git clone https://github.com/LockMan04/youtube-downloader.git
cd youtube-downloader
Dockerfile chỉ đơn giản là một tệp dựa trên văn bản không có phần mở rộng (Extention) chứa những tập lệnh hướng dẫn. Docker sẽ sử dụng tệp này sẽ build một container image
Tạo một file có tên là Dockerfile
và chắc chắc rằng nó không có phần mở rộng. Mở nó lên và thêm đoạn code này vào
FROM python:3.12-alpine
WORKDIR /app
EXPOSE 8501
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY app.py .
CMD ["streamlit", "run", "app.py"]
Trong đó
FROM python:3.12-alpine
: Sử dụng python:3.12-alpine làm base imageWORKDIR /app
: Thiết lập thư mục làm trong containerEXPOSE 8501
: Cấu hình cổng cho image là 8501COPY requirements.txt .
: Copy file requirements.txt trong containerRUN pip install -r requirements.txt
: Cài đặt các thư viện cần thiếtCOPY app.py .
: Copy mã mã nguồn vào trong containerCMD ["streamlit", "run", "app.py"]
: Dùng để chạy ứng dụng web khi container được khởi động
Để build một image, ta dùng lệnh:
docker build -t youtube-downloader .
⚠️ : đừng quên dấu chấm ở cuối
Lệnh docker build
sẽ sử dụng Dockerfile để build một image mới
Cờ -t
: tag
. Có thể hiểu đây là tên của image và có thể tham chiếu đến nó khi chạy một container
Dấu .
sẽ cho docker biết Dockerfile hiện tại đang ở đâu. Trong ví dụ này nó ở trong thư mục gốc
Để chạy một container ta sẽ sử dụng lệnh docker run
docker run -dp 127.0.0.1:8501:8501 youtube-downloader
- Cờ
d
hay--detach
: cho phép container của bạn chạy ở chế độ nền. Bạn có thể kiểm tra container của bạn bằng lệnhdocker ps
- Cờ
p
hay--publish
: tạo ánh xạ giữa localhost và container. Nếu không có sự ánh xạ này bạn không thể nào truy cập được ứng dụng từ máy của bạn
Đi đến trình duyệt và xem thành quả localhost:8501
Dockerfile này đã được upload lên hub.docker.com. Bạn có thể pull về bằng:
docker pull lockman04/youtube-downloader:latest
Đây là một số tùy chọn và tham số phổ biến:
- Tùy chọn
-d
: Cho phép container chạy ở chế độ nền (daemon):
docker run -d youtube-downloader
- Tùy chọn
--name
: Đặt tên cho container:
docker run --name my-container youtube-downloader
- Tùy chọn
-p
: ánh xạ cổng từ host vào container:
docker run -p 8080:80 nginx
- Tùy chọn
e
: Đặt biến môi trường trong container:
docker run -e ENV_VAR=value youtube-downloader
- Tùy chọn
-it
: Mở terminal sau khi container được khởi chạy:
docker run -it help
- Tùy chọn
--rm
: Tự động xóa container khi kết thúc:
docker run --rm youtube-downloader
- ...
Để bắt đầu hãy chạy lệnh dưới đây:
docker run -it --mount type=bind,src="$(pwd)",target=/src ubuntu bash
Tùy chọn --mount type=bind
sẽ yêu cầu Docker tạo một bind mount. src
là thư mục làm hiện tại trên host là ở đâu và target
là nơi thư mục đó xuất hiện bên trong container
Sau khi chạy, Docker sẽ bắt đầu một phiên bash
tương tác trong thư mục gốc của container
Di chuyển vào thư mục src
. Có thể thấy rằng nội dung của thư mục này sẽ giống như thư mục youtube-downloader
trên host
Bây giờ hãy thử tạo một file mới có tên là myfile.txt
touch myfile.txt
Mở mã nguồn của bạn quan sát và thấy rằng file myfile.txt
cũng nằm ở trong thư mực
Từ máy của bạn, hãy xóa file myfile.txt
Khi ls
một lần nữa trong container, sẽ thấy myfile.txt
sẽ biến mất
Dùng
Crl
+D
để dừng phiên container