Tìm hiểu cách đơn giản nhất để bắt đầu cơ sở dữ liệu MySQL của bạn với Docker chỉ với hai lệnh.
Docker là một dự án tự động hóa việc triển khai các ứng dụng bên trong các thùng chứa phần mềm. Những container này sẽ được sử dụng để cô lập máy chủ MySQL và máy khách PHPMyAdmin của chúng tôi.
1. Yêu cầu
- Cài đặt Docker - Trên Windows hoặc Mac, truy cập: //docs.docker.com/engine/installation/
- Trên Linux, chỉ cần chạy trên thiết bị đầu cuối:
curl -sSL //get.docker.com/ | sh
curl -sSL //get.docker.com/ | sh
2. Tạo mạng Docker
Phpmyadmin nhất giao tiếp lẫn nhau nên là cần thiết tạo ra một mạng Docker và thêm cả hai vào đó.
# Create the network called "asgard"
docker network create asgard
3. Tạo thùng chứa MySQL
Lệnh sau đây sẽ tạo một thùng chứa MySQL. Dưới đây tôi sẽ chỉ cho bạn các thông số. Thay đổi như bạn muốn và thích ứng với việc sử dụng của bạn.
# Create dir for database data
mkdir -p /opt/mysql
# Create MySQL container
docker run -d \
--name asgard-mysql \
--network asgard \
-e MYSQL_ROOT_PASSWORD="OuPfme45oAM6m6S8lqy4PQfxlYFlCnmPzyaloZ5Zw=" \
-v /opt/mysql:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0.12
4. Tạo thùng chứa phpmyadmin
Lệnh sau đây sẽ tạo một thùng chứa phpmyadmin. Bạn sẽ cần liên kết đến thùng chứa MySQL, vì vậy phpmyadmin có thể kết nối và truy cập cơ sở dữ liệu.
# Create phpMyAdmin container
#
# PMA_HOST is the IP or domain of the MySQL server,
# so we can use the MySQL container name as the domain
# cause the Docker network create the route as a DNS server.
docker run -d \
--name asgard-phpmyadmin \
--network asgard \
-e PMA_HOST=asgard-mysql \
-p 8080:80 \
phpmyadmin/phpmyadmin:edge
5. Truy cập cơ sở dữ liệu
Truy cập trình duyệt và truy cập phpmyadmin. Người dùng mặc định là Root Root và mật khẩu sẽ đặt mật khẩu trên Tạo container MySQL.
Để có quyền truy cập vào phpmyadmin, hãy truy cập: // localhost: 8080/Trong trường hợp của tôi, tôi đã chạy trên một máy ảo và tôi đã truy cập nó từ một địa chỉ IP khác.
In my case, I was running on a Virtual Machine and I was accessing it from a different IP address.
Questions?
Nếu bạn có bất kỳ câu hỏi, chỉ cần để lại các ý kiến dưới đây. Tôi sẽ cố gắng giúp bạn tốt nhất có thể. ^^
Người giới thiệu
- Kho lưu trữ Docker MySQL //hub.docker.com/_/mysql/
//hub.docker.com/_/mysql/ - Kho lưu trữ Phpmyadmin Docker //hub.docker.com/r/phpmyadmin/phpmyadmin/
//hub.docker.com/r/phpmyadmin/phpmyadmin/
- Docker
- Linux
Theo dõi bản tin của chúng tôi
Nhận các bài viết mới nhất được gửi ngay vào hộp thư đến của bạn.
Bây giờ hãy kiểm tra hộp thư đến của bạn và nhấp vào liên kết để xác nhận đăng ký của bạn.
Vui lòng nhập địa chỉ email hợp lệ
Ối! Có một lỗi gửi email, vui lòng thử sau.
Tôi là một kỹ sư chất lượng tại Red Hat / Ansible. Tôi yêu các công cụ tự động hóa, trò chơi và cà phê. Tôi cũng là người đóng góp tích cực cho các dự án nguồn mở trên GitHub.
Đề nghị cho bạn
Hướng dẫn về cách cài đặt MySQL trong một thùng chứa và quản lý nó bằng phpmyadmin
Hình ảnh của Michelle Raponi từ Pixabay.
Right?
Bây giờ chúng tôi trên cùng một trang, bạn thấy vấn đề. Làm thế nào để làm cho nó dễ dàng hơn để quản lý một cơ sở dữ liệu container. Nếu bạn tình cờ là quản trị viên cơ sở dữ liệu, bạn có thể hoàn toàn ở nhà trên dòng lệnh. Nhưng nếu các kỹ năng cơ sở dữ liệu của bạn không phù hợp với nhiệm vụ đó, làm thế nào để bạn thực hiện tất cả các công việc này?
Một cách để đơn giản hóa việc quản lý các triển khai cơ sở dữ liệu MySQL của bạn là với sự trợ giúp của phpmyadmin. Nếu bạn không bao giờ nghe nói về công cụ này, thì đó là một GUI dựa trên web là UI tiêu chuẩn thực tế cho quản trị cơ sở dữ liệu MySQL và Mariadb.
Tôi muốn đưa bạn đi qua quá trình triển khai thùng chứa MySQL và sau đó kết nối một thùng chứa phpmyadmin với cơ sở dữ liệu đó, để quản lý dễ dàng hơn. Với quy trình này, bạn sẽ thấy làm việc với các triển khai container cơ sở dữ liệu MySQL dễ dàng hơn rất nhiều.
Tôi sẽ chứng minh điều này trên Ubuntu Server 20.04, nhưng quá trình này sẽ giống nhau trên bất kỳ nền tảng nào hỗ trợ Docker.
Cài đặt Docker
Tôi có xu hướng thích bắt đầu từ đầu, vì vậy hãy để Lừa có được Docker và chạy đầu tiên. Để thực hiện việc này, hãy đăng nhập vào máy chủ Linux của bạn và cài đặt các phụ thuộc cần thiết với:
sudo apt-get install ca-certificates curl gnupg lsb-release -y
Tiếp theo, thêm khóa Docker GPG chính thức với:
curl -fsSL //download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Thêm kho lưu trữ Docker ổn định bằng lệnh:
echo "deb [arch=$[dpkg --print-architecture] signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] //download.docker.com/linux/ubuntu $[lsb_release -cs] stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Cập nhật APT và cài đặt Docker với:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
Thêm người dùng của bạn vào nhóm Docker với:
sudo usermod -aG docker $USER
Đăng xuất và đăng nhập lại, vì vậy các thay đổi có hiệu lực.
Bây giờ bạn đã sẵn sàng để triển khai các container.
Triển khai cơ sở dữ liệu MySQL
Điều đầu tiên chúng tôi sẽ làm là tạo một khối lượng cho MySQL, vì vậy dữ liệu của chúng tôi sẽ vẫn tồn tại, trong trường hợp container bị lỗi. Để tạo một âm lượng có tên MySQL-volume, hãy đưa ra lệnh:
# Create dir for database data
mkdir -p /opt/mysql
# Create MySQL container
docker run -d \
--name asgard-mysql \
--network asgard \
-e MYSQL_ROOT_PASSWORD="OuPfme45oAM6m6S8lqy4PQfxlYFlCnmPzyaloZ5Zw=" \
-v /opt/mysql:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0.12
0Với âm lượng của chúng tôi đã sẵn sàng, chúng tôi hiện sẽ triển khai thùng chứa MySQL [có tên TNS_MYSQL] và kết nối nó với âm lượng. Lệnh của chúng tôi sẽ trông như thế này:
# Create dir for database data
mkdir -p /opt/mysql
# Create MySQL container
docker run -d \
--name asgard-mysql \
--network asgard \
-e MYSQL_ROOT_PASSWORD="OuPfme45oAM6m6S8lqy4PQfxlYFlCnmPzyaloZ5Zw=" \
-v /opt/mysql:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0.12
1Trong đó PWord là một mật khẩu mạnh/duy nhất.
Ở đây, một lời giải thích về lệnh trên:
Chúng tôi đang chạy bộ chứa
# Create dir for database data
mkdir -p /opt/mysql
# Create MySQL container
docker run -d \
--name asgard-mysql \
--network asgard \
-e MYSQL_ROOT_PASSWORD="OuPfme45oAM6m6S8lqy4PQfxlYFlCnmPzyaloZ5Zw=" \
-v /opt/mysql:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0.12
2 trên cổng MySQL 3306 tiêu chuẩn [cả bên trong và bên ngoài], kết nối khối lượng MySQL-volume của chúng tôi với thư mục/var/lib/mysql trong thùng chứa, tạo mật khẩu mạnh cho tài khoản quản trị viên và chạy Container [dựa trên hình ảnh # Create dir for database data
mkdir -p /opt/mysql
# Create MySQL container
docker run -d \
--name asgard-mysql \
--network asgard \
-e MYSQL_ROOT_PASSWORD="OuPfme45oAM6m6S8lqy4PQfxlYFlCnmPzyaloZ5Zw=" \
-v /opt/mysql:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0.12
3 được kéo từ Dockerhub] ở chế độ daemon [với tùy chọn -D].Lệnh sẽ quay lại với ID container [một chuỗi dài các ký tự ngẫu nhiên], có nghĩa là container MySQL của bạn đã được triển khai thành công.
Cách triển khai container phpmyadmin
Bây giờ, chúng ta có thể triển khai thùng chứa phpmyadmin. Hãy nhớ rằng, chúng tôi đã kết nối nó với thùng chứa MySQL của chúng tôi [có tên
# Create dir for database data
mkdir -p /opt/mysql
# Create MySQL container
docker run -d \
--name asgard-mysql \
--network asgard \
-e MYSQL_ROOT_PASSWORD="OuPfme45oAM6m6S8lqy4PQfxlYFlCnmPzyaloZ5Zw=" \
-v /opt/mysql:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0.12
2]. Điều đầu tiên chúng ta cần làm là tạo một âm lượng cho phpmyadmin với:# Create dir for database data
mkdir -p /opt/mysql
# Create MySQL container
docker run -d \
--name asgard-mysql \
--network asgard \
-e MYSQL_ROOT_PASSWORD="OuPfme45oAM6m6S8lqy4PQfxlYFlCnmPzyaloZ5Zw=" \
-v /opt/mysql:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0.12
5Với âm lượng của chúng tôi đã sẵn sàng, hãy để Lừa triển khai thùng chứa PHPMyAdmin với lệnh:
# Create dir for database data
mkdir -p /opt/mysql
# Create MySQL container
docker run -d \
--name asgard-mysql \
--network asgard \
-e MYSQL_ROOT_PASSWORD="OuPfme45oAM6m6S8lqy4PQfxlYFlCnmPzyaloZ5Zw=" \
-v /opt/mysql:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0.12
6Giải thích về lệnh trên là:
Chúng tôi đang triển khai một container, được đặt tên là TNS-phpmyadmin, sử dụng khối lượng phpmyadmin-volume, kết nối nó với /etc/phpmyadmin/config.usr.inc.php Phpmyadmin, liên kết nó Cổng 80, chạy bộ chứa ở chế độ daemon [với tùy chọn -D] và dựa trên hình ảnh phpmyadmin chính thức mới nhất.
Cách truy cập phpmyadmin
Được rồi, giờ đây chúng tôi đã sẵn sàng truy cập GUI MySQL dựa trên mạng, dựa trên web của chúng tôi. Hãy chắc chắn rằng bạn biết địa chỉ IP của máy chủ lưu trữ [có thể tìm thấy với lệnh ip a]. Mở trình duyệt web và trỏ nó vào // server: 82 [trong đó máy chủ là địa chỉ IP của máy chủ lưu trữ].
Bạn sẽ được trình bày với đăng nhập phpmyadmin [Hình 1].Figure 1].
Hình 1: Container phpmyadmin đã hoạt động và chạy và sẵn sàng để đi.
Đăng nhập bằng root tên người dùng và mật khẩu bạn đã sử dụng khi triển khai thùng chứa MySQL. Sau đó, bạn nên tìm thấy chính mình ở trang PHPMyAdmin chính [Hình 2].Figure 2].
Hình 2: Trang chính PHPMyAdmin đã sẵn sàng cho hành động.
Ở đây, điều này, có lẽ bạn không muốn sử dụng tài khoản gốc từ các thùng chứa của bạn vì đó sẽ là một cơn ác mộng bảo mật. Hãy để tạo ra một cơ sở dữ liệu mới và người dùng mới có quyền đối với cơ sở dữ liệu đó [được sử dụng bởi các ứng dụng container của bạn].
Từ tab Cơ sở dữ liệu, nhập tên của cơ sở dữ liệu mới và nhấp vào Tạo [Hình 3].Figure 3].
Hình 3: Tạo một cơ sở dữ liệu mới từ bên trong GUI phpmyadmin.
Sau khi cơ sở dữ liệu được tạo, nhấp vào tab Đặc quyền và nhấp vào Thêm tài khoản người dùng. Trong cửa sổ kết quả [Hình 4], điền vào tên người dùng, nhập và xác minh mật khẩu mạnh/duy nhất và nhấp vào GO ở phía dưới.Figure 4], fill out a username, type and verify a strong/unique password, and click Go at the bottom.
Hình 4: Thêm người dùng mới vào cơ sở dữ liệu mới được tạo của chúng tôi.
Ở đó, bạn đã tạo ra một cơ sở dữ liệu mới với người dùng liên quan có toàn bộ đặc quyền cho cơ sở dữ liệu đó. Sau đó, bạn có thể sử dụng kết hợp người dùng/cơ sở dữ liệu đó cho ứng dụng Containered của mình, mà không phải lo lắng về sự cố bảo mật do sử dụng tài khoản gốc MySQL. Để làm cho điều này thậm chí còn tốt hơn, bạn có thể dễ dàng quản lý cơ sở dữ liệu container của mình, với sự trợ giúp của GUI dựa trên web đẳng cấp thế giới.
Nhóm được điều chỉnh bằng phác thảo.
Cập nhật ngăn xếp mới Một bản tin Digest của tuần và phân tích quan trọng nhất trong tuần. A newsletter digest of the week’s most important stories & analyses.
Ngăn xếp mới không bán thông tin của bạn hoặc chia sẻ nó với các bên thứ ba không liên kết. Bằng cách tiếp tục, bạn đồng ý với các điều khoản sử dụng và chính sách bảo mật của chúng tôi.
Chủ sở hữu TNS Insight Partners là một nhà đầu tư trong: Docker.