如何创建一个秘密的 docker 秘密?

e-i*_*128 6 bash docker docker-secrets

我需要创建一个 MariaDB docker 容器,但需要设置 root 密码,但密码是使用命令行参数设置的,这对于.bash_history.

我尝试使用秘密print pass | docker secret create mysql-root -,但有同样的问题,密码保存到.bash_history. docker 的秘密并不是很秘密。

我尝试使用交互式命令:

while read -e line; do printf $line | docker secret create mysql-root -; break; done;
Run Code Online (Sandbox Code Playgroud)

但是,真的很丑xD。为什么创建 docker 秘密的更好方法是不将其保存到 bash 历史记录中,但又不删除所有 bash 历史记录?

Jea*_*uis 0

你可以尝试

printf $line | sudo docker secret create MYSQL_ROOT_PASSWORD -
Run Code Online (Sandbox Code Playgroud)

进而

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-root -d mariadb:tag
Run Code Online (Sandbox Code Playgroud)

有关在 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
Run Code Online (Sandbox Code Playgroud)

目前,仅支持MYSQL_ROOT_PASSWORDMYSQL_ROOT_HOSTMYSQL_DATABASEMYSQL_USERMYSQL_PASSWORD"