首先安装Linux的内核版本必须3.1以上,才能安装Docker,不建议去升级内核版本(我遇到很多坑),直接官网下载Linux重新安装虚拟机。
1.常用命令(以下载mysql为例)
1、搜索镜像
[root@localhost ~]# docker search mysql
2、拉取镜像
[root@localhost ~]# docker pull mysql
3、根据镜像启动容器 (run 之后才会放在容器中,之后可以直接start)
docker run ‐‐name mytomcat ‐d mysql:latest
4、docker ps
查看运行中的容器
5、 停止运行中的容器
docker stop 容器的id
6、查看所有的容器
docker ps ‐a
7、启动容器
docker start 容器id
8、删除一个容器
docker rm 容器id
9、启动一个做了端口映射的mysql
[root@localhost ~]# docker run ‐d ‐p 3306:3306 mysql
‐d:后台运行
‐p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口
10、为了演示简单关闭了linux的防火墙(这样本地电脑才能远程访问)
service firewalld status ;查看防火墙状态
service firewalld stop:关闭防火墙
11、创建一个带有数据登录密码的容器
[root@localhost ~]# docker run ‐‐name mysql01 ‐e MYSQL_ROOT_PASSWORD=123456 ‐d mysql
12、把主机的/conf/mysql文件夹挂载到 mysqldocker容器的/etc/mysql/conf.d文件夹里面
改mysql的配置文件就只需要把mysql配置文件放在自定义的文件夹下(/conf/mysql)
docker run ‐‐name mysql03 ‐v /conf/mysql:/etc/mysql/conf.d ‐e MYSQL_ROOT_PASSWORD=my‐secret‐pw
‐d mysql:tag
注意1
在第12点中,把主机的/conf/mysql文件夹挂载到 mysqldocker容器的/etc/mysql/conf.d文件夹里面可能会报错,只需重建docker就行
systemctl restart docker 重新启动
注意2
如果拉取安装的Mysql镜像是最新版本或者是8以上版本,虽然已经做了端口映射,密码设置,但是用本地数据库可视化工具Navicat还是无法访问连接,并且报错如下:
client does not support authentication protocol......
解决办法:
linux容器通过docker进入mysql中:
docker exec -it 容器名(mysql02 )bash
mysql -u root -p
修改数据库密码:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';