MySQL部署
1 MySQL部署
1.1案例:需求
- 在Docker 容器中部署MySQL,并通过外部MySQL 客户端操作MySQL Server
1.2 案例:实现
- 搜索mysql镜像
- 拉取mysql镜像
- 创建容器
操作容器中的mysql
1.3 问题及解决方案
- 容器内的网络服务和外部机器不能直接通信
- 外部机器和宿主机可以直接通信
- 宿主机和容器可以直接通信
- 当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口上。外部机器访问宿主机的端口,从而间接访问容器的服务
- 这种操作称为:端口映射
1.4 部署MySQL
搜索mysql镜像
1
docker search mysql
拉取mysql镜像
1
docker pull mysql:5.6
创建容器,设置端口映射、目录映射
1
2
3在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql1
2
3
4
5
6
7
8docker run -id \
-p 3306:3306 \
--name=mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql- 参数说明
-p 3307:3306:将容器的3306端口映射到宿主机的3307端口--v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的conf/my.cnf挂载到容器/etc/mysql/my.cnf配置目录-v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs目录日志-v $PWD/data:/var/lib/mysql:将主机当前目录下的data目录挂载到容器的/var/lib/mysql数据目录-e MYSQL_ROOT_PASSWORD=123456:初始化root 用户密码
- 参数说明
使用外部机器访问MySQL

