如何创建秘密码头工人机密?



>我需要创建一个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。为什么创建 docker 机密而不将其保存到 bash 历史记录但不删除所有 bash 历史记录的投注方式?

我发现的最简单方法是使用以下方法:

docker secret create private_thing -

然后在命令行中输入机密,然后按 Ctrl-D 两次。

你可以试试

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 中使用密钥的信息可以在 DockerHub 的 MariaDB 页面上找到。

"码头工人的秘密 作为通过环境变量传递敏感信息的替代方法,可以将_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_PASSWORDMYSQL_ROOT_HOSTMYSQL_DATABASEMYSQL_USERMYSQL_PASSWORD">

您可以使用openssl rand选项生成随机字符串并传递给docker secret command,即

OpenSSL Rand -base64 10| docker secret create my_sec -

openssl rand 选项将生成 10 字节 base64 编码的随机字符串。

最新更新