Docker配置MySQL容器
拉取MySQL镜像
docker pull mysql:5.6
有可能会因为网络问题失败,重复尝试。
创建容器
docker run -d --name selfdefinename -p 3306:3306 -e MYSQL_ROOT_PASSWORD=rw mysql:5.6
-d 后台运行,--name 设置名称 selfdefinename 是用户自定义的容器名称,-p 设置端口映射,第一个3306是当前主机的端口,第二个3306指容器中的端口;-e 设置root用户密码为rw;最后的mysql:5.6 可以用imageID代替,代表用于创建容器的镜像。
注:值得注意的是,如果主机已经安装了mysql,那么它会占用3306端口,docker中的mysql将无法正常启动。
解决方式:
1.卸载或暂停主机的mysql服务。
#暂停主机上的mysql
systemctl stop mysqld
2.创建容器时,修改docker容器的端口映射
docker run -d --name selfdefinename -p 10086:3306 -e MYSQL_ROOT_PASSWORD=rw mysql:5.6
10086是容器外部端口号,只要不被占用可以任意指定。3306是容器内部端口,mysql在不更改其配置文件时默认只会监听3306端口。
运行容器
一般创建好容器后容器会自动运行
#运行容器
docker start 容器名或容器ID
允许远程访问
#首先要进入容器内部
docker exec -it 容器名或容器ID
#进入mysql
mysql -u root -p
#授权
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "rw";
flush privileges;
#退出
exit
exit
#第一个exit退出mysql
#第二个exit退出容器的bash
Docker常用命令
新建容器
docker run -d --name 自定义容器名 镜像ID或镜像名
展示当前运行的容器
docker ps
展示所有容器
docker ps -a
展示所有本地镜像
docker images
运行容器
docker start 容器名或容器ID
停止运行容器
docker stop 容器名或容器ID
删除容器
docker rm -f 容器名或容器ID
进入容器内容bash
docker exec -it 容器名或容器ID bash
#退出容器命令:exit
关闭docker服务
systemctl stop docker