Docker误区+技巧+转换关系

简介: Docker误区+技巧+转换关系 1. 误区:容器重启或者机器重启会丢失容器内的数据根据https://docs.docker.com/faq/上的问答和本人的实践,在docker容器内创建文件和安装软件,做下面的操作都不会丢失数据和软件:A.

Docker误区+技巧+转换关系

 

1. 误区:容器重启或者机器重启会丢失容器内的数据


根据
https://docs.docker.com/faq/上的问答和本人的实践,在docker容器内创建文件和安装软件,做下面的操作都不会丢失数据和软件:
A. exit
sudo docker start b430d6f4ff00

B. sudo docker stop b430d6f4ff00
sudo docker start b430d6f4ff00

C. reboot host

https://docs.docker.com/faq/
Do I lose my data when the container exits?
Not at all! Any data that your application writes to disk gets preserved in its container until you explicitly delete the container. The file system for the container persists even after the container halts.

 

2. 如何进入或者退出docker容器?以及如何在主机上对正在运行的容器执行命令?


除了之前介绍的用nsenter:http://blog.csdn.net/yangzhenping/article/details/42297205


还可以使用attach选项:
sudo docker run --name ubuntu_bash -i -t ubuntu:latest /bin/bash
sudo docker ps -l
sudo docker attach b430d6f4ff00


如何退出容器而不停止容器?
组合键:Ctrl+P+Q

另外,如果想对容器执行命令,可以使用exec选项:
$ sudo docker exec -d ubuntu_bash touch /tmp/execWorks

容器中以后台进程运行touch /tmp/execWorks命令(就是在/tmp目录下创建一个新的文件execWorks)

 

另外有人想直接用ssh去连接上容器的想法,虽然可以,但是有很多弊端,而且docker已经提供了容器内执行的命令,没有必要再折腾每一个容器为sshd服务器
具体为什么不使用,可以看下这篇文章:
http://jpetazzo.github.io/2014/06/23/docker-ssh-considered-evil/

 

3. 关于几个容器和镜像以及文件的转化关系:


参考:
http://tuhrig.de/difference-between-save-and-export-in-docker/

 

容器转成镜像:
sudo docker commit <CONTAINER ID> imagename01

容器转成文件:
sudo docker export <CONTAINER ID> > /home/export.tar

镜像转成文件:
sudo docker save imagename01 > /home/save.tar
注:一般情况下,save.tar比export.tar大一点点而已,export比较小,因为它丢失了历史和数据元metadata

文件转成镜像:
cat /home/export.tar | sudo docker import - imagename02:latest

save.tar文件转成镜像:
docker load < /home/save.tar

查看转成的镜像:sudo docker images

注意:这里一个镜像经过n次转化之后,可以用sudo docker images --tree查看历史,用docker tag <LAYER ID> <IMAGE NAME>你可以回到某个层(只针对save命令可以回到某个层!)

目录
相关文章
|
存储 开发工具 git
业内docker技巧和最佳实践的想法
业内docker技巧和最佳实践的想法   最佳实践问题   这里有一些技巧,可能符合或可能不符合最佳实践,回复评论将不胜感激。•保持映像小:使用--no-install-recommends选项的apt-get,安装真正的依赖性,而不是大的元数据包(如的texlive-full)。
1057 0
|
7天前
|
存储 安全 数据安全/隐私保护
【Docker 专栏】Docker 容器化应用的备份与恢复策略
【5月更文挑战第9天】本文探讨了Docker容器化应用的备份与恢复策略,强调了备份在数据保护、业务连续性和合规要求中的关键作用。内容涵盖备份的重要性、内容及方法,推荐了Docker自带工具和第三方工具如Portainer、Velero。制定了备份策略,包括频率、存储位置和保留期限,并详细阐述了恢复流程及注意事项。文章还提及案例分析和未来发展趋势,强调了随着技术发展,备份与恢复策略将持续演进,以应对数字化时代的挑战。
【Docker 专栏】Docker 容器化应用的备份与恢复策略
|
7天前
|
监控 Kubernetes Docker
【Docker 专栏】Docker 容器内应用的健康检查与自动恢复
【5月更文挑战第9天】本文探讨了Docker容器中应用的健康检查与自动恢复,强调其对应用稳定性和系统性能的重要性。健康检查包括进程、端口和应用特定检查,而自动恢复则涉及重启容器和重新部署。Docker原生及第三方工具(如Kubernetes)提供了相关功能。配置检查需考虑检查频率、应用特性和监控告警。案例分析展示了实际操作,未来发展趋势将趋向更智能和高效的检查恢复机制。
【Docker 专栏】Docker 容器内应用的健康检查与自动恢复
|
2天前
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第20天】 在微服务架构日益普及的今天,Docker作为其重要的实现技术之一,承载着大量应用的运行。然而,随之而来的是对于容器健康状态、资源使用情况以及性能指标的监控需求急剧增加。本文旨在探讨构建一个高效且稳定的Docker容器监控体系,不仅涵盖了监控工具的选择与配置,还详细阐述了监控数据的分析与处理流程。通过精心设计的监控策略和实时响应机制,我们能够确保系统的稳定性,并及时发现及处理潜在的问题。
|
5天前
|
Java 虚拟化 Docker
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
|
5天前
|
存储 Linux Docker
CentOS7修改Docker容器和镜像默认存储位置
CentOS7修改Docker容器和镜像默认存储位置
|
5天前
|
Linux Docker 容器
更改docker容器中的时间而不影响宿主机
更改docker容器中的时间而不影响宿主机
|
5天前
|
Ubuntu Linux Go
docker容器启动报错
docker容器启动报错解决
|
7天前
|
Ubuntu Docker 容器
docker容器保存和导入
docker容器保存和导入
49 0
|
7天前
|
Ubuntu Docker 容器
清理docker容器
清理docker容器
20 0