我需要创建一个MariaDB docker容器,但需要设置root密码,但是该密码是使用命令行中的参数设置的,对于存储在.bash_history
中是非常危险的。
我尝试使用print pass | docker secret create mysql-root -
使用机密,但是有同样的问题,密码已保存到.bash_history
中。码头工人的秘密不是很秘密。
我尝试使用交互式命令:
while read -e line; do printf $line | docker secret create mysql-root -; break; done;
但是,xD非常丑陋。为什么在不将其保存到bash历史记录但又不删除所有bash历史记录的情况下创建docker机密的更明智的方式?
答案 0 :(得分:0)
你可以试试
printf $line | sudo docker secret create MYSQL_ROOT_PASSWORD -
然后
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-root -d mariadb:tag
有关在 MariaDB 中使用机密的信息可以在 MariaDB page of DockerHub 上找到。
"Docker 的秘密
作为通过环境变量传递敏感信息的替代方法,可以将 _FILE
附加到前面列出的环境变量,从而使初始化脚本从容器中存在的文件中加载这些变量的值。特别是,这可用于从存储在 /run/secrets/<secret_name>
文件中的 Docker 机密加载密码。例如:
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-root -d mariadb:tag
目前,仅支持 MYSQL_ROOT_PASSWORD
、MYSQL_ROOT_HOST
、MYSQL_DATABASE
、MYSQL_USER
和 MYSQL_PASSWORD
"