此篇文章不讲解Decker的安装,只讲解Mysql镜像的下载以及容器的运行及配置
一、镜像准备
系统用户加入 docker 组,这样不用sudo也能运行 docker 指令了,同时避免系统用户运行 Pycharm 连接 Docker 时的权限问题
sudo usermod -aG docker [USER] # 重启系统后生效
二、拉取镜像
docker pull mysql:5.7 # 下载mysql镜像
三、创建镜像前准备工作
- 在本地创建 mysql 容器需要挂载的目录
sudo mkdir -p /my1/mysql/conf
sudo mkdir -p /my1/mysql/data
sudo mkdir -p /my1/mysql/logs
sudo mkdir -p /my1/mysql/mysql.conf.d
- 在本地 /my/mysql/conf 目录下配置 mysqld.cnf 文件
cd /my/mysql/conf
sudo vi mysqld.cnf
- 输入以下内容,并保存退出
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
四、创建 docker 容器
# 创建并启动容器命令
docker run -d -p 4306:3306 \
--restart always \
--name mysql \
-e MYSQL_USER="lfg" \
-e MYSQL_PASSWORD="123456" \
-e MYSQL_ROOT_PASSWORD="root123456" \
-e MYSQL_DATABASE="damei" \
-v /my1/mysql/mysql.conf.d:/etc/mysql/mysql.conf.d \
-v /my1/mysql/conf:/etc/mysql/conf.d \
-v /my1/mysql/data:/var/lib/mysql \
-v /my1/mysql/logs:/logs \
--privileged=true \
mysql:5.7
# --name 指定容器名,名称自定义,如果不指定会自动命名
# -i 以交互模式运行容器;-t 分配一个伪终端,即命令行,通常组合使用 -it
# -p 指定端口映射,将主机端口映射到容器内的端口,一定要留一个端口映射到 22 端口,因为 SFTP 默认使用 22 端口
# -e 设置环境变量参数,
MYSQL_USER:用户名 # 需自行修改
MYSQL_PASSWORD:用户名密码 # 需自行修改
MYSQL_ROOT_PASSWORD:root用户密码 # 需自行修改
MYSQL_DATABASE:创建新数据库 # 需自行修改
# -d 以后台运行,即守护式运行容器
# --link 实现 python 容器与 mysql 容器的通信,格式:--link=[容器名]:[别名],相当于更改 python 容器的 /etc/hosts 配置文件
# –character-set-server=utf8:设置字符集为utf8
# –collation-server=utf8_general_ci:设置字符比较规则为utf8_general_ci
# 创建 python 容器时,建议不要使用 -v 挂载主机目录到容器目录,不然在用 Pycharm 开发项目过程中会遇到比较头疼的权限问题,目前我没有较好的解决办法,路过的朋友可以留言提供思路和方法
# 创建 mysql 容器时,-v 挂载数据库的配置(conf)、数据(data)和日志(logs)文件
# –restart always:开机启动
# –privileged=true:提升容器内权限
五、设置MySQL新用户远程连接权限
grant all on *.* to lfg@'%' identified by '123456' with grant option; # 用户名: lfg 密码:123456
下一篇: PyCharm远程连接Dockers MySQL / Dockers python结合使用详情。