Docker 构建Mysql容器并对外提供服务

引导在docker中运用mysql容器,并经过端口映射,外部访问mysql

构建容器

docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql
  • –name 指定容器名称
  • -p 参数将容器内的3306端口与本地3306接口映射
  • -e 添加了一个环境变量MYSQL_ROOT_PASSWORD,该变量定义的为root密码

配置外部ip访问权限

当前数据库已经在容器中运行起来了,但外部依然没法访问,由于须要配置外部ip的访问权限;web

docker exec -it hnister-mysql /bin/bash

进入该容器,并配置mysql权限sql

# 登录mysql
mysql -uroot -pmy-secret-pw
# 进入之后use mysql数据库:
mysql> use mysql;

# 添加root用户能够远程访问 末尾password改成你的外部访问密码
mysql> grant all privileges on *.* to 'root'@'%' identified by 'password';
mysql> update `mysql`.`user` set `Grant_priv` = 'Y' where `user` = 'root';
mysql> delete from user where user='root' and host='localhost';
mysql> flush privileges;

外部访问

这里写图片描述