一、docker的架构
1.安装docker
yum install -y docker
2.查看是否安装
yum list installed | grep docker
3.开启服务以及关闭服务
systemctl start docker
systemctl stop docker
4.查看是否启动成功
systemctl status docker
5.查看docker 镜像
docker images
6.拉取镜像
docker pull
6.创建容器
docker create inagesName
7.启动一个容器
docker start +容器名称或者ID
docker restart //重启容器
8.创建一个容器并运行
docker run -d //后台运行
docker run -p // -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
docker run -P //-P: 随机端口映射,容器内部端口随机映射到主机的高端口
$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
//运行mysql数据库
docker run -it --rm --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
9.查看运行的镜像
docker ps -a
10.删除镜像
docker rm -f
11.杀掉运行中的容器
docker kill
12.进入容器内部
docker exec -it mysql bash
for example:
//docker安装mysql数据库
1.docker pull mysql 8.6
创建并运行容器
2.docker run -it --rm --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
3.进入mysql容器内部
docker exec -it mysql bash
4.mysql8.0的root用户的验证方式变了,通过查询:select host,user,plugin from user;
得知:root的用户的加密方式为caching_sha2_passoword, 而navicat连接所用的方式为native_password。mysql为远程连接和本地连接提供了不同的密码验证方式。
修改root用户插件验证方式:
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
注意:先更改ser表中用户为root的host字段,若为localhost则改为%,只有改为%,该用户才可以远程访问。
如果navicat 提示“1045 access denied for user 'root'@'localhost' ”,则执行:
mysql> alter user 'root'@'localhost' identified by 'root';
同理:如果navicat 提示“1045 access denied for user 'root'@'%' ”,则执行:
mysql> alter user 'root'@'%' identified by 'root';
4.刷新权限:
mysql> flush privileges;
5. 修改mysql数据库编码,防止中文乱码
(1)进入docker的mysql容器
# docker exec -it mysql /bin/bash
(2)容器默认没有安装任何编辑器,先安装vim。
# apt-get update && apt-get install vim -y
(3) 安装完vim之后,开始修改mysql数据库编码
# vim /etc/mysql/conf.d/mysql.cnf
增加以下内容,然后保存,退出:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
(4) 重启mysql容器,查询编码:此时编码已经修改为utf8。
mysql> show variables like'character%';