0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Hướng dẫn chi tiết 3 dự án Docker: Cách triển khai ứng dụng Web Flask, Node.js và WordPress

Đăng vào 2 tuần trước

• 4 phút đọc

Chủ đề:

Docker

Giới thiệu về Docker

Docker đã trở thành một trong những công cụ container hóa phổ biến nhất trong lĩnh vực DevOps. Nó cung cấp giải pháp hiệu quả cho việc phát triển, triển khai và vận hành các ứng dụng. Trong bài viết này, chúng ta sẽ khám phá ba dự án Docker thực tế, bao gồm cách container hóa ứng dụng Web Flask, ứng dụng Node.js kết hợp với MongoDB, và triển khai WordPress với MySQL thông qua Docker Compose. Những dự án này không chỉ giúp bạn nắm vững cách sử dụng Docker mà còn nâng cao khả năng lập trình ứng dụng của bạn.

1. Dự án Ứng Dụng Web Flask

Tổng quan

Dự án này sẽ hướng dẫn bạn cách container hóa một ứng dụng web đơn giản được xây dựng bằng Flask - một framework Python nhẹ, cho phép bạn dễ dàng tạo ứng dụng web.

Các bước thực hiện:

Bước 1: Thiết lập Ứng Dụng Flask

  • Tạo thư mục dự án:
Copy
  mkdir flask-docker-app
  cd flask-docker-app
  • Tạo tệp app.py trong thư mục:
Copy
# app.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, Dockerized Flask App!"

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)
  • Thêm tệp requirements.txt để định nghĩa các phụ thuộc:
Copy
Flask==2.0.3

Bước 2: Tạo Dockerfile

Tạo tệp Dockerfile trong cùng thư mục:

Copy
# Sử dụng image Python chính thức
FROM python:3.9-slim

# Thiết lập thư mục làm việc
WORKDIR /app

# Sao chép nội dung thư mục hiện tại vào container
COPY . /app

# Cài đặt các phụ thuộc
RUN pip install --no-cache-dir -r requirements.txt

# Mở cổng 5000 cho ứng dụng
EXPOSE 5000

# Định nghĩa biến môi trường
ENV FLASK_APP=app.py

# Chạy ứng dụng
CMD ["flask", "run", "--host=0.0.0.0", "--port=5000"]

Bước 3: Xây dựng và Chạy Container Docker

  • Xây dựng Docker image:
Copy
  docker build -t flask-app .
  • Chạy Docker container:
Copy
  docker run -d -p 5000:5000 flask-app

Truy cập ứng dụng tại http://localhost:5000 để xem ứng dụng Flask đang chạy.

2. Dự án Ứng Dụng Node.js và MongoDB

Tổng quan

Dự án này sử dụng Docker Compose để triển khai một ứng dụng Node.js kết hợp với MongoDB, cho phép bạn quản lý ứng dụng đa container một cách dễ dàng hơn.

Các bước thực hiện:

Bước 1: Thiết lập Ứng Dụng Node.js

  • Tạo thư mục dự án:
Copy
  mkdir node-mongo-app
  cd node-mongo-app
  • Khởi tạo dự án Node.js và cài đặt các thư viện cần thiết:
Copy
  npm init -y
  npm install express mongoose
  • Tạo tệp server.js:
Copy
const express = require('express');
const mongoose = require('mongoose');

const app = express();

mongoose.connect('mongodb://mongo:27017/dockerApp', { useNewUrlParser: true, useUnifiedTopology: true })
    .then(() => console.log('MongoDB connected'))
    .catch(err => console.log(err));

app.get('/', (req, res) => {
    res.send('Hello from Node.js and MongoDB app in Docker!');
});

const PORT = 3000;
app.listen(PORT, () => {
    console.log(`Server running on port ${PORT}`);
});

Bước 2: Tạo Dockerfile cho Node.js

Copy
# Sử dụng image Node.js chính thức
FROM node:14

# Thiết lập thư mục làm việc trong container
WORKDIR /app

# Sao chép và cài đặt phụ thuộc
COPY package*.json ./
RUN npm install

# Sao chép mã nguồn ứng dụng
COPY . .

# Mở cổng ứng dụng
EXPOSE 3000

# Chạy ứng dụng
CMD ["node", "server.js"]

Bước 3: Tạo Tệp Docker Compose

Tạo tệp docker-compose.yml:

Copy
version: '3'
services:
  nodeapp:
    build: .
    ports:
      - '3000:3000'
    depends_on:
      - mongo
    volumes:
      - .:/app
  mongo:
    image: mongo
    ports:
      - '27017:27017'

Bước 4: Xây dựng và Chạy Ứng Dụng

  • Chạy ứng dụng sử dụng Docker Compose:
Copy
  docker-compose up --build

Truy cập ứng dụng tại http://localhost:3000.

3. Dự án Triển Khai WordPress và MySQL

Tổng quan

Trong dự án này, chúng ta sẽ thiết lập một trang web WordPress được hỗ trợ bởi MySQL, minh họa cách tạo môi trường giống như production với Docker Compose.

Các bước thực hiện:

Bước 1: Docker Compose cho WordPress và MySQL

Tạo tệp docker-compose.yml:

Copy
version: '3'
services:
  wordpress:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress_user
      WORDPRESS_DB_PASSWORD: wordpress_password
      WORDPRESS_DB_NAME: wordpress_db
    volumes:
      - ./wp_data:/var/www/html

  db:
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: wordpress_db
      MYSQL_USER: wordpress_user
      MYSQL_PASSWORD: wordpress_password
      MYSQL_ROOT_PASSWORD: root_password
    volumes:
      - ./db_data:/var/lib/mysql

Bước 2: Tạo Volume để Lưu trữ Dữ liệu

Đảm bảo dữ liệu WordPress và MySQL được lưu trữ an toàn thông qua volume.

Bước 3: Chạy Ứng Dụng

  • Khởi động ứng dụng:
Copy
  docker-compose up -d

Tiếp theo, truy cập http://localhost:8080 để hoàn tất cài đặt WordPress.

Kết luận

Bài viết này đã giới thiệu ba dự án Docker thực tế giúp bạn vững vàng hơn trong việc phát triển ứng dụng. Các dự án bao gồm việc container hóa ứng dụng Flask, triển khai ứng dụng Node.js với MongoDB, và thiết lập môi trường WordPress với MySQL. Những kinh nghiệm thực tiễn từ các dự án này sẽ giúp bạn hiểu rõ hơn về cách sử dụng Docker trong phát triển ứng dụng thực tế. Hãy bắt đầu thực hành và trải nghiệm sức mạnh của Docker trong công việc của bạn!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào