Cài đặt Docker - Giới thiệu: Docker là một công cụ giúp cho việc tạo ra và triển khai các container để phát triển, chạy ứng dụng được dễ dàng.. Các container là môi trường, mà ở đó lập t
Trang 1Báo Cáo Cài Đặt Môi Trường Xử Lý
Database
Họ và Tên : Hoàng Trọng Quý Chuyên Ngành: Trí Tuệ Nhân Tạo (AI)
Trường: ĐH FPT Hà Nội
Vị trí: Intern VSS_Data
Hà Nội, ngày 10 tháng 6 năm 2023
Trang 2Mục Lục
I Công cụ: 2
II Docker 2
1 Cài đặt Docker 2
2 Các câu lệnh cơ bản 2
3 Image & Container 3
a Image 3
b Container 4
4 Chia sẻ dữ liệu giữa 4
a Container - ánh xạ thư mục máy Host 4
b Chia sẻ dữ liệu giữa các Container 5
c Quản lý các ổ đĩa với docker volume 5
5 Mạng Network 5
6 Docker Compose 6
7 MySQL & MariaDB 6
a MySQL 6
b MariaDB 8
III Mobaxterm 8
1 Tải MobaXterm 8
2 Sử dụng MobaXterm để truy cập SSH 8
IV Dbeaver 11
1 Tải Dbeaver 11
2 Setup Dbeaver với SSH tunnel 12
V Tài Liệu Tham Khảo 13
Trang 3I Công cụ:
Docker, MariaDb
VMWare/Centos 7/Hệ điều hành Linux
1 Cài đặt Docker
- Giới thiệu:
Docker là một công cụ giúp cho việc tạo ra và triển khai các container để phát triển, chạy ứng dụng được dễ dàng Các container là môi trường, mà ở đó lập trình viên đưa vào các thành phần cần thiết để ứng dụng của họ chạy được, bằng cách đóng gói ứng dụng cùng với container, nó đảm bảo ứng dụng chạy được và giống nhau ở các máy khác nhau (Linux, Windows, Desktop, Server )
- Cài đặt Docker trên CentOS7:
+ Update hệ thống:
yum -y update
yum -y install yum-utils device-mapper-persistent-data lvm2
+ Thêm Docker stable repository:
yum-config-manager add-repo https://download.docker.com/linux/centos/docker-ce.repo + Cài đặt Docker trên CentOS 7:
yum -y install docker-ce
+ Khởi động docker:
systemctl start docker
systemctl enable docker
systemctl status docker / check active of docker
+ Cài đặt Docker Compose:
curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker- compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
2 Các câu lệnh cơ bản
Trang 4docker –version / docker info
- Kiểm tra thông tin các image có trên docker hub: docker search
- Tải các image trên docker hub về:
docker pull
- Liệt kê các image có trên máy
docker images
- Tạo 1 container với images
docker run
- Liệt kê các container
docker ps
- Dừng 1 container đang chạy
docker stop
- Start lại container đã dừng trước đó
docker start
- Dùng để xóa container đã tạo trước đó docker rm
3 Image & Container
a Image
Trang 5- file cấu hình, biến môi trường để chạy mội ứng dụng nào đó
docker images -a : Kiểm tra các image đang có
- Repository tên image trên kho chứa, ví dụ hệ điều hành CentOS có tên trên hub.docker.com là centos (xem centos)
- TAG là phiên bản image, với giá trị latest có nghĩa là bản cuối Muốn tải về bản khác latest vào mục TAGS trên hub.docker.com tìm bản phù hợp
- IMAGE ID một chuỗi định danh duy nhất (tên) của image trên hệ thống của bạn
b Container
- Khi một phiên bản của image chạy, phiên bản chạy đó gọi là container - (vậy muốn có container phải có image)
docker container ls –all : Liệt kê tất cả các container
- CONTAINER ID một con số (mã hash) gán cho container, bạn dùng mã này để quản lý container này, như xóa bỏ, khởi động, dừng lại
- IMAGE cho biết container sinh ra từ image nào
- COMMAND cho biết lệnh, ứng dụng chạy khi container chạy (/bin/bash là terminate)
- STATUS cho biết trạng thái, (exit - đang dừng)
docker run [OPTIONS] IMAGE [COMMAND] [ARG ]
- [OPTIONS] các thiết lập khi tạo container, có rất nhiều thiết lập tùy mục đích tạo container, sẽ tìm hiểu các thiết lập qua từng trường hợp cụ thể
- IMAGE tên image hoặc ID của image từ nó sinh ra container
- [COMMAND] [ARG ] lệnh và tham số khi container chạy
4 Chia sẻ dữ liệu giữa
a Container - ánh xạ thư mục máy Host
Thư mục cần chia sẻ dữ liệu trên máy host là: path_in_host Khi chạy container thư mục đó được mount - ánh xạ tới path_in_container của container
Ex:
docker run -it -v /home/sitesdata:/home/data
Trang 6b Chia sẻ dữ liệu giữa các Container
- Có container với id hoặc name là container_first, trong đó nó có mount thư mục
Host vào (hoặc đã được chia sẻ tử Container khác)
- Giờ chạy, tạo container khác cũng nhận thư mục chia sẻ dữ liệu như container_first Để làm điều đó thêm vào tham số volumes-from
container_first
Ex:
docker run -it volumes-from container_first
c Quản lý các ổ đĩa với docker volume
- Có thể tạo và quản lý các ổ đĩa bên ngoài container, lệnh làm việc với ổ đĩa là docker volume
+ Liệt kê danh sách các ổ đĩa:
docker volume ls
+ Tạo một ổ đĩa:
docker volume create name_volume
+ Xem thông tin chi tiết về đĩa:
docker volume inspect name_volume
+ Xóa một ổ đĩa:
docker volume rm name_volume
5 Mạng Network
Network trong Docker, liên kết mạng các container
- Docker cho phép tạo ra một network (giao tiếp mạng), sau đó các container kết nối vào
network Khi các container cùng một network thì chúng có thể liên lạc với nhau nhanh chóng qua tên của container và cổng (port) được lắng nghe của container trên mạng đó
+ Liệt kê các network đang có:
docker network ls
- Các network được tạo ra theo một driver nào đó như bridge none overlay macvlan, , , Trong phần này sẽ sử dụng đến bridge network: nó cho phép các container cùng network này liên lạc với nhau, cho phép gửi gói tin ra ngoài Tạo một bridge network với tên network
là name-network
docker network create driver bridge name-network
Trang 7- Khi tạo một , ấn định nó nối vào network có tên là name-network thì thêm vào tham số network name-netowrk trong lệnh docker run Khi một container có tên name-container đã được tạo, để thiết lập nó nối vào network có tên name-network
docker network connect name-network name-container
Cổng - Port
- Các kết nối mạng thông qua các cộng, để thiết lập cấu hình các cổng của container chú
ý: có cổng bên trong container, có cổng mở ra bên ngoài (public), có giao thức của cổng (tpc,
udp) Khi chạy container (tạo) cần thiết lập cổng thì đưa vào lệnh docker run
docker run -p public-port:target-port/protocol
public-port : cổng public ra ngoài (ví dụ 80, 8080 ), các kết nối không cùng network đến container phải thông qua cổng này
target-port : cổng bên trong container, cổng public-port sẽ ánh xạ vào cổng này Nếu các container cùng network có thể kết nối với nhau thông qua cổng này
6 Docker Compose
Docker Compose với file docker-compose.yml
File docker-compose.yml gần giống ý nghĩa với file Dockerfile là một file text, viết với định dạng YAML (Ain’t Markup Language, đọc nhanh định dạng Định dạng YML) là
cấu hình để tử đó lệnh docker compose sinh ra và quản lý các service (container),
các network, các ổ đĩa cho một ứng dụng hoàn chỉnh
- Lệnh docker-compose:
+ Tạo và chạy các thành phần định nghĩa trong docker-compose.yml:
docker-compose up
+ Dừng và xóa: image, container, mạng, đĩa tạo ra:
docker-compose down
+ Theo dõi Logs từ các dịch vụ:
docker-compose logs [SERVICES]
7 MySQL & MariaDB
a MySQL
- Tải xuống MySQL Docker Image
docker pull mysql:latest
- Khởi chạy MySQL Container
Trang 8docker run name mysql -p 3306:3306 -v
mysql_volume:/var/lib/mysql/ -d -e
"MYSQL_ROOT_PASSWORD=temp123" mysql
–name: Đặt tên cho vùng chứa Nếu không chỉ định cờ này, docker sẽ
chỉ định một số tên được tạo ngẫu nhiên
-p: Bản đồ cổng MySQL sẽ lắng nghe tại cổng 3306 vì vậy chúng tôi
đang lập bản đồ các cổng (3306 → 3306) từ máy chủ của bạn đến bộ chứa docker Cổng máy chủ không cần thiết phải 3306nó có thể là bất cứ thứ gì có sẵn để sử dụng
-v : Đính kèm một khối lượng vào hộp chứa Hành vi mặc định của
docker là nó sẽ không tồn tại dữ liệu sau khi vùng chứa bị xóa, vì vậy bạn
sẽ mất tất cả dữ liệu của mình
d : Sẽ khởi động và chạy vùng chứa ở chế độ tách rời Nếu bạn bỏ qua
-dsau đó bạn sẽ thấy nhật ký khởi động vùng chứa trong thiết bị đầu cuối
và bạn phải mở một phiên thiết bị đầu cuối mới để kết nối với vùng chứa
-e : Các biến môi trường.
o MYSQL_ROOT_PASSWORD : Thiết lập mật khẩu của riêng bạn
bằng cách sử dụng biến môi trường này
o MYSQL_ALLOW_EMPTY_PASSWORD : Mật khẩu trống hoặc Null
sẽ được thiết lập
o MYSQL_RANDOM_ROOT_PASSWORD : mật khẩu ngẫu nhiên sẽ
được tạo khi vùng chứa được khởi động
- Kiểm tra trạng thái vùng chứa MySQL
docker ps
- Kết nối với cơ sở dữ liệu MySQL
docker exec -it 282330696f9f bash
mysql -uroot -p
Trang 9b MariaDB
- Cài đặt images MariaDB mặc định
docker pull mariadb:10.4
- Tạo Container
docker run name mariadbtest -e MYSQL_ROOT_PASSWORD=mypass -p 3306:3306 -d
- Chạy và dừng Container
+ Khởi động lại một container
docker restart mariadbtest + Stop container:
docker stop mariadbtest + Xóa container:
docker rm mariadbtest
1 Tải MobaXterm
Link tải: https://mobaxterm.mobatek.net/download-home-edition.html
2 Sử dụng MobaXterm để truy cập SSH
Trang 12IV Dbeaver
1 Tải Dbeaver
Link tải: https://dbeaver.io/files/dbeaver-ce-latest-x86_64-setup.exe
Trang 132 Setup Dbeaver với SSH tunnel
- Chọn ‘Database’ -> ‘New Database Connection’
- Chọn database sử dụng
- Chọn ‘Connection Settings’
Trang 14Database: tên Database Username
Password
- Chọn ‘SSH’ -> ‘Use SSH Tunnel’
Host/IP: IP sever Port: 22 Username: username server Password username
- Tài Liệu Docker: https://xuanthulab.net/gioi-thieu-ve-docker-lam-quen-voi-docker-tao-container.html
- https://mobaxterm.mobatek.net/download-home-edition.html
- https://dbeaver.io/files/dbeaver-ce-latest-x86_64-setup.exe