我在Rancher中安装了Worpress,(docker.iobitnamiwordpress:5.3.2-debian-10-r43。我必须使wp-config可写,但我卡住了,当在这个pod内的shell以root身份登录时,我无法以root身份登录,没有密码匹配Bitnami Wordpress安装。
kubectl exec -t -i --namespace=annuaire-p-brqcw annuaire-p-brqcw-wordpress-7ff856cd9f-l9gf7 bash
我无法登录到root,没有与Bitnami Wordpress安装匹配的密码。
wordpress@annuaire-p-brqcw-wordpress-7ff856cd9f-l9gf7:/$ su root
Password:
su: Authentication failure
请问默认密码是多少,或者如何更改?
我真的需要你的帮助
WordPress容器已经迁移到 "非root "用户方式。以前,容器以root用户的身份运行,Apachedaemon以daemon用户的身份启动。从现在开始,容器和 Apache 守护进程都以用户 1001 的身份运行。你可以通过在 Docker 文件中把 USER 1001 改为 USER root 来恢复这种行为。
默认情况下,wp-config.php没有写入权限。
这意味着唯一的办法是创建自己的Docker文件,并将用户改为 "root"。root
.
然而,它不建议运行这些容器是根为 安全原因.
最简单、最原生的Kubernetes改变Pod容器文件系统上的文件内容的方法是创建一个 配置图 对象 从文件 使用以下命令。
$ kubectl create configmap myconfigmap --from-file=foo.txt
$ cat foo.txt
foo test
(检查 配置地图文档 以了解如何更新它们的详细信息)。)
然后加载 ConfigMap
到你的容器中,以替换现有的文件,如下所示。(例子需要做一些调整,以配合Wordpress图片使用)。
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: mypod
image: nginx
volumeMounts:
- name: volname1
mountPath: "/etc/wpconfig.conf"
readOnly: true
subPath: foo.txt
volumes:
- name: volname1
configMap:
name: myconfigmap
在上面的例子中,ConfigMap中的文件。data:
替换原来的部分 /etc/wpconfig.conf
文件(如果文件不存在,则创建)在正在运行的容器中,而不需要建立一个新的容器。
$ kubectl exec -ti mypod -- bash
root@mypod:/# ls -lah /etc/wpconfig.conf
-rw-r--r-- 1 root root 9 Jun 4 16:31 /etc/wpconfig.conf
root@mypod:/# cat /etc/wpconfig.conf
foo test
注意,文件的权限是644,足以让非root用户读取。
另外,Bitnami Helm图表也使用了这种方法,但它依靠的是在容器中的 现有配置图 在您的集群中添加自定义 .htaccess
和 持久性卷索赔 用于安装Wordpress data
文件夹。