V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ohohohh
V2EX  ›  Docker

docker 挂载非空目录无效?

  •  
  •   ohohohh · 2020-11-13 09:45:50 +08:00 · 2566 次点击
    这是一个创建于 1232 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近运行 docker mysql 挂载目录是 /usr/local/mysql 第一次目录为空可以正常挂载,删除了容器重新 run 后挂载失效,挂载到默认的路径下,但是我将挂载指定到 /users 路径是可以的,挂载到 /usr 无效,有大佬知道什么情况吗?目录加了 777 权限

    1 条回复    2020-12-06 14:35:02 +08:00
    qq296015668
        1
    qq296015668  
       2020-12-06 14:35:02 +08:00
    你的容器里面应该对目录是否存在以及权限是否正确要有所判断
    例:
    ```sh
    if [ ! -d "/var/lib/mysql/$DB_NAME" ]; then
    mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql
    mysqld --daemonize --user=mysql
    sleep 5s
    mysql -uroot -e "create database $DB_NAME default charset 'utf8' collate 'utf8_bin';grant all on $DB_NAME.* to '$DB_USER'@'%' identified by '$DB_PASSWORD';flush privileges;";
    tail -f /var/log/mysqld.log
    else
    mysqld --daemonize --user=mysql
    tail -f /var/log/mysqld.log
    fi
    ```
    你也可以参考 MySQL 官方的启动脚本 [docker-entrypoint.sh]( https://github.com/mysql/mysql-docker/blob/mysql-server/5.7/docker-entrypoint.sh)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2879 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:36 · PVG 19:36 · LAX 04:36 · JFK 07:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.