Docker giúp dễ dàng phát triển và triển khai các môi trường tùy chỉnh và nhất quán bao gồm các ứng dụng và phụ thuộc cụ thể. Docker gọi các biên dịch này là Images. Docker images có thể được lưu trữ và truy xuất từ ​​các vị trí riêng tư hoặc từ kho lưu trữ chính thức, Docker Hub .

Hướng dẫn này là một phần trong loạt bài giới thiệu về các khái niệm Docker. Các lệnh để tạo hình ảnh trong hướng dẫn này dựa trên hướng dẫn trước, Cách cài đặt và kéo hình ảnh để triển khai container . Để biết thêm thông tin về Docker và container, hãy truy cập hướng dẫn của chúng tôi về Container .

Tạo một hình ảnh Docker

Tạo một hình ảnh cục bộ mới dựa trên hình ảnh Ubuntu Docker mới nhất. Mặc dù kho lưu trữ đã có một số hình ảnh ngăn xếp LAMP khả dụng, chúng tôi tạo một hình ảnh trong hướng dẫn này như một ví dụ về quy trình.

1.Tải ảnh Ubuntu mới nhất:

docker pull ubuntu

2.Tạo container mới để chúng ta có thể thêm ngăn xếp LAMP vào Ubuntu. Ví dụ này đặt tên cho container lamp-server-templatevà thêm bashtùy chọn vào lệnh docker để nhập container nhằm tiếp tục thực hiện thay đổi:

docker run --name lamp-server-template -it ubuntu:latest bash

3.Cài đặt lamp-servermetapackage bên trong container:

apt-get install lamp-server^

Việc nâng cấp và cài đặt này sẽ mất nhiều thời gian hơn so với khi bạn làm việc trên một máy chủ chuẩn. Trong quá trình cài đặt ngăn xếp LAMP, bạn sẽ được nhắc tạo mật khẩu người dùng root MySQL. Khi quá trình cài đặt hoàn tất, hãy thoát khỏi vùng chứa:

exit

4.Sử dụng docker ps -ađể liệt kê tất cả các container có sẵn:docker ps -a hiển thị danh sách các hình ảnh có sẵn

Cam kết thay đổi hình ảnh

Để commit thay đổi cho image, trước tiên chúng ta phải có ID container. Giống như ví dụ trên, lệnh docker ps -aliệt kê ID là d09dd0f24b58. Chúng ta sẽ đặt tên cho image mới lamp-server-templatevà commit thay đổi bằng lệnh:

docker commit d09dd0f24b58 lamp-server-template

Nếu bạn chạy docker imageslệnh, bạn sẽ thấy hình ảnh mới lamp-server-templateđược liệt kê.

Đánh dấu hình ảnh của bạn để kiểm soát phiên bản

Khi bạn kéo một hình ảnh xuống từ Docker Hub, Statusdòng này sẽ bao gồm thẻ hình ảnh như hiển thị ở đây:

Status: Downloaded newer image for ubuntu:latest

Thẻ Docker là cách dễ dàng để bạn biết phiên bản hoặc bản phát hành nào bạn đang làm việc. Điều này đặc biệt hữu ích khi tạo hình ảnh mới từ hình ảnh cơ sở. Ví dụ: nếu bạn có hình ảnh Ubuntu mà bạn sử dụng làm cơ sở để tạo các hình ảnh khác nhau, thẻ Docker giúp bạn theo dõi sự khác biệt:

lamp-server-template:v1.8.10.2017
lamp-server-template:v2.8.10.2017
lamp-server-template:v3.8.10.2017

1.Tạo thẻ hình ảnh với docker commit. Sử dụng các thẻ ví dụ ở trên, gắn thẻ hình ảnh mới với số phiên bản và ngày:

docker commit d09dd0f24b58 lamp-server-template:v1.8.10.2017

2.Chạy docker imagesđể xem hình ảnh mới được tạo cùng với thẻ liên quan:Hình ảnh mới được gắn thẻ của chúng tôi, sẵn sàng để được đẩy lên Docker Hub

Đẩy hình ảnh của bạn lên Docker Hub

1.Trước khi đẩy hình ảnh lên Docker Hub, hãy thêm mô tả, tên đầy đủ của bạn ( FULL NAMEtrong ví dụ ở đây) và tên người dùng Docker Hub ( USERNAME) vào docker commit:

docker commit -m "Added LAMP Server" -a "FULL NAME" d09dd0f24b58 USERNAME/lamp-server-template:v1.8.10.2017

2.Sau khi gắn thẻ đầy đủ, hãy đăng nhập và đẩy nó lên Docker Hub:

docker login

3.Bạn sẽ được nhắc nhập thông tin xác thực Docker Hub. Khi xác thực thành công, bạn sẽ thấy Login succeeded. Bây giờ, bạn có thể đẩy hình ảnh vào Hub bằng lệnh:

docker push lamp-server-template:v1.8.10.2017

4.Mở trình duyệt, đăng nhập vào tài khoản Docker Hub của bạn và vào kho lưu trữ chính của bạn. Bạn sẽ thấy hình ảnh mới được liệt kê. Nhấp vào hình ảnh và sau đó nhấp vào tab Thẻ để xem thẻ đã thêm:Hình ảnh của chúng tôi, hoàn chỉnh với các thẻ, trên Docker Hub

Và đó là tất cả những gì cần làm để tạo một hình ảnh mới, thay đổi hình ảnh, xác nhận thay đổi, gắn thẻ hình ảnh và đẩy toàn bộ hình ảnh lên Docker Hub, tất cả đều được xử lý trực tiếp từ Linode của bạn.

Thông tin thêm

Bạn có thể muốn tham khảo các nguồn sau để biết thêm thông tin về chủ đề này. Mặc dù chúng tôi cung cấp với hy vọng rằng chúng sẽ hữu ích, nhưng xin lưu ý rằng chúng tôi không thể đảm bảo tính chính xác hoặc tính kịp thời của các tài liệu được lưu trữ bên ngoài.

Nguồn: https://www.linode.com/docs/guides/create-tag-and-upload-your-own-docker-image/