Thứ năm, 22/02/2018 | 00:00 GMT+7

Cách thiết lập và sử dụng LXD trên Ubuntu 16.04

Vùng chứa Linux là một group các quy trình được tách biệt với phần còn lại của hệ thống thông qua việc sử dụng các tính năng bảo mật của nhân Linux, chẳng hạn như không gian tên và group điều khiển. Nó là một cấu trúc tương tự như một máy ảo, nhưng nó nhẹ hơn nhiều; bạn không có chi phí để chạy một kernel bổ sung hoặc mô phỏng phần cứng. Điều này nghĩa là bạn có thể dễ dàng tạo nhiều containers trên cùng một server .

Ví dụ: hãy tưởng tượng rằng bạn có một server chạy nhiều trang web cho khách hàng của bạn . Trong cài đặt truyền thống, mỗi trang web sẽ là một server ảo của cùng một version của web server Apache hoặc Nginx. Nhưng với containers Linux, mỗi trang web có thể được cài đặt trong containers riêng, với web server riêng. Sử dụng containers Linux, bạn gói ứng dụng của bạn và các phụ thuộc của nó trong một containers mà không ảnh hưởng đến phần còn lại của hệ thống.

LXD cho phép bạn tạo và quản lý các containers này. LXD cung cấp dịch vụ siêu giám sát để quản lý toàn bộ vòng đời của các container . Trong hướng dẫn này, bạn sẽ cấu hình LXD và sử dụng nó để chạy Nginx trong một containers . Sau đó, bạn sẽ định tuyến lưu lượng truy cập đến containers để làm cho trang web có thể truy cập được từ Internet.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần những thứ sau:

Bước 1 - Cấu hình LXD

LXD đã được cài đặt trên Ubuntu, nhưng nó cần được cấu hình phù hợp trước khi bạn có thể sử dụng nó trên server . Bạn phải cài đặt account user của bạn để quản lý các containers , sau đó cấu hình loại backend lưu trữ để lưu trữ các containers và cấu hình mạng.

Đăng nhập vào server bằng account user không phải root. Sau đó, thêm user của bạn vào group lxd để bạn có thể sử dụng nó để thực hiện tất cả các việc quản lý containers :

  • sudo usermod --append --groups lxd sammy

Đăng xuất khỏi server và đăng nhập lại để phiên SSH mới của bạn sẽ được cập nhật với quyền thành viên group mới. Sau khi đăng nhập, bạn có thể bắt đầu cấu hình LXD.

Bây giờ hãy cấu hình phần backend lưu trữ. Phần backend lưu trữ được đề xuất cho LXD là hệ thống file ZFS, được lưu trữ trong một file được phân bổ trước hoặc bằng cách sử dụng Bộ nhớ khối . Để sử dụng hỗ trợ ZFS trong LXD, hãy cập nhật danh sách gói của bạn và cài đặt gói zfsutils-linux :

  • sudo apt-get update
  • sudo apt-get install zfsutils-linux

Đến đây bạn có thể cấu hình LXD. Bắt đầu quá trình khởi tạo LXD bằng lệnh lxd init :

  • sudo lxd init

Bạn sẽ được yêu cầu chỉ định các chi tiết cho phần backend lưu trữ. Sau khi hoàn thành cấu hình đó, bạn sẽ cấu hình mạng cho các containers .

Đầu tiên, bạn sẽ được hỏi xem bạn có muốn cấu hình một group lưu trữ mới hay không. Bạn nên trả lời yes. .

Do you want to configure a new storage pool (yes/no) [default=yes]? yes 

Sau đó, bạn sẽ được yêu cầu về phần backend lưu trữ và bạn sẽ có hai lựa chọn: dir hoặc zfs . Tùy chọn dir yêu cầu LXD lưu trữ các containers trong các folder trên hệ thống file của server . Tùy chọn zfs sử dụng hệ thống file kết hợp ZFS và trình quản lý dung lượng hợp lý.

Ta sẽ sử dụng tùy chọn zfs . Bằng cách sử dụng zfs , ta nhận được cả hiệu quả lưu trữ và khả năng phản hồi tốt hơn. Ví dụ: nếu ta tạo mười containers từ cùng một containers images ban đầu, tất cả chúng đều sử dụng không gian đĩa chỉ của một containers images duy nhất. Từ đó trở đi, chỉ những thay đổi của chúng đối với containers images ban đầu sẽ được lưu trữ trong phần backend lưu trữ.

Output
Name of the storage backend to use (dir or zfs) [default=zfs]: zfs

Khi bạn chọn zfs , bạn cần tạo một group ZFS mới và đặt tên cho group . Chọn yes để tạo group và gọi lxd :

Output
Create a new ZFS pool (yes/no) [default=yes]? yes Name of the new ZFS pool [default=lxd]: lxd

Sau đó, bạn sẽ được hỏi có muốn sử dụng thiết bị chặn hiện có không:

Output
Would you like to use an existing block device (yes/no) [default=no]?

Nếu bạn nói yes , bạn sẽ phải cho LXD biết nơi tìm thiết bị đó. Nếu bạn nói no , LXD sẽ sử dụng một file được phân bổ trước. Với tùy chọn này, bạn sẽ sử dụng không gian trống trên chính server .

Có hai phần tiếp theo, tùy thuộc vào việc bạn muốn sử dụng file được phân bổ trước hay thiết bị khối. Làm theo bước thích hợp cho trường hợp của bạn. Khi bạn đã chỉ định cơ chế lưu trữ, bạn sẽ cấu hình các tùy chọn mạng cho containers của bạn .

Tùy chọn 1 - Sử dụng file được phân bổ trước

Bạn sẽ sử dụng file được phân bổ trước nếu bạn không có quyền truy cập vào block storage device riêng biệt để lưu trữ các containers . Làm theo các bước sau để cấu hình LXD để sử dụng file được phân bổ trước để lưu trữ các containers .

Đầu tiên, khi được yêu cầu sử dụng thiết bị chặn hiện có, hãy nhập no :

Output
Would you like to use an existing block device (yes/no) [default=no]? no

Tiếp theo, bạn cần chỉ định kích thước của thiết bị vòng lặp , đó là cái mà LXD gọi là file được phân bổ trước.
Sử dụng kích thước mặc định được đề xuất cho file được phân bổ trước:

Output
Size in GB of the new loop device (1GB minimum) [default=15]: 15

Theo luật chung, 15GB thực sự là kích thước nhỏ nhất mà bạn nên tạo; bạn muốn phân bổ trước đủ dung lượng để bạn có ít nhất 10GB dung lượng trống sau khi tạo containers của bạn .

Sau khi thiết bị được cấu hình , bạn cần cấu hình cài đặt mạng. Chuyển đến Bước 2 để tiếp tục cài đặt .

Tùy chọn 2 - Sử dụng thiết bị chặn

Nếu bạn định sử dụng Block Storage làm chương trình backend lưu trữ của bạn , bạn cần tìm thiết bị trỏ đến dung lượng Block Storage mà bạn đã tạo để chỉ định nó trong cấu hình của LXD. Đi tới tab Volumes trong control panel DigitalOcean , xác định vị trí dung lượng của bạn, bấm vào More pop-up, và sau đó bấm vào hướng dẫn Config.

Định vị thiết bị bằng cách xem lệnh để định dạng âm lượng. Cụ thể, hãy tìm đường dẫn được chỉ định trong sudo mkfs.ext4 -F . Không chạy bất kỳ lệnh nào từ trang đó vì ta chỉ cần tìm đúng tên thiết bị để cung cấp cho LXD. Hình sau đây cho thấy một ví dụ về tên thiết bị của ổ đĩa. Bạn chỉ cần phần được gạch dưới bởi dòng màu đỏ:

Hướng dẫn cấu hình hiển thị thiết bị cho  Dung lượng  lưu trữ khối đã tạo.

Bạn cũng có thể xác định tên thiết bị bằng lệnh sau:

  • ls -l /dev/disk/by-id/
  • total 0
  • lrwxrwxrwx 1 root root 9 Sep 16 20:30 scsi-0DO_Volume_volume-fra1-01 -> ../../sda

Trong trường hợp này, tên thiết bị cho /dev/disk/by-id/scsi-0D0_Volume_volume-fra1-01/dev/disk/by-id/scsi-0D0_Volume_volume-fra1-01 , mặc dù tên thiết bị của bạn có thể khác.

Khi bạn xác định được tên thiết bị cho ổ đĩa, hãy tiếp tục cài đặt LXD. Khi bạn được yêu cầu về việc sử dụng thiết bị chặn hiện có, hãy chọn yes và cung cấp đường dẫn đến thiết bị của bạn:

Output of the "lxd init" command
Would you like to use an existing block device (yes/no) [default=no]? yes Path to the existing block device: /dev/disk/by-id/scsi-0DO_Volume_volume-fra1-01

Khi bạn chỉ định đĩa, bạn cần cấu hình các tùy chọn mạng.

Bước 2 - Cấu hình mạng

Khi bạn đã cấu hình phần backend lưu trữ, bạn sẽ được yêu cầu cấu hình mạng cho LXD.

Đầu tiên, LXD hỏi bạn có muốn làm cho nó có thể truy cập qua mạng hay không. Chọn yes sẽ cho phép bạn quản lý LXD từ máy tính local của bạn mà không cần phải SSH tới server này. Giữ giá trị mặc định là no :

Output of the "lxd init" command — LXD over the network
Would you like LXD to be available over the network (yes/no) [default=no]? no

Nếu bạn muốn bật tùy chọn này, vui lòng đọc LXD 2.0: Server từ xa và di chuyển containers để tìm hiểu thêm.

Sau đó, ta được yêu cầu cấu hình cầu nối mạng cho các containers LXD. Điều này cho phép các tính năng sau:

  • Mỗi containers tự động nhận một địa chỉ IP riêng.
  • Các containers có thể giao tiếp với nhau qua mạng riêng.
  • Mỗi containers có thể bắt đầu kết nối với Internet.
  • Các containers bạn tạo vẫn không thể truy cập được từ Internet; bạn không thể tạo kết nối từ Internet và đến containers trừ khi bạn bật rõ ràng. Bạn sẽ học cách cho phép truy cập vào một containers cụ thể trong bước tiếp theo.

Khi được yêu cầu cấu hình cầu LXD, hãy chọn yes :

Output of the "lxd init" command — Networking for the containers
Do you want to configure the LXD bridge (yes/no) [default=yes]? yes

Sau đó, bạn sẽ thấy hộp thoại sau:

Cấu hình mạng LXD, bắt đầu trình hướng dẫn cấu hình

Xác nhận bạn muốn cài đặt cầu nối mạng.

Bạn cần đặt tên cho cây cầu. Chấp nhận giá trị mặc định.

Bạn cần thực hiện cấu hình mạng cho cả IPv4 và IPv6. Trong hướng dẫn này, ta sẽ chỉ làm việc với IPv4.

Khi được yêu cầu cài đặt mạng con IPv4, hãy chọn . Bạn sẽ được thông báo rằng nó đã cấu hình một mạng con ngẫu nhiên cho bạn. Chọn Ok để tiếp tục.

Khi được yêu cầu nhập địa chỉ IPv4 hợp lệ, hãy chấp nhận giá trị mặc định.

Khi được yêu cầu nhập mặt nạ CIDR hợp lệ, hãy chấp nhận giá trị mặc định.

Khi được yêu cầu nhập địa chỉ DHCP đầu tiên, hãy chấp nhận giá trị mặc định. Thực hiện tương tự đối với địa chỉ DHCP cuối cùng, cũng như số lượng client DHCP tối đa.

Chọn khi được yêu cầu NAT lưu lượng IPv4.

Khi được yêu cầu cấu hình mạng con IPv6, hãy chọn Không . Bạn sẽ thấy kết quả sau khi cài đặt mạng hoàn tất:

Output
Warning: Stopping lxd.service, but it can still be activated by: lxd.socket LXD has been successfully configured.

Bạn đã sẵn sàng tạo containers của bạn .

Bước 3 - Tạo containers Nginx

Bạn đã cấu hình thành công LXD và bây giờ bạn đã sẵn sàng để tạo và quản lý containers đầu tiên của bạn . Bạn quản lý containers bằng lệnh lxc .

Sử dụng lxc list để xem các containers đã cài đặt sẵn:

  • lxc list

Bạn sẽ thấy kết quả sau:

Output of the "lxd list" command
Generating a client certificate. This may take a minute... If this is your first time using LXD, you should also run: sudo lxd init To start your first container, try: lxc launch ubuntu:16.04 +------+-------+------+------+------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +------+-------+------+------+------+-----------+

Vì đây là lần đầu tiên lệnh lxc giao tiếp với trình siêu giám sát LXD, kết quả cho bạn biết rằng lệnh đã tự động tạo certificate ứng dụng client để giao tiếp an toàn với LXD. Sau đó, nó hiển thị một số thông tin về cách chạy containers . Cuối cùng, lệnh hiển thị danh sách các containers trống, dự kiến vì ta chưa tạo bất kỳ containers nào.

Hãy tạo một containers chạy Nginx. Để làm như vậy, ta sẽ sử dụng lệnh lxc launch để tạo và khởi động một containers Ubuntu 16.04 có tên là webserver .

Tạo containers webserver :

  • lxc launch ubuntu:x webserver

Dấu x trong ubuntu:x là một phím tắt cho chữ cái đầu tiên của Xenial, tên mã của Ubuntu 16.04. ubuntu: là định danh cho repository hình ảnh LXD được cấu hình sẵn. Bạn cũng có thể sử dụng ubuntu:16.04 cho tên hình ảnh.

Lưu ý : Bạn có thể tìm thấy danh sách đầy đủ của tất cả các hình ảnh Ubuntu có sẵn bằng cách chạy lxc image list ubuntu: và các bản phân phối khác bằng cách chạy các lxc image list images:

Vì đây là lần đầu tiên bạn tạo containers , lệnh này download containers images từ Internet và lưu trữ nó vào bộ nhớ cache local để nếu bạn tạo containers mới, nó sẽ được tạo nhanh hơn. Bạn sẽ thấy kết quả này khi containers mới của bạn được tạo:

Output
Generating a client certificate. This may take a minute... If this is your first time using LXD, you should also run: sudo lxd init To start your first container, try: lxc launch ubuntu:16.04 Creating webserver Retrieving image: 100% Starting webserver

Bây giờ containers đang chạy, hãy sử dụng lệnh lxc list để hiển thị thông tin về nó:

  • lxc list

Đầu ra hiển thị một bảng với tên của mỗi containers , trạng thái hiện tại của nó, địa chỉ IP, loại của nó và liệu có ảnh chụp nhanh được chụp hay không.

Đầu ra
+-----------+---------+-----------------------+------+------------+-----------+ |  NAME     |  STATE  |         IPV4          | IPV6 |    TYPE    | SNAPSHOTS | +-----------+---------+-----------------------+------+------------+-----------+ | webserver | RUNNING | 10.10.10.100 (eth0)   |      | PERSISTENT | 0         | +-----------+---------+-----------------------+------+------------+-----------+ 

Lưu ý: Nếu bạn đã bật IPv6 trong LXD, kết quả của lệnh lxc list có thể quá rộng đối với màn hình của bạn. Thay vào đó, bạn có thể sử dụng lxc list --columns ns4tS chỉ hiển thị tên, trạng thái, IPv4, loại và liệu có sẵn ảnh chụp nhanh hay không.

Lưu ý địa chỉ IPv4 của containers . Bạn cần nó để cấu hình firewall của bạn để cho phép lưu lượng truy cập từ thế giới bên ngoài.

Bây giờ, hãy cài đặt Nginx bên trong containers :

Bước 4 - Cấu hình containers Nginx

Hãy kết nối với containers webserver và cấu hình web server .

Kết nối với containers bằng lệnh thi lxc exec , lấy tên của containers và các lệnh để thực thi:

  • lxc exec webserver -- sudo --login --user ubuntu

Đầu tiên -- chuỗi biểu thị rằng các tham số lệnh cho lxc nên dừng lại ở đó, và phần còn lại của dòng sẽ được thông qua như là lệnh được thực thi bên trong container. Lệnh này là sudo --login --user ubuntu , cung cấp shell đăng nhập cho account ubuntu được cấu hình sẵn bên trong containers .

Lưu ý: Nếu bạn cần kết nối với containers dưới dạng root , hãy sử dụng lệnh lxc exec webserver -- /bin/bash để thay thế.

Khi bên trong containers , dấu nhắc shell của bạn bây giờ trông giống như sau.

Output
ubuntu@webserver:~$

User ubuntu này trong containers có quyền truy cập sudo được cấu hình trước và có thể chạy các lệnh sudo mà không cần cung cấp password . Vỏ này được giới hạn trong giới hạn của container . Bất cứ thứ gì bạn chạy trong shell này sẽ nằm trong containers và không thể thoát đến server lưu trữ.

Hãy cài đặt Nginx trong containers này. Cập nhật danh sách gói của version Ubuntu bên trong containers và cài đặt Nginx:

  • sudo apt-get update
  • sudo apt-get install nginx

Sau đó, chỉnh sửa trang web mặc định cho trang web này và thêm một số văn bản làm rõ rằng trang web này được lưu trữ trong containers webserver . Mở file /var/www/html/index.nginx-debian.html :

  • sudo nano /var/www/html/index.nginx-debian.html

Thực hiện thay đổi sau đối với file :

Tệp đã chỉnh sửa /var/www/html/index.nginx-debian.html
<!DOCTYPE html> <html> <head> <title>Welcome to nginx on LXD container webserver!</title> <style>     body {         width: 35em;         margin: 0 auto;         font-family: Tahoma, Verdana, Arial, sans-serif;     } </style> </head> <body> <h1>Welcome to nginx on LXD container webserver!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> ... 

Ta đã chỉnh sửa file ở hai nơi và đặc biệt thêm văn bản on LXD container webserver . Lưu file và thoát khỏi editor .

Bây giờ đăng xuất khỏi containers và quay trở lại server lưu trữ:

  • logout

Sử dụng curl để kiểm tra xem web server trong containers đang hoạt động. Bạn cần địa chỉ IP của các containers web mà bạn đã tìm thấy bằng cách sử dụng lệnh lxd list trước đó.

  • curl http://10.10.10.100/

Đầu ra phải là:

Output
<!DOCTYPE html> <html> <head> <title>Welcome to nginx on LXD container webserver!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx on LXD container webserver!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> ...

Web server đang hoạt động, nhưng ta chỉ có thể truy cập nó thông qua IP riêng. Hãy định tuyến các yêu cầu bên ngoài tới containers này để mọi người có thể truy cập trang web của ta .

Bước 5 - Chuyển tiếp các kết nối đến đến containers Nginx

Phần cuối cùng của câu đố là kết nối containers web server với Internet. Nginx được cài đặt trong một containers và theo mặc định, không thể truy cập được từ Internet. Ta cần cài đặt server của bạn để chuyển tiếp bất kỳ kết nối nào mà nó có thể nhận được từ Internet trên cổng 80 tới containers webserver . Để làm điều này, ta sẽ tạo một luật iptables để chuyển tiếp các kết nối. Bạn có thể tìm hiểu thêm về IPTables trong Cách hoạt động của IPtables FirewallIPtables Essentials: Common Firewall Rules and Commands .

Lệnh iptables yêu cầu hai địa chỉ IP: địa chỉ IP công khai của server ( your_server_ip ) và địa chỉ IP riêng của containers nginx ( your_webserver_container_ip ) mà bạn có thể lấy bằng lệnh lxc list .

Thực thi lệnh này để tạo luật :

  • PORT=80 PUBLIC_IP=your_server_ip CONTAINER_IP=your_container_ip \
  • sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "forward to the Nginx container"'

Đây là cách lệnh được chia nhỏ:

  • -t nat chỉ định rằng ta đang sử dụng bảng nat để dịch địa chỉ.
  • -I PREROUTING chỉ định rằng ta đang thêm luật vào chuỗi PREROUTING.
  • -i eth0 chỉ định giao diện eth0 , là giao diện công khai mặc định trên Server.
  • -p TCP cho biết ta đang sử dụng giao thức TCP.
  • -d $PUBLIC_IP chỉ định địa chỉ IP đích cho luật .
  • --dport $PORT : chỉ định cổng đích (chẳng hạn như 80 ).
  • -j DNAT nói rằng ta muốn thực hiện một bước chuyển đến NAT đích (DNAT).
  • --to-destination $CONTAINER_IP:$PORT nói rằng ta muốn yêu cầu chuyển đến địa chỉ IP của containers cụ thể và cổng đích.

Lưu ý: Bạn có thể sử dụng lại lệnh này để cài đặt luật chuyển tiếp đơn giản bằng cách đặt các biến PORT , PUBLIC_IPCONTAINER_IP ở đầu dòng. Chỉ cần thay đổi các giá trị được đánh dấu.

Bạn có thể liệt kê các luật IPTables bằng cách chạy lệnh này:

  • sudo iptables -t nat -L PREROUTING

Bạn sẽ thấy kết quả tương tự như sau:

Output
Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- anywhere your_server_ip tcp dpt:http /* forward to this container */ to:your_container_ip:80 ...

Bây giờ, hãy kiểm tra xem web server có có thể truy cập được từ Internet hay không bằng cách truy cập nó từ máy tính local của bạn bằng lệnh curl như sau:

  • curl --verbose 'http://your_server_ip'

Bạn sẽ thấy các tiêu đề theo sau là nội dung của trang web bạn đã tạo trong containers :

Output
* Trying your_server_ip... * Connected to your_server_ip (your_server_ip) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.47.0 > Accept: */* > < HTTP/1.1 200 OK < Server: nginx/1.10.0 (Ubuntu) ... <!DOCTYPE html> <html> <head> <title>Welcome to nginx on LXD container webserver!</title> <style> body { ...

Điều này xác nhận các yêu cầu sẽ được chuyển đến containers .

Cuối cùng, để lưu luật firewall để nó được áp dụng lại sau khi khởi động lại, hãy cài đặt gói iptables-persistent :

  • sudo apt-get install iptables-persistent

Khi cài đặt gói, bạn sẽ được yêu cầu lưu các luật firewall hiện tại. Chấp nhận và lưu tất cả các luật hiện hành.

Khi bạn khởi động lại máy của bạn , luật firewall sẽ xuất hiện. Ngoài ra, dịch vụ Nginx trong containers LXD của bạn sẽ tự động khởi động lại.

Đến đây bạn đã cài đặt mọi thứ, hãy xem làm thế nào để chia nhỏ nó.

Bước 5 - Dừng và tháo containers

Bạn có thể quyết định rằng bạn muốn tháo hộp chứa và thay thế nó. Hãy xem qua quá trình đó:

Để dừng containers , hãy sử dụng lxc stop :

  • lxc stop webserver

Sử dụng lệnh lxc list để xác minh trạng thái.

Output
+-----------+---------+------+------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +-----------+---------+------+------+------------+-----------+ | webserver | STOPPED | | | PERSISTENT | 0 | +-----------+---------+------+------+------------+-----------+

Để xóa containers , hãy sử dụng lxc delete :

  • lxc delete webserver

Chạy lại lxc list cho thấy rằng không có containers nào đang chạy:

Output
+------+-------+------+------+------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +------+-------+------+------+------+-----------+

Sử dụng lệnh lxc help để xem các tùy chọn bổ sung.

Để xóa luật firewall định tuyến lưu lượng truy cập đến containers , trước tiên hãy tìm luật trong danh sách các luật bằng lệnh này, lệnh này liên kết số dòng với mỗi luật :

  • sudo iptables -t nat -L PREROUTING --line-numbers

Bạn sẽ thấy luật của bạn , có tiền tố là một số dòng, như sau:

Output
Chain PREROUTING (policy ACCEPT) num target prot opt source destination 1 DNAT tcp -- anywhere your_server_ip tcp dpt:http /* forward to the Nginx container */ to:your_container_ip

Sử dụng số dòng đó để xóa luật :

  • sudo iptables -t nat -D PREROUTING 1

Đảm bảo luật đã biến mất bằng cách liệt kê lại các luật :

`sudo iptables -t nat -L PREROUTING --line-numbers` 

Luật sẽ không còn:

Output
Chain PREROUTING (policy ACCEPT) num target prot opt source destination

Bây giờ hãy lưu các thay đổi để luật không quay trở lại khi bạn khởi động lại server của bạn :

  • sudo netfilter-persistent save

Như vậy, bạn có thể hiển thị một containers khác với cài đặt của bạn và thêm luật firewall mới để chuyển tiếp lưu lượng truy cập đến containers đó.

Kết luận

Bạn đã cài đặt một trang web bằng Nginx chạy trong containers LXD. Từ đây, bạn có thể cấu hình nhiều trang web hơn, mỗi trang web được giới hạn trong containers riêng và sử dụng Reverse Proxy để hướng lưu lượng truy cập đến containers thích hợp. Hướng dẫn Cách lưu trữ Nhiều Trang Web với Nginx và HAProxy Sử dụng LXD trên Ubuntu 16.04 sẽ hướng dẫn bạn cách cài đặt .

LXD cũng cho phép bạn chụp nhanh trạng thái đầy đủ của các containers , điều này giúp bạn dễ dàng tạo bản backup và cuộn các containers trở lại sau đó. Và nếu bạn cài đặt LXD trên hai server khác nhau, thì bạn có thể kết nối chúng và di chuyển containers giữa các server qua Internet.

Để biết thêm về LXD, hãy xem loạt bài đăng trên blog này về LXD 2.0 được viết bởi người bảo trì LXD.

Bạn cũng có thể thử LXD trực tuyến và làm theo hướng dẫn trên web để thực hành nhiều hơn.


Tags:

Các tin liên quan

Cách cài đặt và bảo mật phpMyAdmin trên Ubuntu 16.04
2018-02-20
Cách thiết lập vsftpd cho Thư mục người dùng trên Ubuntu 16.04
2018-02-20
Cách thiết lập đường ống tích hợp liên tục với GitLab CI trên Ubuntu 16.04
2018-01-26
Cách cài đặt Swift và Vapor trên Ubuntu 16.04
2018-01-25
Cách cài đặt và cấu hình GitLab trên Ubuntu 16.04
2018-01-24
Cách cài đặt và bảo mật Grafana trên Ubuntu 16.04
2017-12-27
Cách cài đặt Prometheus trên Ubuntu 16.04
2017-12-14
Cách theo dõi cảnh báo Nagios với Alerta trên Ubuntu 16.04
2017-12-13
Cách cài đặt Elasticsearch, Logstash và Kibana (ELK Stack) trên Ubuntu 14.04
2017-12-01
Cách cài đặt và sử dụng TensorFlow trên Ubuntu 16.04
2017-12-01