第9课:Docker 常见环境安装

【腾讯云】语音识别准确率高,支持多语种,多场景,限时特惠,最低14.9元起

推广

【腾讯云】语音识别准确率高,支持多语种,多场景,限时特惠,最低14.9元起

Docker 常见环境安装

在实际开发和生产环境中,我们经常需要安装各种服务,如数据库、缓存、Web服务器等。使用Docker可以大大简化这些环境的安装和配置过程。

1. Docker 安装 Redis

Redis是一个高性能的键值存储数据库,常用作缓存。

1.1 拉取Redis镜像

# 拉取最新版本的Redis镜像
docker pull redis:latest

# 或者拉取指定版本
docker pull redis:7.2

1.2 运行Redis容器

# 基本运行方式
docker run -d --name my-redis -p 6379:6379 redis:latest

# 带密码的运行方式
docker run -d --name my-redis \
  -p 6379:6379 \
  redis:latest redis-server --requirepass mypassword

# 持久化数据
docker run -d --name my-redis \
  -p 6379:6379 \
  -v redis-data:/data \
  redis:latest redis-server --appendonly yes

1.3 连接Redis

# 使用redis-cli连接
docker exec -it my-redis redis-cli

# 带密码连接
docker exec -it my-redis redis-cli -a mypassword

2. Docker 安装 MySQL

MySQL是最流行的关系型数据库之一。

2.1 拉取MySQL镜像

# 拉取MySQL 8.0
docker pull mysql:8.0

# 拉取MySQL 5.7
docker pull mysql:5.7

2.2 运行MySQL容器

# 基本运行方式
docker run -d --name my-mysql \
  -e MYSQL_ROOT_PASSWORD=rootpassword \
  -e MYSQL_DATABASE=mydb \
  -e MYSQL_USER=myuser \
  -e MYSQL_PASSWORD=mypassword \
  -p 3306:3306 \
  mysql:8.0

# 持久化数据
docker run -d --name my-mysql \
  -e MYSQL_ROOT_PASSWORD=rootpassword \
  -v mysql-data:/var/lib/mysql \
  -p 3306:3306 \
  mysql:8.0

2.3 连接MySQL

# 使用mysql客户端连接
docker exec -it my-mysql mysql -u root -p

# 从外部连接
mysql -h localhost -P 3306 -u root -p

3. Docker 安装 Nginx

Nginx是高性能的Web服务器和反向代理服务器。

3.1 拉取Nginx镜像

docker pull nginx:latest

3.2 运行Nginx容器

# 基本运行方式
docker run -d --name my-nginx -p 80:80 nginx:latest

# 挂载自定义配置和网站文件
docker run -d --name my-nginx \
  -p 80:80 \
  -v /path/to/html:/usr/share/nginx/html \
  -v /path/to/nginx.conf:/etc/nginx/nginx.conf \
  nginx:latest

3.3 自定义Nginx配置

创建自定义配置文件:

# nginx.conf
server {
    listen 80;
    server_name localhost;
    
    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }
    
    location /api/ {
        proxy_pass http://backend:8080/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

4. Docker 安装 MongoDB

MongoDB是流行的NoSQL文档数据库。

4.1 运行MongoDB容器

# 基本运行方式
docker run -d --name my-mongo \
  -p 27017:27017 \
  mongo:latest

# 带认证的运行方式
docker run -d --name my-mongo \
  -e MONGO_INITDB_ROOT_USERNAME=admin \
  -e MONGO_INITDB_ROOT_PASSWORD=password \
  -p 27017:27017 \
  mongo:latest

5. Docker 安装 PostgreSQL

PostgreSQL是功能强大的开源关系型数据库。

5.1 运行PostgreSQL容器

docker run -d --name my-postgres \
  -e POSTGRES_DB=mydb \
  -e POSTGRES_USER=myuser \
  -e POSTGRES_PASSWORD=mypassword \
  -p 5432:5432 \
  postgres:15

6. 使用Docker Compose管理多个服务

创建docker-compose.yml文件来管理多个服务:

version: '3.8'

services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    depends_on:
      - app

  app:
    image: node:18
    working_dir: /app
    volumes:
      - ./app:/app
    command: npm start
    depends_on:
      - redis
      - mysql

  redis:
    image: redis:latest
    ports:
      - "6379:6379"

  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: myapp
    ports:
      - "3306:3306"
    volumes:
      - mysql-data:/var/lib/mysql

volumes:
  mysql-data:

启动所有服务:

docker-compose up -d

7. 最佳实践

7.1 数据持久化

  • 始终使用数据卷来持久化重要数据
  • 定期备份数据卷

7.2 安全配置

  • 设置强密码
  • 限制网络访问
  • 使用非root用户运行容器

7.3 资源限制

# 限制内存和CPU使用
docker run -d --name my-mysql \
  --memory=1g \
  --cpus=0.5 \
  -e MYSQL_ROOT_PASSWORD=password \
  mysql:8.0

小结

本课学习了如何使用Docker安装和配置常见的开发环境:

  1. Redis - 高性能缓存数据库
  2. MySQL - 关系型数据库
  3. Nginx - Web服务器和反向代理
  4. MongoDB - NoSQL文档数据库
  5. PostgreSQL - 高级关系型数据库

使用Docker安装这些服务的优势:

  • 快速部署,一条命令即可启动
  • 环境隔离,不会影响宿主机
  • 版本管理,可以轻松切换不同版本
  • 配置标准化,便于团队协作

下一课我们将学习Docker常用命令大全,帮助你更高效地使用Docker。

Vue3 + TypeScript 企业级项目实战

课程推荐

Vue3 + TypeScript 企业级项目实战
Python 全栈开发工程师培训

热门课程

Python 全栈开发工程师培训

📚 文章对你有帮助?请关注我的公众号,万分感谢!

获取更多优质技术文章,第一时间掌握最新技术动态

关注公众号

关注公众号

第一时间获取最新技术文章

添加微信

添加微信

技术交流 · 问题答疑 · 学习指导

评论讨论

欢迎留下你的想法和建议