Docker

Posted by:

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

docker security privacy

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:

 

0