Part 2 – Cài đặt docker trên MacOS (Phần 3)

By | 28 December, 2018

Docker cho Mac cung cấp một ứng dụng native Mac cài đặt /Applications. Nó tạo liên kết tượng trưng (symbolic link) trong /usr/local/bin cho docker và docker-compose với các phiên bản Mac với các lệnh trong gói ứng dụng.

Cài đặt gói Docker cho Mac:

  1. Docker Engine
  2. Docker CLI Client
  3. Docker Compose
  4. Docker Machine

Bạn đã chạy Docker Toolbox và / hoặc Docker Machine?

Nếu vậy, bạn cần phải làm thêm một chút công việc. Trước tiên, hãy kiểm tra xem các biến môi trường của Docker Toolbox có được đặt hay không:

$ env | grep DOCKER
DOCKER_HOST=tcp://192.168.1.100:2376
DOCKER_MACHINE_NAME=default
DOCKER_TLS_VERIFY=1
DOCKER_CERT_PATH=/Users/username/.docker/machine/machines/default

Nếu bạn không nhận được output, bạn có thể tiếp tục và sử dụng Docker cho Mac. Tuy nhiên, nếu có output (như trong ví dụ), bạn cần phải bỏ đặt biến Docker vì vậy client có thể nói chuyện với Docker cho Mac Engine. Sử dụng:

$ unset DOCKER_TLS_VERIFY
$ unset DOCKER_CERT_PATH
$ unset DOCKER_MACHINE_NAME
$ unset DOCKER_HOST

Nếu bạn sử dụng Bash, bạn có thể sử dụng unset ${!DOCKER_*} để hủy đặt tất cả các biến môi trường Docker (điều này không hoạt động trong các shell khác, như zshhoặc csh).

Khi bạn chạy env | grep DOCKER, bạn sẽ thấy không có output.

Chạy Docker Toolbox và Docker cho Mac trên cùng một máy chủ

Bạn có thể chạy cả Docker Toolbox và Docker cho Mac trên cùng một hệ thống, nhưng không phải cùng một lúc .

Khi bạn sử dụng Docker cho Mac, bạn cần hủy đặt tất cả các biến môi trường của mình, sử dụng một trong các phương pháp trên. Khi bạn muốn sử dụng máy ảo VirtualBox mà bạn đã thiết lập docker-machine, chỉ cần chạy eval $(docker-machine env default)(giả sử bạn muốn dùng machine làm mặc định).

Docker machine

Docker cho Mac không ảnh hưởng đến các machine trước đó được tạo thông qua Docker Machine, Việc cài đặt cung cấp cho bạn tùy chọn sao chép các container và image từ default local nếu bạn có.

Yêu cầu

Bạn phải có máy Mac:

  1. 2010 hoặc mới hơn, với Bộ quản lý bộ nhớ phần cứng (MMU) của Intel.
  2. OS X 10.10.3 Yosemite hoặc mới hơn (hoặc macOS).
  3. Ít nhất 4 GB RAM.
  4. Bạn không được cài đặt VirtualBox sớm hơn phiên bản 4.3.30 trên hệ thống của mình. Nếu bạn làm như vậy, bạn sẽ cần phải gỡ cài đặt nó.

Trước khi bạn cài đặt

Dành vài phút để hiểu một số khái niệm chính trước khi bạn cài đặt Docker.

Trên bản cài đặt của Linux Linux, client Docker, daemon và tất cả các container chạy trực tiếp trên localhost, nghĩa là bạn có thể truy cập các cổng trên bộ chứa Docker bằng cách sử dụng địa chỉ localhost; một cái gì đó như localhost:8080 hoặc 0.0.0.0:8376.

Trên macOS, daemon của Docker chạy bên trong máy ảo Linux. Client Docker macOS nói chuyện với máy chủ Docker VM và các container của bạn chạy trên máy chủ. Bạn không thể sử dụng localhost trong cài đặt này; thay vào đó, ánh xạ các cổng của container tới các cổng của VM. Nếu VM của bạn có địa chỉ IP 10.0.0.5, hãy truy cập các cổng như 10.0.0.5:8000 hoặc 10.0.0.5:8376.

Cài đặt

  1. Tải xuống Docker .
  2. Bấm đúp vào tệp DMG và kéo và thả Docker vào thư mục Ứng dụng của bạn.
  3. Bạn cần phải ủy quyền cài đặt với mật khẩu hệ thống của bạn.
  4. Nhấp đúp Docker.app để bắt đầu Docker.
  5. Biểu tượng cá voi trong thanh trạng thái của bạn cho biết Docker đang chạy và có thể truy cập.
  6. Docker hiển thị một số thông tin về việc hoàn thành các task và link đến tài liệu.
  7. Bạn có thể truy cập các cài đặt và các tùy chọn khác từ biểu tượng cá voi trong thanh trạng thái. Chọn About Dockerđể đảm bảo bạn có phiên bản mới nhất.

xác minh

Kiểm tra các phiên bản của Docker Engine, Compose và Machine.

$ docker --version
$ docker-compose --version
$ docker-machine --version

Chạy máy chủ web Dockerized để đảm bảo mọi thứ hoạt động:

$ docker run -d -p 80:80 --name webserver nginx
nginx-docker

Những vấn đề gặp phải phổ biến

Hệ điều hành

Thật không may, nếu bạn không chạy được “Mountain Lion” or later, bạn không thể chạy Docker cho Mac. Bạn có thể nâng cấp HĐH lên phiên bản khả thi gần đây nhất, miễn là hệ thống của bạn hỗ trợ.

Shell Script

Nếu bạn sử dụng tập lệnh shell để đặt các biến môi trường Docker mỗi khi bạn mở cửa sổ lệnh (Terminal), bạn cần hủy đặt các biến mỗi khi bạn sử dụng Docker cho Mac (thay vào đó, bạn có thể viết tập lệnh shell để theo dõi và bỏ đặt các biến).

Nhiều phiên bản Docker

Docker cho Mac thay thế docker và docker-compose với các phiên bản của chính nó; nếu bạn đã có Docker Toolbox trên máy Mac, Docker cho Mac vẫn thay thế các file nhị phân của các bản cũ. Bạn muốn client Docker và Engine khớp với các phiên bản; sự không phù hợp có thể gây ra vấn đề trong đó client và server không thể giao tiếp. Nếu bạn đã có Docker Toolbox, và sau đó bạn cài đặt Docker cho Mac, bạn có thể có phiên bản mới hơn của ứng dụng client Docker. Chạy docker version trong shell lệnh sẽ hiển thị phiên bản của client và s bạn có trên hệ thống của mình.

Điều này cũng có thể xảy ra nếu bạn sử dụng Docker Universal Control Plane (UCP).

Nếu bạn muốn hỗ trợ cả Docker Toolbox  Docker cho Mac, hãy xem Trình quản lý phiên bản Docker (DVM) .