Docker:如何避免Docker容器中不允许的操作?

Docker:如何避免Docker容器中不允许的操作?,docker,permissions,suse,Docker,Permissions,Suse,我创建了一个sles12机器的docker映像,备份了所有必要的文件系统,并创建了一个tar文件。为了创建docker映像,我运行以下命令- cat fullbackup.tar | docker import - sles_image docker run --net network1 -i -t sles_image /bin/bash 之后,我使用下面的命令在容器中运行docker image- cat fullbackup.tar | docker import - sles_ima

我创建了一个sles12机器的docker映像,备份了所有必要的文件系统,并创建了一个tar文件。为了创建docker映像,我运行以下命令-

cat fullbackup.tar | docker import - sles_image
docker run --net network1 -i -t sles_image /bin/bash
之后,我使用下面的命令在容器中运行docker image-

cat fullbackup.tar | docker import - sles_image
docker run --net network1 -i -t sles_image /bin/bash
注意-我已经在这个docker容器中设置了网络(我想要的IP地址)

现在在我的docker容器中,已经配置了一些应用程序,因为这些应用程序在我创建此docker映像的sles12机器中可用。这些自定义应用程序在内部运行一些内核低级命令,如

但当我启动应用程序时,应用程序将正确启动。我面临着这个错误-

不允许操作


如何授予正确的权限,使其不会出现此错误?

Docker的理念是:将应用程序拆分为微服务,并为每个微服务使用一个容器

Docker容器存储不是持久性的。如果删除容器,您的数据将丢失。您需要使用Docker卷或绑定装载来持久化数据


现在,如果您想继续所有这些,并将两个服务放在Docker容器中(不推荐),我建议至少使用
Dockerfile
从基本映像创建它。DockerHub(library)中提供的这些基本映像针对容器化环境进行了优化,您可以在该映像中安装和配置您认为合适的服务。

您可以尝试将Docker容器设置为

docker run--特权


@Farhad-我不想使用hub上提供的docker base image并在其中安装自定义软件。我想使用我的现有映像,所以提供解决方案仅用于此目的。我将此放置在此处是为了提高意识,以防我们可以帮助其他人。@Farhad-是否有任何方法向docker volume提供对现有docker容器的权限?docker volume中的文件使用linux文件权限。试试这个:
docker run-u root-net network1-i-t sles_image/bin/bash
问题是你说了什么,内核命令,我会在docker hub的基本映像中尝试这些命令,可能是docker。如果它不是一个自定义应用程序,请查找它的停靠版本,并查看它们是如何使其工作的。已确认直接使用主机网络接口工作。最初有
ifconfig enp08192.168.55.4;ifconfig:SIOCSIFADDR:不允许操作
。运行--privileged解决了这个问题。