Docker启动MySQL容器并设置远程连接

513 阅读1分钟

安装Docker

进入Docker官网下查询Docker安装方法(docs.docker.com/engine/inst…

1.删除旧版本。

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.使用Docker仓库安装Docker Engine-Community

$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io

3.运行并测试

$ sudo systemctl start docker
$ sudo docker --version
$ sudo docker run hello-world

配置MySQL镜像与容器

1.拉取并启动MySQL镜像

其中: --name 是镜像的别名; -p 将3307映射到3306; -e MYSQL_ROOT_PASSWORD=yourpassword 设置mysql服务器密码 -d 后端启动的镜像名称(可以用id代替)

$ docker pull mysql:8.0.19
$ docker run --name dockermysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=admin -d mysql:8.0.19 --lower-case-table-names=1 # 设置大小写敏感配置

另外,官方说明MySQL的默认配置文件是 /etc/mysql/my.cnf 文件。如果想要自定义配置,建议向 /etc/mysql/conf.d 目录中创建.cnf文件。新建的文件可以任意起名,只要保证后缀名是.cnf即可。新建的文件中的配置项可以覆盖 /etc/mysql/my.cnf 中的配置项。

2.进入容器配置MySQL

$ docker exec -it dockermysql /bin/bash
$ mysql -u root -p  # 输入之前配置的MySQL密码
$ use mysql; # 切换数据库
mysql> update user set password_expired = "Y"where user="root";
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> ALTER USER'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

3.在MySQL容器运行时配置远程访问

如果是使用的阿里云服务器,记得在安全组配置规则中,打开对应的映射端口号,再重启服务器。 Win10下打开workbench,创建新连接。 image.png 连接成功,搞定!