Docker基本使用:根据mysql镜像创建mysql容器

需求:在腾讯云上创建mysql8容器;

1、拉取mysql8镜像:

docker pull mysql:8.0    # 不加版本号默认下载 latest 版本,即 docker pull mysql:latest
# 查看镜像
docker images

2、 根据镜像制作容器:

docker run --name mysql8 -p 3306:3306  --privileged=true \
-v /usr/docker/mysql/log:/var/log/mysql \
-v /usr/docker/mysql/data:/var/lib/mysql \
-v /usr/docker/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=xxxxxx -d mysql:8.0

注:
–name:指定了容器的名称,方便之后进入容器的命令行。
-itd:其中,i是交互式操作,t是一个终端,d指的是在后台运行。
-p:指将宿主机的 3306 端口映射到 docker 容器的 3306 端口, 格式为:主机(宿主)端口:容器端口
-v 挂载数据卷,格式为:宿主机目录或文件:容器内目录或文件
-e:设置环境变量。
MYSQL_ROOT_PASSWORD=xxxxxx:指定了MySQL的root密码
-d mysql:8.0 指运行mysql8.0镜像,设置容器在在后台一直运行。

–privileged=true 开启特殊权限
Docker 挂载主机目录时(添加容器数据卷),如果 Docker 访问出现 cannot open directory:Permission denied,在挂载目录的命令后多加一个 --privileged=true 参数即可。
因为出于安全原因,容器不允许访问任何设备,privileged 让 docker 应用容器获取宿主机 root 权限(特殊权限),允许我们的 Docker 容器访问连接到主机的所有设备。容器获得所有能力,可以访问主机的所有设备,例如,CD-ROM、闪存驱动器、连接到主机的硬盘驱动器等。

3、解决字符集编码问题

3.1 配置mysql文件

# 从主机进入到mysql的配置目录
cd /var/docker/mysql/conf

# 新增文件my.cnf,并添加如下内容
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8mb4_unicode_ci
character_set_server = utf8mb4

3.2、重新启动mysql容器实例再重新进入并查看字符编码

docker restart mysql8 # 重启mysql实例
docker exec -it mysql8 /bin/bash # 进入mysql容器
mysql -uroot -p # 输入密码进入mysql
SHOW VARIABLES LIKE 'character%'; # 查看mysql字符集,是否都修改为了utf-8

4、远程登录mysql。

4.1 登录腾讯云控制台,在当前服务器的防火墙添加对应的规则(3306);
4.2 在本地服务器使用navicat等远程连接mysql,IP为服务器的公网IP,端口号3306;

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值