一共出现两个问题
-
docker ps -a 发现异常退出的状态(status(1)
-
sqlyog连接docker报2508错误
前期安装步骤:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker pull mysql
docker run --privileged=true --name mysql -p 3306:3306 \
-v /dockerdata/mysql/conf:/etc/mysql/ \
-v /dockerdata/mysql/log:/var/log/mysql \
-v /dockerdata/mysql/data:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql
docker ps -a
啪!Error processing tar file(exit status 1): write file : no space left on device
啪!Sqlyog测试连接不成功报2508错误
一、空间不足导致异常退出
埋个雷,不知道为什么vagrant一键创建的虚拟机,空间是满的
df -h
查看磁盘使用情况,发现磁盘几乎是满的
docker info
查看docker详细信息,获得docker的存储路径
解决方式:把docker的存储目录挂载到别的盘下(附挂载教程)
- 先用VirtualBox给虚拟机新建一个虚拟硬盘,然后在ssh中依次输入如下命令
lsblk
获得新的虚拟硬盘的盘名,假设这里是sdbfdisk /dev/sdb
分区命令,对/sdb分区,先输入n,在输入p,一路enter然后wmkfs -t ext4 /dev/sdb1
格式化分区(即添加UUID),可以通过lsblk看刚刚的分区- 永久挂载
vi /etc/fstab
然后可以愉快的pull了 docker pull mysql
二、SqlYog报2508错误
系Mysql配置原因
先把mysql开开
docker run --privileged=true --name mysql -p 3306:3306 \
-v /dockerdata/mysql/conf:/etc/mysql/ \
-v /dockerdata/mysql/log:/var/log/mysql \
-v /dockerdata/mysql/data:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql
#通过docker ps -a 获得container-id
docker ps -a
docker exec -it <container-id> /bin/sh
进docker容器
mysql -uroot -p
Mysql里配置
GRANT ALL ON *.* TO 'root'@'%';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxx' PASSWORD EXPIRE NEVER;
flush privileges;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY ‘root密码’;
flush privileges;
然后就可以sqlyog连接了