+7

Tăng tốc độ với Docker-sync (MacOS)

Chào các bạn,

Hôm nay mình xin được viết bài hướng dẫn về docker-sync. Trong dự án thực tế, khi làm việc với Docker for Mac thì mình gặp khá nhiều rắc rối về perfomance. Mình đã thử chạy Docker-compose để tạo một project với PHP nhưng khi thao tác với website nhưng load page, chuyển trang, v.v... thì xảy trường hợp response rất là chậm chạp. Mặc dù mình đã tăng cấu hình cho docker lên một cách rõ rệt:

Nhưng nó vẫn cực kỳ chậm chập, phải nói chậm còn hơn con rùa 🐢🐢🐢

Mình đã cố gắng tìm hiểu nhiều cách khắc phục thì trong đó sử dụng Docker-sync là hiệu quả nhất.

Trước hết thì chúng ta sẽ hạ cấu hình của Docker for Mac trước, vì nó đã làm tốn rất nhiều tài nguyên của máy.

Thật ra nếu bạn có tăng max cấu hình cho Docker thì nó vẫn không ăn thua gì !!! Vả lại chúng ta còn sử dụng cho mục đích khác nữa nên thôi hạ cấu hình xuống đi và cài docker-sync thôi nào!!! 👍

Để cài đặt docker-sync:

$ sudo gem install docker-sync
$ brew install fswatch
$ brew install unison

Tạo file docker-compose.yml

version: '2'
services:
    # mysql
    mysql:
        image: mysql:5.7
        ports:
            - "3306:3306"
        environment:
            MYSQL_ROOT_PASSWORD: root
    # proxy
    proxy:
        image: jwilder/nginx-proxy:latest
        volumes:
            - /var/run/docker.sock:/tmp/docker.sock:ro
        ports:
            - "80:80"
    # www
    www:
        image: atsu666/ioncube:7.2
        privileged: true
        volumes:
            - web-sync:/var/www/html:cached
            - /etc/localtime:/etc/localtime:ro
        links:
            - mysql:mysql
        environment:
            - VIRTUAL_HOST=localhost
            - APACHE_DOCUMENT_ROOT=/var/www/html
 # volumes
volumes:
    web-sync:
      external: true

Tạo file docker-sync.yml:

version: '2'
syncs:
    web-sync:
        notify_terminal: true
        src: './www'

Chạy docker-sync:

$ docker-sync-stack start

Lưu ý: không chạy lên docker-compose vì docker-sync đã chuẩn bị hết tất cả, từ khâu setup volumes cho đến tạo container,...

Để tắt docker thì chúng ta chỉ việc nhấn Ctrl + C (Window) hoặc Command + C (MacOS), hoặc bạn nào giỏi bash thì có thể viết các lệnh để tắt từng container.

Bài viết đến đây là kết thúc. Hy vọng các bạn có thể tận dụng được docker-sync để tăng tốc cho Docker và đạt được hiệu quả tối ưu nhất.


All rights reserved

Bình luận

Đăng nhập để bình luận
Avatar
@khiconit
thg 12 27, 2019 4:57 CH

😍 hay quá. Thanks bác

Avatar
@Ducmy
thg 12 28, 2019 5:37 SA

Cảm ơn bạn đã ủng hộ, sắp tới mình sẽ viết nhiều bài viết hơn nữa.

Avatar
@Bluemani278
thg 1 1, 2020 4:02 CH

THanks bạn nhé

Avatar
@Ducmy
thg 1 2, 2020 6:34 SA

#Update issue:

Trong một số trường hợp như chạy docker quá lâu, hoặc khi look out máy mac thì hiện tượng giật lắc, chậm chạp cũng có thể xảy ra. Tất nhiên là không thể hoàn hảo hết được, mọi thứ đều có nhược điểm của nó. Cuộc sống mà !!!☺️☺️☺️

Để giải quyết vấn đề này mình đã làm thử một số cách như sau:

 /*  Xoá toàn bộ container */
$ docker rm $(docker ps -a -q) -f
/* Xoá toàn bộ volumes */
$ docker volume prune 
  • Restart lại Docker for Mac
  • Chạy lại docker-sync
$ docker-sync-stack start
Avatar
+7
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí