Mar*_*ark 5 cifs docker docker-compose docker-swarm docker-secrets
是否可以使用机密来存储用户名和密码,以便在堆栈 yaml 文件中的卷定义中使用?
如果是这样,怎么办?
如果不是,那么如何最好不必在 yaml 文件中包含凭据?
例如,我的堆栈包含如下部分......
networks:
media-net:
driver: overlay
ipam:
config:
- subnet: 172.31.1.0/24
secrets:
smb-user:
external: true
name: docker-smb-user
smb-password:
external: true
name: docker-smb-password
...
volumes:
media-movies:
name: media-movies
driver: local
driver_opts:
type: cifs
device: "//storage.lan/media-movies"
o: "addr=storage.lan,vers=3.0,username=/run/secrets/smb-user,password=/run/secrets/smb-password,uid=1000,gid=1000"
Run Code Online (Sandbox Code Playgroud)
我尝试在选项行中使用 /run/secrets/smb-user 等,但收到一个可能相关或不相关的错误。类似“没有到主机的路由”之类的东西。
我这里是否同时存在网络和凭据问题?覆盖层可以看到主机所在的 LAN 还是需要单独的定义?
我特别只使用 yaml 文件,因此所有定义都可以在 git 存储库中维护。
Xee*_*vis -1
不需要秘密。这是一个命名卷,这意味着一旦创建它,它将持续存在,直到所有使用它的容器被删除并且卷被手动删除为止。
如果您希望此信息保密,只需将其从 docker-compose 中完全省略并使用以下命令手动创建一次:
docker volume create `
--driver local `
--opt type=cifs `
--opt device=//storage.lan/media-movies `
--opt o=addr=storage.lan,vers=3.0,username=foo,password=bar,uid=1000,gid=1000 `
media-movies
Run Code Online (Sandbox Code Playgroud)
您可能希望将其添加到自述文件中以供将来参考(当然需要空白凭据)。然后您就不需要 docker-compose 文件中的任何卷详细信息。
volumes:
media-movies:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
595 次 |
| 最近记录: |