作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG数据库运维(如安装迁移,性能优化、故障应急处理等)
公众号:老苏畅谈运维
欢迎关注本人公众号,更多精彩与您分享。
对于有开发测试的需求,需要快速搭建不同的环境。今天给大家介绍快速搭建MySQL、PostgreSQL环境的方法,可供大家测试用。
一、Docker环境安装
本次测试基于Centos7 + docker的环境。
1.docker安装
yum -y install docker
service start docker
2.修改docker的默认镜像仓库
建议将/etc/docker/daemon.json 改为:{"registry-mirrors": ["https://registry.docker-cn.com"]}
二、快速部署MySQL
2.1 查看MySQL镜像历史版本
–查看MySQL镜像历史版本
curl -L -s 'https://registry.hub.docker.com/v2/repositories/library/mysql/tags?page_size=10000' | tr '},' '\n'|grep -w "name"|sort
2.2 拉取MySQL5.5版本
#拉取mysql5.5
docker pull mysql:5.5
#启动 初始化
docker run --name mysql -d -it -p 3306:3306 -e MYSQL_ROOT_PASSWORD=xxx mysql:5.5
#进入docker下mysql5.5容器
docker exec -it mysql bash
#停止MySQL5.5容器
docker stop mysql
2.3 拉取MySQL8.0版本
#拉取mysql8
docker pull mysql:8.0
# 启动,初始化
docker run --name mysql8 -d -it -p 4306:4306 -v /data/test/my.cnf:/etc/my.cnf -v /data/test/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=rootmysql mysql:8.0
或
docker run --name mysqltest -d -it -p 4307:4307 -v /data/test/my.cnf:/etc/my.cnf -v /data/test/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=mydb57 mysql:5.7.40
#进入docker下mysql8容器
docker exec -it mysql8 bash
# 停止mysql8容器
docker stop mysql8
三、快速部署PostgreSQL
3.1 查看postgres镜像历史版本
curl -L -s 'https://registry.hub.docker.com/v2/repositories/library/postgres/tags?page_size=10000' | tr '},' '\n'|grep -w "name"|sort
3.2 拉取镜像
docker pull postgres:14.4
3.3 创建docker容器
docker run --name pg14 -h pg14 -d -p 54327:5432 -e POSTGRES_PASSWORD=xxx -e TZ=Asia/Shanghai postgres:14.4
3.4 登录
docker exec -it pg14 psql -U postgres -d postgres
附录:docker常用操作
- List currently running docker containers:
docker ps
- List all docker containers (running and stopped):
docker ps -a
- Start a container from an image, with a custom name:
docker run --name container_name image
- Start or stop an existing container:
docker start|stop container_name
- Pull an image from a docker registry:
docker pull image
- Open a shell inside of an already running container:
docker exec -it container_name sh
- Remove a stopped container:
docker rm container_name
- Fetch and follow the logs of a container:
docker logs -f container_name