我正在尝试使用只读文件系统启动容器,但特定文件夹(/app)需要是世界可写的。
# docker create -it --name=test \
--read-only \
--mount type=tmpfs,destination=/app,tmpfs-mode=1777 \
--entrypoint /bin/bash \
debian:latest
在第一个容器启动时,这可以正常工作。
# docker start test
test
# docker exec -it test bash
root@c6a9a58b7afe:/#
root@c6a9a58b7afe:/# ls -lrt / | grep app
drwxrwxrwt 2 root root 40 Aug 31 10:19 app
然后我停止了容器并再次启动它。这一次,/app
不再是世界可写的。
root@c6a9a58b7afe:/# exit
exit
# docker stop test
test
# docker start test
test
# docker exec -it test bash
root@c6a9a58b7afe:/# ls -lrt / | grep app
drwxr-xr-x 2 root root 40 Aug 31 10:20 app
root@c6a9a58b7afe:/#
为什么在第一个 ( drwxrwxrwt
) 和后续 ( drwxr-xr-x
) 容器实例上会出现这种差异?如何使这个永久世界可写?