如何通过案例学习Secret

57次阅读
没有评论

共计 1707 个字符,预计需要花费 5 分钟才能阅读完成。

这期内容当中丸趣 TV 小编将会给大家带来有关如何通过案例学习 Secret,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

在下面的例子中,我们会部署一个 WordPress 应用,WordPress 是流行的开源博客系统。

我们将创建一个 MySQL service,将密码保存到 secret 中。我们还会创建一个 WordPress service,它将使用 secret 连接 MySQL。这个例子将展示如何用 secret 避免在 image 中存放敏感信息,或者在命令行中直接传递敏感数据。

实验步骤如下:

创建 secret

创建 secret 存放 MySQL 的管理员密码。

openssl rand -base64 20 | docker secret create mysql_root_password -

密码是由 openssl 生成的随机字符串。

注意  ag7injh7juonwl09lq8st36o8  是新创建的 service 的 ID,而非 service 的内容。

上面这种方式是从标准输入读取 secret 的内容,也可以指定从文件中读取,例如:

openssl rand -base64 20   password.txtdocker secret create my_password ./password.txt

一般情况下,应用不会直接用 root 密码访问 MySQL。我们会创建一个单独的用户  workpress,密码存放到 secret mysql_password 中。

openssl rand -base64 20 | docker secret create mysql_password -

创建自定义的 overlay 网络

MySQL 通过 overlay 网络  mysql_private  与 WordPress 通信,不需要将 MySQL service 暴露给外部网络和其他容器。

docker network create -d overlay mysql_private

创建 MySQL service

命令如下:

docker service create \
 --name mysql \
 --network mysql_private \
 --secret source=mysql_root_password,target=mysql_root_password \
 --secret source=mysql_password,target=mysql_password \
 -e MYSQL_ROOT_PASSWORD_FILE= /run/secrets/mysql_root_password  \
 -e MYSQL_PASSWORD_FILE= /run/secrets/mysql_password  \
 -e MYSQL_USER= wordpress  \
 -e MYSQL_DATABASE= wordpress  \
 mysql:latest

MYSQL_DATABASE  指明创建数据库  wordpress。

MYSQL_USER  和  MYSQL_PASSWORD_FILE  指明创建数据库用户  workpress,密码从 secret mysql_password  中读取。

有关 mysql 镜像环境变量更详细的使用方法可参考  https://hub.docker.com/_/mysql/

创建 WordPress service

MySQL service 已就绪,现在创建 WordPress service。命令如下:

docker service create \
 --name wordpress \
 --network mysql_private \
 --publish 30000:80 \
 --secret source=mysql_password,target=wp_db_password \
 -e WORDPRESS_DB_HOST= mysql:3306

上述就是丸趣 TV 小编为大家分享的如何通过案例学习 Secret 了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计1707字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)