docker镜像并不是一个完整的Linux系统,有的容器中无法使用vi进行编辑文件。
最近遇到一个问题,在自己的云服务器上使用nextcloud的docker镜像搭了个网盘服务,需要修改的nextcloud配置文件,但是又没有挂载配置文件所在目录。
进入docker中发现并没有安装vi, 也没有yum和apt-get安装工具,没有办法直接编辑。
本来想通过增加挂载目录来解决:使用当前容器构建新的镜像,重新启动容器并挂载配置目录。但是想了想应该可以通过其他方式实现编辑文件的操作,比如创建新的文件覆盖旧文件。
进入docker容器
docker exec -it nextcloud /bin/bash
创建空文件(可以省略)
touch test.txt
推荐方法
本地创建文件,使用docker cp命令 在本地和容器之间传输数据。
# 复制本地文件到容器
docker cp test.txt containerName:/test.txt
其他方法
方法一:echo创建文件并写入文本
echo 'test' > ./test.txt
方法二:cat 命令逐行键入文本(写入完成后,最后一行输入EOF并回车退出输入)
cat >> ./test.txt <<EOF
方法三:cat命令实现编辑(ctrl+d退出编辑)
cat >> ./test.txt
方法4:如果已经挂载了目录到宿主机,可以在宿主机中创建文件或文件夹,在docker中移动或覆盖到所需目录
感谢阅读!欢迎关注微信公众号”混沌前端“,获取推送更新。