docker安装mysql:8.0
1.docker源
目前docker国内的源基本上用不了了,建议去淘宝找一找,我整了一个大概是10R一个月。
2.拉取镜像
docker pull mysql:8.0
3.启动容器
命令如下:
docker run \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /home/data/mysql/data:/var/lib/mysql:rw \
-v /usr/local/mysql:/etc/mysql/conf.d \
--privileged=true \
--name mysqlname \
--restart=always \
-d mysql:8.0 --lower_case_table_names=1
其中:
-v /home/data/mysql/data:/var/lib/mysql:rw 是将数据库文件挂载到本地的/home/data/mysql/data下
-v /usr/local/mysql:/etc/mysql/conf.d 是将mysql配置文件挂载到本地/usr/local/mysql下,方便后期修改配置文件
--lower_case_table_names=1 不区分表名大小写
-e MYSQL_ROOT_PASSWORD mysql的密码,需自行设置
-p 3306:3306 端口
启动后使用命令<docker ps>查看启动的容器如下所示就代表启动成功了:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6dd20a8a01a9 mysql:8.0 "docker-entrypoint.s…" 10 minutes ago Up 10 minutes 0.0.0.0:3306->3306/tcp mysql
用可视化工具连接MySQL的时候可能连接不上,可以如下处理:
docker exec -it mysql1 mysql -u root -p
然后输入密码进入
其中mysql1是容器的名字,密码是你先前设置MYSQL_ROOT_PASSWORD=的密码
进入后执行如下语句:
ALTER USER 'root'@'%' IDENTIFIED BY '你的mysql密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit 退出容器
再执行容器重启命令:docker restart CONTAINER_ID / CONTAINER_NAME
另外附上docker的一些操作命令:
构建容器:docker run -itd --name=mycentos centos:7
-i :表示以交互模式运行容器(让容器的标准输入保持打开)
-d:表示后台运行容器,并返回容器ID
-t:为容器重新分配一个伪输入终端
--name:为容器指定名称
查看本地所有的容器:docker ps -a
查看本地正在运行的容器:docker ps
停止容器:docker stop CONTAINER_ID / CONTAINER_NAME
一次性停止所有容器:docker stop $(docker ps -a -q)
启动容器:docker start CONTAINER_ID / CONTAINER_NAME
重启容器:docker restart CONTAINER_ID / CONTAINER_NAME
删除容器:docker rm CONTAINER_ID / CONTAINER_NAME
强制删除容器:docker rm -f CONTAINER_ID / CONTAINER_NAME
查看容器详细信息:docker inspect CONTAINER_ID / CONTAINER_NAME
进入容器:docker exec -it CONTAINER_ID /bin/bash