3

我需要创建一个 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 secret 而不将其保存到 bash 历史记录但不删除所有 bash 历史记录的更好方法是什么?

4

3 回答 3

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

“Docker Secrets 作为通过环境变量传递敏感信息的替代方案,_FILE可以将其附加到之前列出的环境变量中,从而导致初始化脚本从容器中存在的文件中加载这些变量的值。特别是,这可用于从存储在文件中的 Docker 机密中加载密码/run/secrets/<secret_name>。例如:

$ 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"

于 2021-04-28T05:10:42.333 回答
0

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

docker secret create private_thing -

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

于 2022-01-06T16:30:13.070 回答
0

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

openssl rand -base64 10| 码头工人秘密创建 my_sec -

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

于 2021-08-26T14:25:48.040 回答