I. Docker là gì ?
Docker – đây là một công cụ tạo môi trường được “đóng gói” (còn gọi là Container) trên máy tính mà không làm tác động tới môi trường hiện tại của máy, môi trường trong Docker sẽ chạy độc lập.
Một số developer thường tạo sẵn các môi trường này, và upload lên mạng để mọi người lấy về dùng, và mấy cái này gọi là các Images.
Docker là công cụ tạo môi trường đóng gói, nó còn đóng gói cả hệ điều hành trong đó, vậy Docker khác máy ảo chỗ nào?
Docker hoạt động bằng cách cung cấp phương thức tiêu chuẩn để chạy mã của bạn. Docker là hệ điều hành dành cho container. Cũng tương tự như cách máy ảo ảo hóa (loại bỏ nhu cầu quản lý trực tiếp) phần cứng máy chủ, các container sẽ ảo hóa hệ điều hành của máy chủ. Docker được cài đặt trên từng máy chủ và cung cấp các lệnh đơn giản mà bạn có thể sử dụng để dựng, khởi động hoặc dừng container.
Tóm lại, Docker:
- Docker rất tốt tại việc xây dựng và chia sẻ Disk Image qua hệ thống Docker Index
- Docker là một phần mềm quản lý cơ sở hạ tầng.
- Docker làm việc tuyệt vời với các công cụ quản lý file config (vd: Chef, Puppet)
- Docker sử dụng btrfs để giảm sát các file hệ thống và có thể được chia sẻ với user khác. (Như cách hoạt động của Git)
- Docker có một bộ kho trung tâm của các Disk Images (có thể được public hoặc private), điều này cho phép bạn dễ dàng chạy trên nhiều hệ điều hành khác nhau (Ubuntu, Centos, Fedora, Gentoo).
Cài Docker trên macos:
$brew install docker
Cài virtualbox, có một vài lưu ý
$brew install virtualbox
Sau khi download xong, install sẽ cần phải nhập password login vào máy. Nếu install thất bại thì vào
Chọn allow rồi install lại.
Tạo docker machine với tên là default
$docker-machine create --driver virtualbox default
Xem danh sách docker machine
$docker-machine ls
Chúc mừng bạn đã install docker thành công, giờ bạn có thể thoải mái test docker của mình rồi.
$docker run hello-world
Nhớ stop docker-machine khi không cần dùng docker nữa
$docker-machine stop default
Một số lệnh docker machine
$docker-machine config
$docker-machine env
$docker-machine inspect
$docker-machine ip
$docker-machine kill
$docker-machine provision
$docker-machine regenerate-certs
$docker-machine restart
$docker-machine ssh
$docker-machine start
$docker-machine status
$docker-machine stop
$docker-machine upgrade
$docker-machine url
Muốn cài trực tiếp thì vào link này: https://docs.docker.com/docker-for-mac/install/
II. Các lệnh cơ bản ?
Google để tìm kiếm images trên docker hub: docker image for tomcat
docker pull tomcat
Sau khi pull image tomcat về muốn run image với default setting
docker run -it --rm tomcat:9.0
Muốn custom port lại thì
docker run -it --rm -p 8888:8080 tomcat:9.0
Sau đây là những lệnh list List images đang có
docker images
List những containers đang start hay off
docker ps
Build image, để build được image thì cần phải có file:
Dockerfile
$docker build image -t <image_name> .
III. Docker Postgres
Bây giờ thử cài posgres với docker thì như thế nào nhé. Đầu tiên ta lấy
image
postgres từ hub docker về
$docker pull postgres
Ở đây mình lấy version mới nhất, còn muốn lấy version cũ hơn thì
$docker pull postgres:[tag]
$docker pull postgres:9.6.17
Còn muốn biết tag bao nhiêu thì vào đây: https://hub.docker.com/_/postgres?tab=tags
Tạo folder để mapping data ở trong docker postgres ra ngoài thư mục dễ truy xuất.
$mkdir -p $HOME/docker/volumes/postgres9
Chạy postgres container
$docker run —name
<some-postgres>
-e POSTGRES_PASSWORD=
<mysecretpassword>
-d postgres
$docker run --name postgres-9 -e POSTGRES_PASSWORD=12345 -d -p 5432:5432 -v $HOME/docker/volumes/postgres9:/var/lib/postgresql/data postgres
$docker ps
Chui vào con docker
$docker exec -it postgres-9 bash
$psql -U postgres
$postgres=# \i /var/abc.sql
$postgres=# \q
$exit
Xoá container khi không chơi với nó nữa.
$docker rm -f postgres-9
Tham khảo:
- https://docs.docker.com/docker-for-mac/
- https://docs.docker.com/machine/get-started/
- https://cloud.google.com/sdk/docs/quickstart-macos
- https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
Share
MAR
2020