轻松解决docker容器启动闪退

docker run -p 3306:3306 --name mysql8 \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=666 -d mysql:8.0.32

执行这个命令的时候闪退,其实这个是命令是对你的文件夹有一些要求的,有时你如果像直接挂载到你本机的文件夹上需要内部还有一些文件。

比如我直接执行这个命令后,就报错说里面没有这个文件夹

[root@VM-4-3-centos conf]# docker logs -f mysql8 
2023-08-15 11:06:21+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.32-1.el8 started.
2023-08-15 11:06:21+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
	command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.TrKu2MmuH2
	mysqld: Can't read dir of '/etc/mysql/conf.d/' (OS errno 2 - No such file or directory)
mysqld: [ERROR] Stopped processing the 'includedir' directive in file /etc/my.cnf at line 36.
mysqld: [ERROR] Fatal error in defaults handling. Program aborted

其实我们有时候没必要直接挂载到你指定的文件夹上,我们可让docker自己帮我们创建这个数据卷,可以把命令改成
mysql_log、mysql_data、mysql_conf这几个数据卷会有docker帮我们管理。

docker run -p 3306:3306 --name mysql8 \
-v mysql_log:/var/log/mysql \
-v mysql_data:/var/lib/mysql \
-v mysql_conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=666 -d mysql:8.0.32

你可以用docker volume inspect mysql_data来查看挂载的位置

[root@VM-4-3-centos docker]# docker volume inspect mysql_data
[
    {
        "CreatedAt": "2023-08-15T19:14:15+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/mysql_data/_data",
        "Name": "mysql_data",
        "Options": null,
        "Scope": "local"
    }
]

Mountpoint就是挂载点了
你可以cd进去

[root@VM-4-3-centos docker]# cd /var/lib/docker/volumes/mysql_data/_data
[root@VM-4-3-centos _data]# ll
total 99728
-rw-r----- 1 polkitd input       56 Aug 15 19:14 auto.cnf
-rw-r----- 1 polkitd input  3039831 Aug 15 19:14 binlog.000001
-rw-r----- 1 polkitd input    36671 Aug 15 19:16 binlog.000002
-rw-r----- 1 polkitd input       32 Aug 15 19:14 binlog.index
-rw------- 1 polkitd input     1680 Aug 15 19:14 ca-key.pem
-rw-r--r-- 1 polkitd input     1112 Aug 15 19:14 ca.pem
-rw-r--r-- 1 polkitd input     1112 Aug 15 19:14 client-cert.pem

这样就完成了容器的启动和挂载😆

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值