一尘不染

在主机上运行docker命令

jenkins

我可以在主机上运行docker命令吗?我安装aws在Docker容器中,现在可以以某种方式aws在主机上使用命令(在后台使用Docker容器的aws)吗?

我的情况是这样的:我在生产主机上有数据库备份。现在我有Jenkins
cron作业,它将从db容器中获取sql文件,并将其放入服务器文件夹中。现在我还希望jenkins将此备份文件上传到AWS存储上,但是在主机上我没有安装aws,也不想在主机上安装除docker以外的任何东西,因此我认为aws应该安装在容器内。


阅读 215

收藏
2020-07-25

共1个答案

一尘不染

您不能直接这样做。Docker容器和映像具有隔离的文件系统,并且主机和容器无法直接访问彼此的文件系统和二进制文件。

从理论上讲,您可以编写一个shell脚本,将其包装docker run,命名aws并放入您的$PATH

#!/bin/sh
exec docker run --rm -it awscli aws "$@"

但这不能很好地扩展,需要您在主机上具有root级权限,并且您将无法通过其他设置访问主机上的文件(如~/.aws/config)或环境变量(如$AWS_ACCESS_KEY_ID)。

您可以只在主机上安装软件,它可以正常运行。不需要绝对将Docker用于所有内容。

2020-07-25