Cách sử dụng hiệu quả Wordpress với Shipyard trên Ubuntu 14.04

6 năm trước

 

Shipyard là một trình quản lí dành cho Docker server. Docker là phần mềm hiệu quả nhất cho quá trình containerization. Shipyard cho phép bạn kiểm soát container nào của server đang chạy, để ta dễ dàng kích hoạt hoặc ngừng một container để tạo một container mới.

Một khi bạn đã thiết lập Shipyard trên server của bạn, bạn có thể truy cập nó bằng cách sử dụng giao diện đồ họa, giao diện dòng lệnh, hoặc một API. Shipyard thiếu một số tính năng mới của các công cụ quản lí Docker khác, nhưng nó rất dễ thiết lập, dễ sử dụng, và bạn có thể quản lý và lưu trữ nó cho mình.

Hướng dẫn này bao gồm làm thế nào để cài đặt Shipyard, kết nối nó với Docker server của bạn và sử dụng nó tạo và khởi động container mới. Sau khi hoàn tất, bạn sẽ có Shipyard đang chạy trên server để quản lý host Docker của bạn.

 

Yêu cầu

 

Để theo dõi bài viết, bạn cần:

Bạn có thể tìm thấy tùy chọn Image Docker 1.5.0 ở trang khởi tạo Cloud Server, trong tab Applications bên dưới mục Select Image. Ngoài ra bạn cũng có thể cài Docker trên một Cloud Server có sẵn.

Note: Gói docker.io trong kho ứng dụng mặc định của Ubuntu 14.04 là một phiên bản cũ (version 0.9.1). Để sử dụng Shipyard, bạn cần cài phiên bản mới nhất của nó thông qua các bước sau:

 

Bước 1 — Cài đặt Shipyard

 

Vì các lệnh cài Shipyard hầu hết đều yêu cầu quyền root, bạn nên log in vào server bằng root user của mình. Nếu bạn đang sử dụng một non-root user, dùng lệnh sudo su để chuyển sang root user.

Khi Docker đang chạy, ta có thể dễ dàng cài đặt Shipyard. Tất cả bạn cần làm là kéo image từ registry Docker và chạy container cần thiết. Đầu tiên chúng ta sẽ tạo một data volume container để lưu trữ database của Shipyard. Container này sẽ không tự thực hiện bất cứ hành động nào; nên nó là một dấu nhãn( label) thuận tiện để tham chiếu đến các sữ liệu của Shipyard.

Dùng lệnh:

 
docker create --name shipyard-rethinkdb-data shipyard/rethinkdb

Giờ data volume container đã được tạo thành công, ta có thể chạy database server cho Shipyard và kết nối chúng lại với nhau.

 
docker run -it -d --name shipyard-rethinkdb --restart=always --volumes-from shipyard-rethinkdb-data -p 127.0.0.1:49153:8080 -p 127.0.0.1:49154:28015 -p 127.0.0.1:29015:29015 shipyard/rethinkdb

Lệnh này khởi chạy container bằng RethinkDB, một cơ sở dữ liệu phân tán( distributed database),và đảm bảo nó chỉ có thể truy cập được trên chính database server đó. Nếu gõ địa chỉ http://your_server_ip:49153 trong trình duyệt, bạn sẽ không thấy gì.

Sau khi cài đặt database của Shipyard, ta có thể chạy Shipyard với một container khác và liên kết nó với database .

docker run -it -p 8080:8080 -d --restart=always --name shipyard --link shipyard-rethinkdb:rethinkdb shipyard/shipyardTa có thể truy cập phiên bản (instance) của Shipyard thông qua cổng 8080.
 

Bước 2 — Truy cập Shipyard

 

Shipyard có thể được truy cập thông qua một GUI( Graphic User Interface- giao diện đồ họa),CLI( command-line interface, giao diện dòng lệnh), hoặc API( application programing interface, giao diện lập trình ứng dụng). 

Truy cập thông qua CLI

Truy cập Shipyard thông qua CLI bằng cách chạy một container khác.

docker run -ti --rm shipyard/shipyard-cli

Cờ -ti đảm bảo container tham chiếu đến có thể truy cập được, và cờ --rm cho biết container được tạo chỉ có thể dùng một lần duy nhất, nghĩa là nó sẽ bị gỡ bỏ sau khi quá trình truy cập hoàn thành.

Bạn sẽ thấy dấu nhắc CLI của Shipyard, shipyard cli>. Để xem danh sách các lệnh có thể được thực thi, gõ lệnh shipyard help.

Đầu tiên hãy kết nối container này với database :

shipyard login

Nhập vào địa chỉ http://your_server_ip:8080. Sau đó bạn sẽ được yêu cầu một username và password cho phiên đăng nhập. Nhập vào admin cho username, và shipyard cho password. 

Dùng lệnh:

shipyard change-password

sau đó nhập vào và xác nhận password mới, đảm bảo rằng password này đủ mạnh và bạn có thể nhớ nó. Bấm CTRL+D để thoát khỏi giao diện dòng lệnh.

Vì Shipyard command line phải được kết nối với Shipyard instance mỗi lần truy cập, bạn có thể chạy Shipyard command line trên bất cứ hệ thống nào tương thích với Docker container và kết nối nó với Shipyard instance trên server.

Truy cập thông qua GUI

Để truy cập Shipyard qua GUI, gõ địa chỉ http://your_server_ip:8080 trong trình duyệt của bạn. Bạn sẽ thấy một trang đăng nhập. Nhập vào username và password ( đã được thay đổi ) để tiếp tục.

Sau khi đăng nhập thành công, Shipyard sẽ hiển thị tab Engines và cảnh báo rằng vẫn chưa có engine nào trong Shipyard cluster. Một engine là một Docker host có khả năng chạy containers.

Bước 3 —Thêm vào Engine

Cloud Server của bạn cũng là một Docker host, nen ta có thể quản lí được nó với Shipyard. Đầu tiên ta sẽ thêm server vapf Shipyard như một engine.

Mặc định Docker được cấu hình để nghe trên socket /var/run/docker.sock, không thể truy cập từ các thể hiện của Shipyard. Ta cần cấu hình Docker để đồng thời nghe trên một cổng khác. 

Mở file cấu hình của Docker:

nano /etc/default/docker

Thêm vào dòng:

DOCKER_OPTS="-H tcp://your_server_ip:4243 -H unix:///var/run/docker.sock"

Lệnh này đảm bảo Docker đang nghe trên cổng 4243, nhưng chỉ cho phép truy cập từ chính server.

Restart Docker để lưu thay đổi:

service docker restart

Các Shipyard container cũng được khởi động lại vì ta chạy container ở chế độ --restart=always. Nếu muốn kiểm tra lại, gõ lệnh:

docker ps

Nếu các container chưa được khởi động lại, dùng lệnh docker start shipyard-rethinkdb shipyard

Truy cập vào Shipyard GUI rồi vào tab Engines. Nhấp vào phím + Add , bạn sẽ thấy như sau:

The 'add engine' screen has input fields like 'name' and 'labels'

Thêm vào các giá trị sau:

  • Name: Sử dụng một tên để dễ nhận ra server cảu bạn, chẳng hạn hostname của nó.
  • Labels: Nhãn cho phép kiểm soát container nào được phép chạy trên engine. Tuỳ vào mục đích cụ thể, bạn có thể đặt nó là production hoặc test.
  • Address: Nhập vào địa chỉhttp://your_server_ip:4243

Bấm vào Add. Giờ Shipyard đã được kết nối Docker host và thêm vào như một engine. Sau khi thêm vào, bạn sẽ được đưa trở lại tab Engines. Engine vưaf tạo sẽ đang ở chế độ offline. Đợi một lát rooid refresh lại trang, bạn sẽ thấy các thông số cụ thể của Docker host.

 

Bước 4 — Sử dụng Container bằng Shipyard

 

Truy cập Shipyard qua GUI rồi vào tab Containers. Tab này chứa tất cả container đang chạy trên các Docker host bạn đã thêm vào Shipyard. Nếu chưa làm gì thêm, bạn sẽ thấy có 3 container trong đó có 2 cái đang chạy.

the 'Containers' tab should list 'shipyard', 'shipyard-rethinkdb' and 'shipyard-rethinkdb-data'

Giờ hãy thử tạo một blog Wordpress. Sử dụng Docker, ta sẽ tạo container của MySQL và Wordpress.

Bấm vào + Deploy. Bạn sẽ thấy như sau:

Fields: Image, Container Name

Nhập vào giá trị cho các trường như sau:

  • Image: Nhập vào mariadb.
  • Container Name: Nhập vào bất cứ thứ gì bạn muốn, chẳng hạn mysql-test.
  • Environment: Cho biết biến môi trường nào có thể sử dụng. Ở đây ta nhập vào  MYSQL_ROOT_PASSWORD=6f23b328e7.

Fields: Ports, Type, Restart Policy, Labels

  • Type: Cho biết container sẽ được sử dụng thế nào. Ở đây dùng service.
  • Labels: Dùng để khớp container với engine. Nhập vào một trong các label bạn đã gắn cho engine.
  • Restart Policy: Cho biết container có được restart tựu động không. Ở đây ta nhập no.

Sau kh nhậpi xong bấm Deploy. Sau một lát  bạn sẽ được đưa trở lại trang danh sách các container, với thêm một container tên mysql-test 

Làm tương tự để thêm một container cho WordPress. Click + Deploy và nhập vào cá giá trị lần lượt như sau:

  • Imagewordpress
  • Namewordpress-test
  • Linksmysql-test:mysql
  • Typeservice
  • Labels: Một trong số các label bạn đã gắn cho engine.
  • Restart Policy:  no.

Một việc nữa cần làm là cho phép WordPress có thể truy cập được từ nơi khác qua internet. Click vào dấu cộng bên cạnh Port.

map tcp port 1234 to container port 80

Chọn TCP cho Protocol, để trống IP, nhập vào 1234 cho Port và 80 cho Container Port.

Sau đó click Deploy. Như ở trên, bạn sẽ được đưa trở lại trang danh sách các container với thêm một container mới là  wordpress-test. Click vào link bên cạnh nó để xem chi tiết.

container detail screen in Shipyard

Bên dưới Ports, bạn sẽ thấy rằng cổng 80 của contaner WordPress được chuyển thành cổng 1234 của server. 

Click vào lẹn bên cạnh, bạn sẽ được đưa đến cửa sổ cài đặt của WordPress. Sau khi điền vào tất cả các trường trong trang đó, bạn sẽ có thể đăng nhập vào một blog hoàn toàn mới.

 

Tổng kết

Đến đây bạn đã cài đặt thành công Shipyard để sử dụng một ứng dụng trên các Docker host!

Bạn cũng có thể cấu hình thêm các server rồi kết nối với Shipyard để quản lí và khám phá rất nhiều ứng dụng khác trong Docker Registry.