docker常用功能以及mysql实际使用:
一、docker常用命令:
-
查看版本
- docker -v
[root@localhost ~]# docker -v
Docker version 23.0.4, build f480fb1
[root@localhost ~]#
2. 查看 Docker 中已存在的镜像
docker images
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcatht v1.1 7961ad325f61 2 months ago 475MB
tomcat latest 7961ad325f61 2 months ago 475MB
mysql 5.7.42 dd6675b5cfea 2 months ago 569MB
mysql latest 8189e588b0e8 2 months ago 564MB
nginx latest 6efc10a0510f 3 months ago 142MB
redis 5.0.5 63130206b0fa 3 years ago 98.2MB
3. 查看镜像可用版本
# 查看可用版本 docker search mysql
4. 拉取镜像
docker pull mysql
5. 启动镜像
-e表示设置环境变量,MYSQL_ROOT_PASSWORD表示设置root用户的密码
# 启动镜像
docker run -itd --name mysql-lab -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
实例:
[root@localhost ~]# docker run -itd --name mysqllabnew -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
本地有镜像就是使用本地,没有的就是在dockerhub上下载
创建成功的示例:
6. 查看启动进程
# 查看进程 docker ps -a
docker ps | grep mysql
7。 重启容器
docker restart <容器ID>
8. 停止容器
# 停止容器
docker stop <容器名称>
9. 删除容器
docker rm <容器名>
10. 删除镜像
# 删除镜像 删除镜像前需要先删除容器
docker rmi <镜像ID>
11. 查看容器日志
# 查看容器日志
docker logs -f <容器名称>
docker logs -f redis
12. 进入容器
进入容器 ,输入容器的id或者容器的名字都可以
# 进入容器
docker exec -it mysql bash
[root@localhost ~]# docker exec -it 20c6eeddc073 bash
bash-4.2#
13. 设置容器跟随docker启动
docker update redis --restart=always
二、实战docker安装mysql以及使用
Docker 安装 Mysql(仅测试环境使用)
1. 查看可用版本
docker search mysql
2. 拉取最新版本的 Mysql 镜像
docker pull mysql:latest
或者获取你需要的版本
docker pull mysql:8.0.33
3. 查看 docker 中已存在的对象
docker images | grep mysql
4. 运行
docker run -itd --name mysql-name -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:8.0.33
5. 查看进程是否正常
docker ps | grep mysql
6. 进入 Mysql 容器,这里的msyql是容器的名字
你可以输入容器名字或者容器id都是可以的
docker exec -it mysql bash
7. 登录 Mysql
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'
8. 添加远程登录用户
CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'test!1234';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
补充内容:
a1:启动一个mysql8.0的镜像====启动容器
docker run -itd --name mysql8_lab -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:8.0
docker run -itd --name mysql8_lab -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:8.0
a2.进入容器:
进入容器;docker exec -it mysql8_lab bash
[root@localhost ~]# docker exec -it mysql8_lab bash
bash-4.4#
a3:进入docker容器中的mysql服务
a4.修改容器中msyql的密码;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)mysql>
a5:navicat登录容器中的msyql,因为容器中mysql没有开启远程登录,所以失败
a6.
前提条件就是进入容器中,才能执行下面的代码
解决a5的问题,添加远程登录用户
添加远程用户test,密码为123456
mysql> CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql>
a7.navicat再次测试,用上面的的新建的远程账户test/123456进行登录测试,可以成功。