Sử dụng Docker trên macOS(P2)
Bài đăng này đã không được cập nhật trong 6 năm
1. Một số docker command thông dụng.
- Như phần trước chúng ta đã cùng làm quen quavới docker, tiếp đến phần này chúng ta sẽ cùng ôn lại và mở rộng một số lệnh command nhập môn khác nhé:
- Chúng ta cùng chạy lệnh hello-worldđể kiểm tra các container:
docker run hello-world
docker ps -a

- Bây giờ chúng ta đã thấy một số container khác với các Id và names khác nhau. Chúng ta có thể xoá các container với một câu lệnh duy nhất như: docker rm e5d stupefied_gates. Kết quả sẽ cho ra các containerid với names chúng ta đã xoá bỏ. Chúng ta sẽ kiểm tra các container còn lại vớidocker ps -a. Để thuận thiện cho quá trình làm việc với docker chúng ta sẽ cần đặt những names container riêng biệt, ví dụ như hãy cùng chạy lệnh:
docker run --name khanhnp hello-world
- Sau đó kiểm tra chúng ta sẽ có kết quả như sau:
 
docker run --name khanhnp hello-world
- Nhưng nếu chúng ta tiếp tục chạy lệnh trên thì sẽ có kết quả gì? Chúng ta sẽ thu được lỗi như hình bên dưới, đây là cách hữu hiệu để docker tránh spam gây ảnh hưởng cho quá trình người sử dụng
 
- Tiếp tới chúng ta sẽ sử dụng một trick hiệu quả để chạy docker run hello-worldnhiều lần. Để tránh mất dấu container trong thư mục bừa bộn chúng ta đã bày ra thì chúng ta có thể chạy lệnh:
docker ps -a -q -f status=exited

- Câu lệnh docker ps -achúng ta sử dụng để show ra tất cả container trong hệ thống của chúng ta. Chúng ta có thể mở rộng với 2 cách dùng. Option-qviết tắt cho--quiet- command chỉ hiển thị số id. Option-fviết tắt cho--filter- lọc với điểu kiệnstatus-exited.
- Bây giờ thay vì copy paste từng id trong docker rm, chúng ta chỉ cần chạy:
docker rm $(docker ps -a -q -f status=exited)
- Những lệnh trong $()sẽ được ưu tiên chạy đầu, lấy ra những ID đã exited khỏi container và xoá tất cả chúng - COOL.
- Chúng ta đã xoá container, giờ chúng ta cũng cần xoá image:
docker rmi hello-world
- Chúng ta sẽ thu được kết quả như sau:
 
- Cùng kiểm tra các image với lệnh : docker images 
- Toát mồ hôi nhỉ, chúng ta đã cùng dạo qua những lệnh tối thiểu để dùng docker, tiếp đó chúng ta sẽ cùng làm những thứ thực tế hơn nhé: 
2. Chạy một web app sử dụng docker container.
- Rất nhiều iOS app kết nối với web server phục vụ việc bạn muốn tương tác giữa ios app với web app. Bạn có thể chạy web app local mà không sử dụng docker, nhưng sử dụng docker sẽ khiến công việc trở nên dễ dàng hơn rất nhiều.
- Bắt đầu với một web app đơn giản từ IBM Kitura. Cùng mở trình duyệt lên 	Docker Hub gõ kitura và search, chúng ta sẽ có kết quả:
 
- Chúng ta sẽ pull về với command docker pull ibmcom/kitura-ubuntu
- ibmcom/kitura-ubuntuimage layer là một web app dựa trên kitura app framework phục vụ swift-ubuntu: 
- Khi việc pull hoàn tất cùng chạy lệnh docker run ibmcom/kitura-ubuntuchúng ta thu được: 
- Chúng ta mở kết nối 8080 nhưng chưa có gì hiện ra cả, tiếp tới chúng ta sẽ phải chạy docker run -p 80:8080 --name kitura -d ibmcom/kitura-ubuntu 
- Giờ cùng mở kết quả localhost:80lên và chúng ta sẽ thấy web app chúng ta đã được kết nối: 
- Chúng ta có thể chạy container thứ 2 là docker run -p 90:8080 --rm --name kitura2 ibmcom/kitura-ubuntuvà mởlocalhost:90và thấy 1 web app tương tự.
- Để dừng việc chạy web app chúng ta có thể sử dụng docker stop kitura2, sau đó kiểm tra bằng lệnh:docker ps -avà thấy image 1 vẫn hoạt động. Để dừng hoàn toàn chúng ta cần tiếp tục gõ lệnh:docker stop kitura 
- Việc khởi động lại cũng đơn giản hơn với lệnh docker start kitura. Refreshlocalhost:80và ta thấy web app đã hoạt động.
- Việc chạy web app đã đơn giản hoá qua chạy container của docker. Phần tới chúng ta sẽ thử chạy web app với database nhé. See you next time.Hehe
All rights reserved
 
  
 