Thứ ba, 14/04/2015 | 00:00 GMT+7

Cách triển khai Wordpress với Shipyard trên Ubuntu 14.04

Shipyard là một công cụ quản lý các server Docker. Docker là một phần mềm tiên tiến được sử dụng để chứa. Shipyard cho phép bạn xem từng server của bạn đang chạy những container nào, để bắt đầu hoặc dừng những container hiện có hoặc tạo những container mới.

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

Hướng dẫn này bao gồm cách cài đặt Shipyard, kết nối nó với server Docker của bạn và sử dụng nó để tạo và chạy các containers mới. Cuối cùng, bạn nên có Shipyard chạy trên server của bạn để quản lý các server Docker của bạn.

Yêu cầu

Để làm theo hướng dẫn này, bạn cần :

  • Một server Ubuntu 14.04 với Docker image 1.5.0.

Bạn có thể tìm thấy tùy chọn Docker image 1.5.0 trên trang tạo server , trong tab Ứng dụng bên dưới Chọn hình ảnh . Bạn cũng có thể cài đặt Docker trên Server hiện có theo hướng dẫn này .

Lưu ý : gói docker.io từ repository chuẩn cho Ubuntu 14.04 đã rất cũ (phiên bản 0.9.1). Để sử dụng Shipyard, bạn cần cài đặt version Docker mới nhất bằng một trong các phương pháp được liệt kê ở trên.

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

Trong bước này, ta sẽ cài đặt Shipyard. Tất cả các lệnh trong hướng dẫn này sẽ yêu cầu quyền root, vì vậy sẽ dễ dàng nhất chỉ cần đăng nhập vào Server với quyền là user root. Nếu bạn đã đăng nhập với quyền user không phải root, bạn có thể chạy sudo su để chuyển sang user root.

Khi bạn đã chạy Docker, việc cài đặt Shipyard khá dễ dàng vì nó được vận chuyển dưới dạng Docker image . Tất cả những gì bạn cần làm là kéo hình ảnh từ register Docker và chạy các containers cần thiết. Đầu tiên ta sẽ tạo một vùng chứa data volumes để chứa dữ liệu database của Shipyard. Vùng chứa này sẽ không tự làm bất cứ điều gì; nó là một nhãn thuận tiện cho vị trí của tất cả dữ liệu của Shipyard.

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

Bây giờ containers data volumes đã được tạo, ta có thể chạy server database cho Shipyard và liên kết chúng 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 

Điều này chạy một containers đang chạy RethinkDB , một database phân tán và đảm bảo nó chỉ có thể được truy cập local trên chính server . Nếu bạn cố gắng truy cập http:// your_server_ip :49153 trong trình duyệt của bạn , bạn sẽ không thấy gì cả.

Bây giờ database của Shipyard đã hoàn tất, ta có thể tự vận hành Shipyard bằng cách chạy 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/shipyard 

Bây giờ ta có thể truy cập version Shipyard đang chạy của bạn bằng cách sử dụng cổng 8080 .

Bước 2 - Truy cập Xưởng đóng tàu

Bây giờ Shipyard đang chạy, ta cần truy cập nó. Shipyard có thể được truy cập thông qua GUI, giao diện dòng lệnh (CLI) hoặc API. Ta sẽ bắt đầu bằng cách truy cập CLI.

Tiếp cận xưởng đóng tàu bằng CLI

Ta có thể truy cập vào Shipyard CLI bằng cách chạy một container khác.

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

Cờ -ti đảm bảo containers có tính tương tác và cờ --rm làm cho containers này trở thành containers dùng một lần, nghĩa là nó sẽ tự động bị xóa sau khi ta xử lý xong.

Đến đây bạn sẽ thấy dấu nhắc Shipyard CLI, trông giống như sau: shipyard cli> . Để có được danh sách các lệnh có sẵn, bạn có thể nhập shipyard help .

Dấu nhắc lệnh này chưa được kết nối với version Shipyard mà ta đã cài đặt ở bước 1, vì vậy trước tiên hãy kết nối nó:

shipyard login 

Nó sẽ nhắc bạn nhập URL. Nhập http:// your_server_ip :8080 . Tiếp theo, bạn sẽ được yêu cầu nhập tên user và password . Tên user và password được đặt theo mặc định; nhập admin cho tên user và shipyard cho password . Sau đó, bạn sẽ được đưa trở lại dấu nhắc Shipyard.

Đến đây bạn đã đăng nhập vào version Shipyard của bạn với quyền là administrator . Để lại password mặc định là một rủi ro bảo mật rất lớn, vì vậy hãy thay đổi nó.

shipyard change-password 

Bạn cần chọn và xác nhận password mới của bạn . Đảm bảo password mới của bạn an toàn và bạn có thể nhớ password đó. Đến đây bạn có thể nhấn CTRL + D để thoát khỏi Shipyard CLI.

Vì dòng lệnh Shipyard phải được kết nối với version Shipyard của bạn mỗi lần, bạn có thể chạy dòng lệnh Shipyard trên bất kỳ hệ thống nào có khả năng chạy Docker container và kết nối nó với version Shipyard đang chạy trên server của bạn.

Truy cập Xưởng đóng tàu bằng GUI

Tiếp theo, ta sẽ xem xét giao diện đồ họa của Shipyard. Để truy cập nó, hãy mở http:// your_server_ip :8080 trong trình duyệt của bạn. Điều này sẽ hiển thị cho bạn màn hình đăng nhập. Sử dụng tên user admin và password mới bạn đã chọn.

Khi bạn đã đăng nhập, Shipyard sẽ hiển thị tab Động cơ và cảnh báo bạn rằng chưa có động cơ nào trong cụm Shipyard của bạn. Công cụ là một server Docker có khả năng chạy các containers . Ở đây ta sẽ thêm từng server Docker mà bạn muốn quản lý bằng Shipyard.

Bước 3 - Thêm động cơ

Server mà ta vừa triển khai Shipyard trên cũng là một server Docker, vì vậy ta sẽ có thể quản lý nó với Shipyard. Trước khi ta có thể làm điều đó; tuy nhiên, ta cần thêm server vào Shipyard làm động cơ.

Theo mặc định, Docker được cấu hình để lắng nghe trên Unix socket /var/run/docker.sock , nhưng không thể truy cập socket đó từ version Shipyard của ta . Ta cần cấu hình Docker để cũng lắng nghe các yêu cầu trên một cổng. Để thực hiện việc này, hãy chỉnh sửa file cấu hình Docker bằng editor yêu thích của bạn. (Ở đây, ta sử dụng nano .)

nano /etc/default/docker 

Ở cuối, thêm dòng này:

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

Điều này sẽ đảm bảo Docker chấp nhận các kết nối trên cổng 4243 , nhưng chỉ từ chính server của bạn. Bây giờ khởi động lại Docker để tải cấu hình mới:

service docker restart 

Điều này cũng sẽ khởi động lại các container Shipyard của bạn. Vì ta đã chạy các containers với --restart=always nên chúng sẽ tự động backup . Bạn có thể xác minh điều này bằng lệnh:

docker ps 

Nếu vì lý do nào đó mà các container của Shipyard không khởi động lại, bạn có thể khởi động lại chúng theo cách thủ công bằng cách chạy docker start shipyard-rethinkdb shipyard .

Bây giờ server Docker của bạn đã được cấu hình đúng, ta có thể thêm nó vào Shipyard làm động cơ. Truy cập GUI Shipyard của bạn và chuyển đến tab Động cơ . Nhấp vào nút + Thêm . Nó sẽ trông giống thế này:

Màn hình 'thêm công cụ' có các trường nhập như 'tên' và 'nhãn'

Thêm các trường sau.

  • Tên : Sử dụng tên cho phép bạn nhận ra động cơ là Server hiện tại của bạn, như tên server của Server.
  • Nhãn : Các nhãn bạn thêm vào công cụ của bạn sẽ cho phép bạn kiểm soát những containers nào được phép chạy trên nó. Tùy thuộc vào những gì bạn muốn sử dụng Server này, bạn có thể sử dụng các nhãn như production hoặc thử nghiệm.
  • Địa chỉ : Sử dụng cổng Docker mà ta vừa mở: http:// your_server_ip :4243

Bây giờ hãy nhấp vào nút Thêm ở dưới cùng. Shipyard bây giờ sẽ kết nối với server Docker của bạn, xác minh kết nối và thêm nó làm động cơ. Sau khi hoàn tất, bạn sẽ được chuyển hướng trở lại tab Động cơ . Lúc đầu, động cơ sẽ được liệt kê là offline . Chờ một hoặc hai giây và làm mới trang, và bây giờ bạn có thể xem chi tiết về server Docker của bạn .

Bước 4 - Triển khai container bằng xưởng đóng tàu

Bây giờ ta đã thêm server Docker của bạn vào Shipyard làm động cơ, ta có thể sử dụng Shipyard để khởi động, dừng và triển khai các container.

Truy cập GUI Shipyard và xem tab Container . Điều này liệt kê tất cả các containers đang chạy trên mọi server Docker mà bạn đã thêm vào Shipyard. Nếu bạn không làm gì khác, tab này sẽ hiển thị ít nhất ba containers , trong đó hai containers đang chạy:

tab 'Container' nên liệt kê 'xưởng đóng tàu', 'xưởng đóng tàu-rethinkdb' và 'xưởng đóng tàu-rethinkdb-dữ liệu'

Hãy thử triển khai một blog Wordpress mới. Sử dụng hình ảnh repo Docker chính thức, ta cần triển khai containers MySQL và Wordpress.

Nhấp vào nút + Triển khai . Màn hình tiếp theo sẽ cho phép ta cấu hình containers để triển khai. Nhập thông tin vào các trường được chỉ định bên dưới.

Các trường: Hình ảnh, Tên containers

  • Hình ảnh : Nhập mariadb . (MariaDB là một nhánh open-souce của MySQL.)
  • Tên containers : Bạn có thể sử dụng bất cứ thứ gì bạn thích, ví dụ: mysql-test .
  • Môi trường : Mô tả hình ảnh sẽ cho bạn biết bạn có thể sử dụng biến môi trường nào. Trong trường hợp này, hãy sử dụng MYSQL_ROOT_PASSWORD=6f23b328e7 .

Các trường: Cổng, Loại, Chính sách Khởi động lại, Nhãn

  • Loại : Điều này xác định cách containers sẽ được triển khai trên nhiều công cụ. Trong trường hợp này, hãy sử dụng service .
  • Nhãn : Điều này sẽ được sử dụng để khớp các container với động cơ. Chỉ cần kiểm tra một trong các nhãn bạn đã gán cho công cụ của bạn .
  • Chính sách Khởi động lại : Điều này xác định xem containers sẽ được tự động khởi động lại sau khi có lỗi hay docker khởi động lại. Trong trường hợp này, hãy để nó ở no .

Bây giờ hãy nhấp vào Triển khai . Sẽ mất một lúc để containers chạy . Bạn sẽ được chuyển hướng trở lại danh sách containers , danh sách này bây giờ sẽ có một containers có tên mysql-test (hoặc bất kỳ tên nào bạn đã sử dụng) trong đó.

Bạn vừa triển khai containers Docker đầu tiên của bạn bằng Shipyard!

Bây giờ ta sẽ sử dụng cùng một quy trình để triển khai một containers WordPress, được liên kết với containers MySQL của ta .Nhấp lại vào nút + Triển khai và điền vào thông tin sau:

  • Hình ảnh : wordpress
  • Tên : wordpress-test
  • Liên kết : mysql-test :mysql
  • Loại hình : service
  • Nhãn : Kiểm tra bất kỳ nhãn nào bạn đã sử dụng cho động cơ của bạn .
  • Khởi động lại policy : Để lại này trên no .

Còn một việc nữa phải làm: ta muốn có thể truy cập nội dung web của containers WordPress này từ mọi nơi, vì vậy ta phải để lộ cổng 80 của nó. Để thực hiện việc này, hãy nhấp vào dấu cộng bên cạnh Cổng tiêu đề.

map  cổng  tcp 1234 thành  cổng  container 80

Chọn TCP trong Giao thức , để trống IP , nhập 1234 làm Cổng80 làm Cổng containers .

Đến đây bạn có thể nhấp vào Triển khai . , sẽ mất một lúc trước khi bạn được chuyển hướng trở lại danh sách containers . Danh sách bây giờ cũng sẽ hiển thị một containers có tên là wordpress-test . Nhấp vào liên kết bên cạnh nó để xem thêm chi tiết.

màn hình chi tiết container trong Shipyard

Trong Cổng , bạn sẽ thấy rằng cổng 80 của containers WordPress hiện đã được xuất bản lên cổng 1234 của server của bạn. Shipyard rất hữu ích trong việc trực tiếp biến danh sách này thành một liên kết có thể nhấp được mà bạn có thể sử dụng để đi đến địa chỉ đã xuất bản.

Nhấp vào liên kết này. Thao tác này sẽ đưa bạn đến trình hướng dẫn cài đặt WordPress. Sau khi điền vào các trường trên trang đó, bạn có thể đăng nhập vào blog WordPress hoàn toàn mới của bạn và cũng có thể xem nó như một trang web.

Kết luận

Như vậy, bạn đã sử dụng thành công Shipyard để triển khai một ứng dụng thực tế trên server Docker của bạn !

Bạn có Shipyard đang hoạt động trên server của bạn . Bạn cũng có thể cấu hình các server bổ sung với Docker và kết nối chúng với version Shipyard của bạn để quản lý. Bạn cũng đã học cách kết nối với version Shipyard của bạn bằng CLI và GUI, đồng thời học cách triển khai các containers mới trên server Docker của bạn bằng GUI.

Như vậy, bạn có thể thoải mái dùng thử bất kỳ ứng dụng web nào trong số hàng nghìn ứng dụng web có sẵn trên Docker Registry . Ví dụ: bạn có thể triển khai containers Nginx để lưu trữ blog WordPress mới của bạn trên một URL dễ đọc hơn như được mô tả trong hướng dẫn này .


Tags:

Các tin liên quan

Cách quản lý Jenkins với Rancher trên Ubuntu 14.04
2015-03-25
Cách cài đặt Sandstorm trên Ubuntu 14.04
2015-03-19
Cách bảo vệ thông tin đăng nhập tài khoản WordPress của bạn với xác thực hai yếu tố trên Ubuntu 14.04
2015-03-16
Cách cài đặt Ruby on Rails với rbenv trên Ubuntu 14.04
2015-03-13
Cách thiết lập Gog trên Ubuntu 14.04
2015-03-11
Cách thiết lập hệ thống quản lý cấu hình Chef 12 trên server Ubuntu 14.04
2015-03-03
Cách cài đặt Nagios 4 và theo dõi server của bạn trên Ubuntu 14.04
2015-03-02
Cách cài đặt và cấu hình Sphinx trên Ubuntu 14.04
2015-02-18
Cách cài đặt MediaWiki trên Ubuntu 14.04
2015-02-06
Cách cài đặt phpBB trên Ubuntu 14.04
2015-02-04