Docker部署WordPress:MacOS下文件位置查询及容器SSH访问方法
嘿,刚在Mac上用Docker跑起WordPress是吧?我来帮你理清楚文件在哪、怎么操作——其实不用搞SSH这么麻烦,有更简单的方式!
先搞清楚:WordPress文件存在哪?
默认情况下,Docker给WordPress容器用的是Docker卷来存储文件(而不是直接存在Mac本地目录)。因为Mac上的Docker是跑在一个隐藏的轻量虚拟机里的,所以这些卷的实际路径不在你Mac的Finder里直接可见,但有两种方式能访问到:
方式1:挂载本地目录(最推荐!)
如果需要经常编辑WordPress文件,强烈建议在启动容器时手动把本地目录挂载到容器里。这样你直接在Mac的本地文件夹里改文件,容器里会自动同步,根本不用碰容器或虚拟机。
举个例子,如果你用docker-compose,只需要在docker-compose.yml里加一行挂载配置:
services: wordpress: image: wordpress:latest # 其他配置(端口、环境变量)... volumes: # 把Mac当前目录下的wp-content文件夹挂载到容器的对应路径 - ./wp-content:/var/www/html/wp-content
启动容器后,你在Mac本地的./wp-content里加主题、插件,容器里的WordPress立刻就能用,编辑文件也直接在本地编辑器搞定,超方便!
方式2:找到Docker卷在Mac虚拟机里的路径
如果是默认启动的容器没挂载本地目录,你可以这样找卷的位置:
先查容器的挂载信息:
运行命令:docker inspect <你的WordPress容器名或ID>
在输出里找Mounts字段,里面的Source就是卷在Docker虚拟机里的路径,比如/var/lib/docker/volumes/abc123/_data进入Docker虚拟机:
运行命令:screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
(如果这个命令失效,试试docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -i -n sh)进入刚才查到的
Source路径,里面就是WordPress的所有核心文件(wp-admin、wp-includes这些)
要不要SSH进容器?完全不用!
容器里默认没装SSH服务,而且Docker本身就提供了直接进入容器shell的命令——docker exec,比SSH简单多了:
进入容器的步骤:
先找容器名/ID:
运行命令:docker ps
看输出里的NAMES列,比如你的容器叫wordpress_1进入容器的bash终端:
运行命令:docker exec -it <容器名或ID> bash
比如:docker exec -it wordpress_1 bash到WordPress根目录:
容器里的WordPress默认存在/var/www/html/,所以运行:cd /var/www/html
然后用ls看文件,用nano编辑(如果要装vim,先跑apt update && apt install vim)退出容器直接输
exit就行
最后总结下
- 长期编辑文件:一定要挂载本地目录,操作最顺畅
- 临时查看/改文件:用
docker exec进容器就行,没必要搞SSH
内容的提问来源于stack exchange,提问作者ultraloveninja

