下拉镜像
docker pull mysql/mysql-server:5.5
后面的mysql标签是版本号,是可选择的,有:
- 5.5
- 5.6
- 5.7
- 8.0
创建mysql5.5的容器
docker run --name mysql5.5 -p 3308:3306 -v ./conf:/etc/mysql/conf.d -v ./logs:/logs -v ./data:/var/lib/mysql -e MYSQL\_ROOT\_PASSWORD=123 -d mysql/mysql-server:5.5
参数解释:
- --name 容器名字
- -p 3308:3306 物理机端口:容器内部端口
- -e 运行参数 初始化 root 用户的密码
- -d 后台运行 mysql/mysql-server:5.5 下载的镜像名字加标签
- -v ./conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。//配置文件目录
- -v ./logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。//日志目录
- -v ./data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。//数据库文件存放目录
修改mysql允许远程连接
此时是无法连接到mysql的,必须修改成允许远程连接
#通过这个命令进入容器内
docker exec -it mysql5.5 bash
#连接mysql
mysql -u root -p
#修改mysql允许远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
FLUSH PRIVILEGES
本机连接容器内的数据库
# 本机连接容器内的数据库,(我们将容器内的3306端口映射到了本机的3308,所以我们通过3308端口访问)
mysql -u root -p -h 127.0.0.1 -P 3308