2.mysql上云
docker基本使用
由于国内ban掉了docker hub,所以需要先修改docker的镜像源
基本的docker 命令:
run Create and run a new container from an image
exec Execute a command in a running container
ps List containers
build Build an image from a Dockerfile
pull Download an image from a registry
push Upload an image to a registry
images List images
login Authenticate to a registry
logout Log out from a registry
search Search Docker Hub for images
version Show the Docker version information
info Display system-wide information
基本的使用:
docker pull -> docker run [image] -args -> docker container (监控运行时的容器信息)
配置mysql在docker上运行的命令
case:1基本命令
docker run --name some-mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
--name some-mysql:为容器指定一个名称,这里我们命名为some-mysql。-p 13306:3306:将容器的3306端口映射到宿主机的13306端口。-e MYSQL_ROOT_PASSWORD=123456:设置环境变量MYSQL_ROOT_PASSWORD为123456,这是root用户的密码。-d:以守护态(后台运行)运行容器。mysql:指定要运行的镜像名称。
case:2持久化存储和自动重启
- 在docker运行时附加命令
docker exec my_container command_name --additional-arguments
为了让MySQL的数据在宿主机上得以持久化,即使容器停运或删除,通过使用数据卷挂载来实现这一目标
docker run --name some-mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /path/to/mysql/data:/var/lib/mysql -d mysql
这里 -v /path/to/mysql/data:/var/lib/mysql 表示将宿主机的 /path/to/mysql/data 目录挂载到容器的 /var/lib/mysql 目录,这是MySQL的默认数据存储位置。
case:3设置远程访问权限
这里建议新建一个专门用于远程访问的用户控制访问权限,防止被勒索。
CREATE DATABASE "authorize";
CREATE USER 'verify_user'@'%' IDENTIFIED BY 'TempPass123!';
GRANT SELECT ON authorize.* TO 'verify_user'@'%';
FLUSH PRIVILEGES;
解释:
- 创建
verify_user专门用于访问authorize数据库 - 通过
GRANT ...赋予相关数据库权限