在docker机器上使用docker secrets

时间:2019-04-15 15:15:18

标签: docker docker-compose docker-machine docker-secrets

尝试在由docker-machine创建的远程主机上使用Docker机密时遇到问题。

下面是我的docker-compose.yml:

version: "3.5"

services:
  mysql:
    image: mysql:5.7
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
    secrets:
      - db_root_password

secrets:
  db_root_password:
    file: ./db_root_password.txt

这在本地运行良好,我可以运行docker-compose up并访问mysql容器。

docker-compose up

root密码已被很好地应用。

我现在正在尝试在使用docker-machine创建的远程主机上运行容器。

我首先使用docker-machine create(在这种情况下,在exoscale云上)创建了机器

docker-machine create --driver exoscale  ... MyMachine

然后我尝试使用以下方式部署主机:

eval $(docker-machine env MyMachine)
docker-compose up

但是,当我尝试在远程主机上运行时,出现以下错误:

ERROR: for mysql  Cannot create container for service mysql: invalid mount config for type "bind": bind source path does not exist: /Users/user/path/to/db_root_password.txt

因此,它仍在尝试将密码与本地文件的路径一起加载到本地计算机上。如何在远程主机上使用此机密?

预先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

似乎游览docker-machine无法找到Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$6" Then If UCase(Target.Value) = "N" Then Sheets("Sheet1").Range("$D$16:$D$500").ClearContents End If End Sub

您可以尝试在docker-machine内部的同一路径中创建文件./db_root_password.txt吗?