In Action Tutorial Series - Docker - Làm quen với Docker Machine
Bài đăng này đã không được cập nhật trong 7 năm
I. Docker machine là gì?
- Tình huống: Ví dụ hàng ngày bạn phải chạy, quản lý docker trên rất nhiều môi trường như: trên laptop của bạn, trong máy ảo trên laptop của bạn, trên amazon,.... Bạn phải lặp đi lặp lại các thao tác ssh vào các môi trường đó để chạy docker, nhiều khi còn bị loạn vì có quá nhiều môi trường. Và docker đã sinh ra một công cụ rất hữu hiệu để giải quyết vấn đề này. Đó chính là docker machine!
- Docker machine là công cụ giúp bạn quản lý và chạy docker engine trong máy ảo và trên cloud một cách dễ dàng mà bạn không cần trực tiếp phải ssh vào trong máy ảo hoặc cloud đó.
II. Cài đặt
- Mac:
$ curl -L https://github.com/docker/machine/releases/download/v0.10.0/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine && \
chmod +x /usr/local/bin/docker-machine
- Linux:
$ curl -L https://github.com/docker/machine/releases/download/v0.10.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine &&
chmod +x /tmp/docker-machine &&
sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
- Windows:
$ if [[ ! -d "$HOME/bin" ]]; then mkdir -p "$HOME/bin"; fi && \
curl -L https://github.com/docker/machine/releases/download/v0.10.0/docker-machine-Windows-x86_64.exe > "$HOME/bin/docker-machine.exe" && \
chmod +x "$HOME/bin/docker-machine.exe"
III. Cách sử dụng
Docker machine giúp chung ta kết nối đến nhiều môi trường (env) khác nhau. Mỗi môi trường cần 1 driver khác nhau để kết nối. Nhìn chung driver được chia thành 2 loại chính. Mình sẽ áp dụng 2 driver phổ biến là virtualbox và generic thôi nhé
- Local driver:
- virtualbox
- vmware
- hyperv
- Cloud driver:
- generic
- digitialocean
- amazon
- azure
1. Tạo machine
Cú pháp chung
$ docker-machine create --driver <loại_driver> <tên>
- Với driver virtualbox. Cài virtualbox trước khi chạy lệnh này nhé
$ docker-machine create --driver virtualbox my_virtualbox
- Với driver generic. Giúp các bạn kết nối tới server cloud không có trong official cloud driver (digitial ocean, amazon,...). Lưu ý user phải có quyền root và ko hỏi mật khẩu khi thực hiện quyền sudo (passwordless sudoer)
$ docker-machine create \
--driver generic \
--generic-ip-address=<ip_server> \
--generic-ssh-key ~/.ssh/id_rsa \
--generic-ssh-user root
my_custom_cloud
Ok vậy là đã tạo xong machine. Kiểm tra danh sách các machine
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
my_virtualbox * virtualbox Running tcp://192.168.99.100:2376 v17.05.0-ce
2. Chọn machine
$ docker-machine env my_virtualbox
#export DOCKER_TLS_VERIFY="...."
#export DOCKER_HOST="....."
#export DOCKER_CERT_PATH="...."
#export DOCKER_MACHINE_NAME="my_virtualbox"
$ eval "$(docker-machine env my_virtualbox)"
Câu lênh này sẽ lấy thông tin từ kết nối my_virtualbox rồi xuất các biến môi trường tương ứng. Do đó khi muốn sử dụng docker ở môi trường khác chỉ cần đổi tên machine là xong .
3. Sử dụng
Sau khi đã chọn machine bạn sử dụng docker như bình thường. Nhưng thực ra nó đang được thực thi tại machine bạn đã chọn
4. Hủy machine. Về mặc định
eval $(docker-machine env -u)
5. Một số lênh hữu dụng
$ docker-machine active
: liệt kê các machine đang hoạt động$ docker-machine config <machine_name>
: hiện cấu hình của machine$ docker-machine rm <machine_name>
: hủy machine$ docker-machine restart | start | stop <machine_name>
: khởi động lại | khởi động | dừng machine$ docker-machine ssh <machine_name>
: ssh vào machine
Mong bài viết này cung cấp cho bạn một số kiến thức cơ bản về docker machine cũng như áp dụng nó vào quá trình học tập, làm việc của mình. Thanks for reading
Nguồn: https://docs.docker.com/
All rights reserved