docker的基本使用(mysql为例)

Docker 容器

docker容器 和 虚拟机最大的不同点是,docker 安装在一个操作系统上,在docker 里面装的操作系统 ,需要和 docker 所安装的那个操作系统是相同的内核。

 提倡一个容器里装一个程序或进程。

docker 在centos7 上的下载地址:http://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/x86_64/stable/Packages/

当然也可以在 http://mirrors.ustc.edu.cn/ 上面下载自己所需要的版本

 这个19.0.3版本的docker无法安装,需要安装其他的依赖内容。

yum install container-selinux

yum install containerd.io

yum install docker-ce-cli

docker版本18.03.1 无法安装,由于container-selinux 的版本低,无 pigz 软件包

yum install container-selinux

yum install pigz 

安装成功。 

这里在使用docker 进行镜像获取的时候不使用官方的docker 地址,因为下载数据的速度太慢。

vim /etc/docker/daemon.json

{
        "live-restore": true
}
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

设置开机启动docker 服务,不需要每次开机都手动 systemctl start docker.service 启动

systemctl enable docker

查看docker容器的详细信息 

 

 docker search mysql 搜索可以下载的 mysql 镜像,一般选择stars 值最高的那个

下载docker 镜像

docker pull mysql 

查看已有的镜像

docker run -id --name first_mysql -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

-id 表示  i:运行容器,d:将运行后的容器放到后台运行 

--name 对所运行的容器起的名字

-p 端口映射 宿主机端口:容器内端口

-e 代表添加环境变量  MYSQL_ROOT_PASSWORD是root用户的登陆密码

查看开启的容器

进到容器里面

登录到容器中的mysql

或者不用选mysql数据库中的某个库,在定位表的时候直接注明是哪个库中的表

 可以看到3309 的端口服务是正常运行的。

 

 在进行远程连接的时候出现,1251 的错误

 在用户登录的时候发现 mysql 的版本是 8.0 

mysql8 之前的版本中加密规则是mysql_native_password,

mysql8之后,加密规则是caching_sha2_password,

解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 

alter user 'root'@'%' identified with mysql_native_password by '123456'; 

 注意:

在下次开启mysql 的时候不要再用

docker run -id --name mysql -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

直接使用

docker start mysql    开启mysql

docker stop mysql    关闭mysql

 

停止服务

在开启某个容器的时候需要先将防火墙打开,否则可能会出现iptables 报错的问题

 开启 first_mysql 容器

将设置好的first_msyql 打包成镜像,所打包的镜像名 必须为 小写

查看刚才保存的镜像

将打包好的镜像输出到文件夹内

删除镜像文件

删除某个docker容器

 

删除镜像

docker rmi mymysql 

导入到docker 镜像

通过cmd远程连接mysql数据库 

镜像的备份

防止在配置的过程中配置错误,又要从新拉取新的镜像文件

将配置好的 mymysql  打包成 mymysqlback 的新镜像(可以在容器运行的时候进行打包)

查看docker 容器中所有启动过的镜像

只有启动过的镜像才可以使用 

docker start mysql

docker stop mysql

由于mymysqlback 没有启动过 使用 docker start mymysqlback 的时候显示失败

docker run -id --name mymysqlback -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123456 mymysqlback 

启动之后,数据库中的数据库中数据库和表的数据是没有发生改变的,使用远程工具进行连接的时候出现1251错误这个是,mysql8 的认证方式不同,前面已经说过了。

 alter user 'root'@'%' identified with mysql_native_password by '123456';

再次连接成功。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值