1 出现安装mysql命令无法执行
解决1:运行docker,
systemctl命令是系统服务管理器指令,主要负责控制systemd系统和服务管理器
systemctl命令格式:
systemctl <指令> <服务名称:docker即服务名称>
指令{
start :启动
stop:停止
restart :重启(即启动加re前缀)
status :查看···
}
systemclt start docker
解决2
在服务器上使用下面命令安装mysql镜像时出现问题
docker run -p 3306:3306 --name xdclass_mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=xdclass.net168 \
-d mysql:5.7
解决办法将命令弄成一行执行
docker run -p 3306:3306 --name xdclass_mysql -v /usr/local/docker/mysql/conf:/etc/mysql -v /usr/local/docker/mysql/logs:/var/log/mysql -v /usr/local/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xdclass.net168 -d mysql:5.7
服务器换行存在问题(后续想办法解决)
2 出现docker start 无法启动mysql容器问题。
1. 出现docker ps无法查询到mysql容器的情况(ps:docker ps -a可以查询到,但是ports项没有数值,status项也是Exited (1) 5 minutes ago)
2. 出现docker start 无法启动mysql数据库的情况
最后通过 docker logs +容器id 查询到:
2022-02-11 17:07:27+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.36-1debian10 started.
chown: changing ownership of '/var/lib/mysql/': Permission denied
将错误提示:Entrypoint script for MySQL Server 5.7.36-1debian10 started.复制到百度中查询到,是Centos7
的安全Selinux禁止了一些安全权限,导致挂载信息时出出现权限不足
解决:
1.在docker run中加入 –privileged=true 给容器加上特定权限
2.关闭selinux
3.在selinux添加规则,修改挂载目录de
最后在添加mysql镜像时的指令中加了一段代码 –privileged=true
1.原来代码
docker run -p 3306:3306 --name xdclass_mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=xdclass.net168 \
-d mysql:5.7
2.调整后代码
docker run -p 3306:3306 --name xdclass_mysql \
--privileged=true -v /usr/local/docker/mysql/conf:/etc/mysql \ //在这一段的第一句
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=xdclass.net168 \
-d mysql:5.7
总结:善用logs指令,能大大提高百度效率
3 关于任何删除镜像与容器
需要先确定存放镜像的容器是否启动,(如果容器已经启动,需要先关闭容器:docker stop +容器id.png)再删除容器(如步骤3),后删除镜像(如步骤4)
-
查看镜像命令:docker images
-
查看容器命令:docker ps -a
- 删除容器命令:docker rm 容器id(如上图2)
- 删除镜像命令:docker rmi 镜像名称(如果上图1,注意需要将后面的tag也带上,如:docker.io/mysql:5.7)