我停止容器后Docker容器文件丢失

时间:2019-11-25 12:55:06

标签: docker dockerfile containers

我使用([^/]+[.html]?)/?\? 拉了Ubuntu映像。

我使用docker pull连接到容器,然后创建一个文件,然后退出。

同样,当我执行docker exec文件时丢失。

如何在该容器中维护文件,我尝试了dockerfile并标记docker映像,它可以工作。

但是,还有其他方法可以将文件保存在Docker容器中更长的时间吗?

2 个答案:

答案 0 :(得分:0)

一个选择是commit您的更改。添加文件后,并且容器仍在运行时,应运行:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

另一个选择,也许您想使用volume,但这取决于您的逻辑和需求。

答案 1 :(得分:0)

使用Docker Volumes将内容持久保存在容器中的最佳方法:

╭─exadra37@exadra37-Vostro-470 ~/Developer/DevNull/stackoverflow  
╰─➤  sudo docker run --rm -it -v $PWD:/data ubuntu 

root@00af7ccf1d3b:/# echo "Persits data with Docker Volumes" > /data/docker-volumes.txt

root@00af7ccf1d3b:/# cat /data/docker-volumes.txt 
Persits data with Docker Volumes

root@00af7ccf1d3b:/# exit

╭─exadra37@exadra37-Vostro-470 ~/Developer/DevNull/stackoverflow  
╰─➤  ls -al
total 12
drwxr-xr-x 2 exadra37 exadra37 4096 Nov 25 15:34 .
drwxr-xr-x 8 exadra37 exadra37 4096 Nov 25 15:33 ..
-rw-r--r-- 1 root     root       33 Nov 25 15:34 docker-volumes.txt

╭─exadra37@exadra37-Vostro-470 ~/Developer/DevNull/stackoverflow  
╰─➤  cat docker-volumes.txt                                                                                                                                                                                  
Persits data with Docker Volumes

docker命令解释:

sudo docker run --rm -it -v $PWD:/data alpine 
  • 我使用标志-v将当前目录$PWD映射到容器内的/data目录
  • 在容器内:
    • 我写了一些内容
    • 我读了同样的内容
    • 我退出了集装箱
  • 在主机上:
    • 我使用ls -al确认文件已保存到我的计算机中。
    • 我确认可以访问计算机文件系统中的相同文件。