Linux+;Docker-如何运行主机&x27;从Docker容器中删除应用程序?

Linux+;Docker-如何运行主机&x27;从Docker容器中删除应用程序?,docker,containers,system-administration,Docker,Containers,System Administration,我想知道Docker是否可以运行安装在容器中主机中的应用程序,这样我就不需要在每个映像上安装应用程序,这样会浪费硬盘空间 我知道Linux是不同的,因为它需要依赖项和本地包,但我想知道是否可以像在Windows VM中一样使用它。 在Windows Hyper-V中,我通过与容器共享包含便携应用的网络文件夹来实现这一点,并从Windows VM内部运行应用。 谢谢。您可以将主机上包含可执行文件的目录链接到容器中。然后可以在容器中访问它。为此,您可以使用主机目录(此处:/tmp/foo)并将其装入

我想知道Docker是否可以运行安装在容器中主机中的应用程序,这样我就不需要在每个映像上安装应用程序,这样会浪费硬盘空间

我知道Linux是不同的,因为它需要依赖项和本地包,但我想知道是否可以像在Windows VM中一样使用它。 在Windows Hyper-V中,我通过与容器共享包含便携应用的网络文件夹来实现这一点,并从Windows VM内部运行应用。
谢谢。

您可以将主机上包含可执行文件的目录链接到容器中。然后可以在容器中访问它。为此,您可以使用主机目录(此处:/tmp/foo)并将其装入容器(此处:/foo),然后在容器的位置/foo/foo.sh执行名为foo.sh的脚本:

mkdir /tmp/foo
echo -e "#\!/bin/sh\n\necho foo" > /tmp/foo/foo.sh

docker run --rm -v /tmp/foo:/foo alpine sh /foo/foo.sh
=> foo

同样,您可以将主机中的二进制文件添加到容器中。。。但我不认为这是有意的,也不应该使用,因为容器应该作为一个独立的、隔离的“轻量级VM”工作。您向主机添加了一个不必要的依赖项,这似乎不是一个优雅的解决方案。

您可以将主机上包含可执行文件的目录链接到容器中。然后可以在容器中访问它。为此,您可以使用主机目录(此处:/tmp/foo)并将其装入容器(此处:/foo),然后在容器的位置/foo/foo.sh执行名为foo.sh的脚本:

mkdir /tmp/foo
echo -e "#\!/bin/sh\n\necho foo" > /tmp/foo/foo.sh

docker run --rm -v /tmp/foo:/foo alpine sh /foo/foo.sh
=> foo

同样,您可以将主机中的二进制文件添加到容器中。。。但我不认为这是有意的,也不应该使用,因为容器应该作为一个独立的、隔离的“轻量级VM”工作。您向主机添加了一个不必要的依赖项,这似乎不是一个优雅的解决方案。

@n20我将使用它在现有计算机上自动执行一个过程,为现有软件创建一个API。liscence与计算机绑定,因此尝试将可执行文件捆绑到容器中是没有意义的。@n20我将使用它在现有计算机上自动执行一个过程,为现有软件创建一个API。liscence绑定到机器上,因此尝试将可执行文件捆绑到容器中是没有意义的。