TÌM HIỂU VỀ DOCKER (Phần2)

Tiếp tục phần bài viết tìm hiểu về Docker. Hôm nay mình sẽ tìm hiểu về Dockerfile.

Docker có thể tự động build images với các ứng dụng được khai báo trong file Dockerfile. Trong Dockerfile chứa toàn bộ các câu lệnh để cài đặt, copy file, etc trước khi đóng gói thành image.

Ví dụ:

FROM php:5.6-apache ;Khai báo image sẽ được download và sử dụng.
RUN apt-get update && apt-get install -y libpng12-dev libjpeg-dev ; Câu lệnh sẽ được chạy trong container. trong qua trình build image
VOLUME ./source_code:/var/www/html  ; Data Volumes.

 1. Data Volumes sẽ có 3 trường hợp:

– Giữ lại dữ liệu khi một container bị xóa.
– Chia sẻ dữ liệu giữa các hệ thống tập tin máy chủ và container.
– Chia sẻ dữ liệu với các container Docker khác.

2. Bắt đầu khởi tạo và chạy test datavolumes.

+ Bước 1: Trên host máy chủ chạy lệnh sau:

# docker create -v /datavolumes --name datacontainer centos

+ Bước 2: Chạy một container Centos mới với tùy chọn –volumes-from và tạo 1 file với nội dung bất kì  để tại thư mục /datavolumes mọi thứ sẽ được lưu vào thư mục /datavolumes của container datacontainer:

# docker run -t -i --volumes-from datacontainer centos /bin/bash
# echo "Hello vietcalls 123" > /datavolumes/test.txt  ;Tạo ra 1 tập tin test.txt

+ Bước 3:  Khởi động 1 container nữa và mount từ “datacontainer” sau đó kiểm tra tập tin test.txt đã tạo từ container trước đó.

docker

Có thể tạo nhiều data container docker.

3. Để chia sẻ dữ liệu giữa các hệ thống tập tin máy chủ (docker host) và container Docker

Xem một ví dụ với Nginx. Đầu tiên chúng ta tạo một nơi lưu log trên máy chủ docker host. Sau đó chạy một container nginx và ánh xạ thư mục mới tạo vào docker host.

# mkdir -p /dockers/test/nginxlog
# docker run -d -v /dockers/test/nginxlog:/var/log/nginx -p 5000:80 -i nginx

+ Trong đó:

/nginxlogs: /var/log/nginx : volume liên kết thư mục /var/log/nginx trong container Nginx vào thư mục /nginxlogs trên máy chủ.

-d : Thông số này cho phép chạy ở chế độ nền không vào trực tiếp container.

-p 5000: 80 :Thiết lập một cổng chuyển tiếp. Các container Nginx sẽ lắng nghe trên cổng 80 theo mặc định và kết nối công 80 của Nginx container đến cổng 5000 trên hệ thống máy chủ.

# cat /dockers/test/nginxlog/access.log

docker

Như vậy, qua bài viết này mình đã giới thiệu cơ bản về Dockerfile cũng  như cách tạo và ứng dụng dockerfile. Các bạn có đóng ý kiến nào thêm để lại bình luận bên dưới nhé.Thanks!

Các bạn có thể tham khảo khóa học Docker trên Unica

Bài viết liên quan

Leave a Reply

Your email address will not be published. Required fields are marked *