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安装和配置常见的开发环境:
- Redis - 高性能缓存数据库
- MySQL - 关系型数据库
- Nginx - Web服务器和反向代理
- MongoDB - NoSQL文档数据库
- PostgreSQL - 高级关系型数据库
使用Docker安装这些服务的优势:
- 快速部署,一条命令即可启动
- 环境隔离,不会影响宿主机
- 版本管理,可以轻松切换不同版本
- 配置标准化,便于团队协作
下一课我们将学习Docker常用命令大全,帮助你更高效地使用Docker。
📚 文章对你有帮助?请关注我的公众号,万分感谢!
获取更多优质技术文章,第一时间掌握最新技术动态

关注公众号
第一时间获取最新技术文章

添加微信
技术交流 · 问题答疑 · 学习指导
评论讨论
欢迎留下你的想法和建议