Có cách nào dễ dàng để chuyển đổi một Dockerfile thành tập lệnh Bash để cài đặt tất cả phần mềm trên một hệ điều hành thực không? Lý do là container docker tôi không thể thay đổi và tôi muốn sau đó thay đổi vài điều nếu họ không làm việc ra ngoài.chuyển đổi Dockerfile sang tập lệnh Bash
Trả lời
Tóm lại - không.
Bằng cách phân tích cú pháp Dockerfile bằng công cụ như dockerfile-parse, bạn có thể chạy các lệnh RUN
riêng lẻ, nhưng điều này sẽ không sao chép đầu ra của Dockerfile.
Bạn sẽ phải chạy cùng một phiên bản của cùng một hệ điều hành.
Các lệnh ADD
và COPY
ảnh hưởng đến hệ thống tệp nằm trong không gian tên riêng của nó. Việc chạy các gói bên ngoài vùng chứa này có khả năng phá vỡ hệ thống lưu trữ của bạn. Máy chủ của bạn cũng sẽ có tệp ở những nơi mà hình ảnh vùng chứa sẽ không.
Gắn kết VOLUME
cũng sẽ ảnh hưởng đến tệp phụ.
Hình ảnh FROM
(có thể lần lượt được tải xuống từ các hình ảnh khác) có thể đã cài đặt các ứng dụng khác.
Viết Dockerfiles có thể là một quá trình chậm nếu có bước cài đặt hoặc tải xuống lớn. Để giảm thiểu điều đó, hãy thử thêm các gói mới làm lệnh RUN
mới (để tận dụng bộ nhớ cache) và thêm các tính năng theo từng bước, chỉ tối ưu hóa/nén các lớp khi chức năng hoàn tất.
Bạn cũng có thể muốn sử dụng một cái gì đó như ServerSpec để có được phương pháp tiếp cận TDD cho hình ảnh vùng chứa của bạn và ngăn chặn các hồi quy trong quá trình phát triển.
Tài liệu thực hành tốt nhất here, gotchas và original article.
bạn có thể cài đặt ứng dụng bên dockerfile như thế này
FROM <base>
RUN apt-get update -y
RUN apt-get install <some application> -y
Về cơ bản, bạn có thể tạo một bản sao của hệ thống tập tin một container của Docker sử dụng “xuất khẩu Docker”, sau đó bạn có thể viết thư cho một thiết bị loop:
docker build -t <YOUR-IMAGE> ...
docker create --name=<YOUR-CONTAINER> <YOUR-IMAGE>
dd if=/dev/zero of=disk.img bs=1 count=0 seek=1G
mkfs.ext2 -F disk.img
sudo mount -o loop disk.img /mnt
docker export <YOUR-CONTAINER> | sudo tar x -C /mnt
sudo umount /mnt
Chuyển đổi vùng chứa Docker thành hình ảnh hệ thống tệp thô.
Thông tin thêm ở đây: http://mr.gy/blog/build-vm-image-with-docker.html
- 1. Chuyển các biến bash sang tập lệnh?
- 2. Chạy tập lệnh trong Dockerfile
- 3. Bash chuyển đổi sang pdf
- 4. Chuyển đổi lệnh xargs Bash thành PowerShell?
- 5. Chuyển đổi tập lệnh MS SQL sang Mysql và Oracle
- 6. Cách chuyển đổi tập lệnh mssql sang mysql
- 7. Chạy tập lệnh bash từ tập lệnh R
- 8. Chuyển một mảng từ một tập lệnh Bash sang một số khác
- 9. Làm thế nào để chuyển các tham số từ bash sang tập lệnh php?
- 10. Chuyển mảng python sang bash script (và chuyển biến bash sang hàm python)
- 11. Chuyển biến sang tập lệnh Ruby qua dòng lệnh
- 12. Chuyển các biến MySQL sang tập lệnh từ dòng lệnh
- 13. Tập lệnh Bash hoặc Bourne?
- 14. Tự xóa tập lệnh bash
- 15. Chuyển biến từ vùng chứa sang tập tin
- 16. Lệnh tương tác trong Dockerfile
- 17. Tập lệnh Bash để chuyển đổi cột ngày và giờ thành dấu thời gian trong .csv
- 18. Cách chuyển đổi ".." trong tên đường dẫn thành tên tuyệt đối trong tập lệnh bash?
- 19. chuyển đổi tập tin- .mwb sang tập tin .sql
- 20. Bash - Thoát tập lệnh mẹ từ tập lệnh con
- 21. Chuyển hướng đầu ra bash sang tên tệp động
- 22. Cách di chuyển tập lệnh từ dấu gạch ngang sang dấu gạch ngang?
- 23. Chuyển con trỏ cấu trúc C sang tập lệnh lua
- 24. Thực thi tập lệnh Cmder bash
- 25. Cách tải lịch sử lệnh bash từ tập tin
- 26. Xoay tập tin nhật ký tập lệnh Bash
- 27. cURL có chứng chỉ PKCS # 12 trong tập lệnh bash
- 28. Tập lệnh Bash không được hiểu bởi Ubuntu Bash
- 29. Làm cách nào để chuyển mật khẩu từ tập lệnh bash sang aptitude để cài đặt mysql?
- 30. Chuyển đổi mảng JSON thành mảng Bash
Bạn có thể chạy các lệnh rằng Dockerfile chạy chính mình. Nhưng bạn không thể "chuyển đổi" hình ảnh dựa trên kịch bản. Nếu bạn không thích cách hình ảnh docker làm việc ra sửa đổi Dockerfile và thử lại? –