Nav*_*eep 10 docker docker-swarm docker-swarm-mode docker-secrets
是否可以从我的本地mac在云托管的docker swarm集群上执行命令?如果有,怎么样?
我想执行命令,例如从我的本地执行docker swarm:
docker create secret my-secret <address to local file>
docker service create --name x --secrets my-secret image
Run Code Online (Sandbox Code Playgroud)
这是在远程 docker 引擎上运行命令的最简单方法:
docker context create --docker host=ssh://myuser@myremote myremote
docker --context myremote ps -a
docker --context myremote create secret my-secret <address to local file>
docker --context myremote service create --name x --secrets my-secret image
Run Code Online (Sandbox Code Playgroud)
或者
docker --host ssh://myuser@myremote ps -a
Run Code Online (Sandbox Code Playgroud)
您甚至可以将远程上下文设置为默认值并像在本地一样发出命令:
docker context use myremote
docker ps # lists remote running containers
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您甚至不需要安装 docker 引擎,只需安装docker-ce-cli.
您需要使用基于密钥的身份验证来完成此工作(您应该已经在使用它)。其他选项包括设置基于 tls 证书的套接字或 ssh 隧道。
另外,请考虑设置ssh 控制套接字以避免对每个命令重新进行身份验证,这样您的命令将运行得更快,因为它是本地的。
可以在这里找到问题的答案.
需要为ubuntu机器做的是在路径中定义daemon.json文件,/etc/docker其中包含以下内容:
{
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
}
Run Code Online (Sandbox Code Playgroud)
上述配置是不安全的,如果服务器是公共托管的,则不应使用此配置.
对于安全连接,请使用以下配置
{
"tls": true,
"tlscert": "/var/docker/server.pem",
"tlskey": "/var/docker/serverkey.pem",
"hosts": ["tcp://x.x.x.y:2376", "unix:///var/run/docker.sock"]
}
Run Code Online (Sandbox Code Playgroud)
如@BMitch所述,可以在此处找到生成证书的详细信息.
| 归档时间: |
|
| 查看次数: |
7957 次 |
| 最近记录: |