Docker安装MySQL,MySQL挂载本地目录
Docker安装
1、删除Ubuntu中原来的Docker
1.1 全部删除
1.常归删除操作
sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
2. 删除docker其他没有没有卸载
dpkg -l | grep docker
dpkg -l |grep ^rc|awk ‘{ print $2}’ |sudo xargs dpkg -P # 删除无用的相关的配置文件
3.卸载没有删除的docker相关插件(结合自己电脑的实际情况)
sudo apt-get autoremove docker-ce-*
4.删除docker的相关配置&目录
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker
5.确定docker卸载完毕
docker --version
1.2 快速删除
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
2、安装Docker
2.1 更新、安装依赖
先更新一下
sudo apt-get update
安装相应的依赖
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
2.2 添加Docker的官方GPG密匙
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
2.3 设置一个稳定的仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
2.4 再次更新apt
sudo apt-get update
2.5 安装Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io
2.6 测试是否安装成功
sudo docker run hello-world
#查看所有容器
docker ps -a
#删掉刚才那个容器
docker rm 2a522
MySQL安装
1、拉取最新的MYSQL镜像
docker pull mysql:5.7
2、镜像查看与删除
#查看镜像
docker images
#删除镜像
docker rmi hello-world
3、创建MySQL容器
3.1 挂载本地目录
- 创建本地MySQL映射目录
mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf
- 在/root/mysql/conf中创建 *.cnf 文件
cd /root/mysql/conf
touch my.cnf
- 创建容器,将数据,日志,配置文件映射到本机
docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql
3.2 挂载备份目录
docker run -p 3306:3306 --name mysql01 \
-v /root/mysql_data/conf:/etc/mysql/conf.d \
-v /root/mysql_data/data:/var/lib/mysql \
-v /root/mysql_data/logs:/logs \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
3.3 MySQL设置远程访问
进入容器
docker exec -it mysql01 /bin/bash
进入MySQL
mysql -uroot -p123456
若报错
若报错Access denied for user 'root'@'localhost' (using password: YES) 则进行以下步骤: 在my.cnf文件的[mysqld]这个条目下加入skip-grant-tables保存退出后重启mysql。这句话的意思是跳过验证阶段,在数据库容器中输入mysql -u root -p后,在输入密码的时候可以直接敲回车进入数据库操作界面。 在终端输入doker exec -it mysql /bin/bash进入到mysql容器的交互命令端。 在mysql容器交互命令端输入mysql -u root -p后,在输入密码的时候直接敲回车,进入数据库命令交互端。 进入数据库命令交互端后,依次进行以下操作。 第一步,选择名为mysql的数据库 mysql> use mysql; 第二步,为root用户设置密码 mysql> update user set password=password("新密码") where user="root"; #mysql5.7版之前 mysql> update mysql.user set authentication_string=password('新密码') where user='root'; #mysql5.7版及之后 第三步,刷新数据库 mysql> flush privileges; 第四步,退出数据库 mysql> quit; 将my.cnf文件的[mysqld]这个条目下的skip-grant-tables删除,保存退出后重启mysql 再用数据库连接工具进行测试,发现可以成功连接
若未报错
#设置mysql远程权限 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #刷新权限 flush privileges;
测试远程访问
补充:局域网下Ubuntu间传输文件
1、主从机信息
本机:
name:zzk
ip:192.168.1.110
从机:
name:slave8
ip:192.168.1.10
(ip可以通过ifconfig命令查看)
eg:主机拷贝从机的一个文件夹
2、传输文件
scp -r root@192.168.1.10:/usr/local/zyh/data/mysql_data_back /root/
scp:拷贝文件命令
-r:表示拷贝的是整个文件夹,如果只拷贝一个文件,则不用-r
root@@192.168.1.10 从机用户名@从机ip 务必先查看文件的权限
/usr/local/zyh/data 要拷贝的文件夹在从机中的路径
/usr/local/zzk 下载到本机的本地的路径