是否可以编辑在Docker容器上运行的图像内的文本文件?

时间:2018-07-24 09:31:39

标签: docker

我有一个python脚本,通过在docker容器内创建docker镜像,可以使用docker运行该脚本。这是我的docker文件:

FROM python:3.6
RUN pip install tweepy
RUN pip install pymongo
RUN pip install asyncio
EXPOSE 32771
ADD hash_cat.txt /
ADD tweepy_twitter_stream_v0.6.py /
CMD [ "python", "./tweepy_twitter_stream_v0.6.py" ]

该脚本从 hash_cat.txt 文本文件读取并根据其内容执行一些操作。 我想定期访问 hash_cat.txt 并更改其内容。

问题是: 当我运行图像以访问其bash并编辑 hash_cat.txt 并保存时,它会使用 hash_cat.txt 文件为该图像创建一个新容器,而不保存我对 hash_cat.txt 进行的更改。 这是我运行图像外壳以编辑 hash_cat.txt 内容的方式:

docker run -it python_script bin/bash

其中python_script是图像名称。 然后我运行

apt-get update
apt-get install vim

使用vim编辑 hash_cat.txt 内容。 编辑完文件并输入:wq保存并退出后。 我再次使用

运行图像
docker run python_script

我的问题是:是否可以运行图像并定期访问图像并更改 hash_cat.txt 内容,而无需每次都创建新容器。

希望您理解我的问题。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

每次使用Map map = await rootBundle .loadStructuredData('assets/data/questions.json', (String s) async { return json.decode(s); }); 时都会有一个新容器,请使用docker run访问已经存在的容器。

或者您必须使用音量,然后将此文件放入音量中。