Docker误区+技巧+转换关系
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命令可以回到某个层!)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Docker价值分析(优缺点和谁在使用?)
Docker价值分析(优缺点和谁在使用?) 摘要: Docker,一个新的容器技术,它能够在相同的旧服务器上运行的更多的应用程序,这也使得它很容易打包和发布程序。它可以得到相同的硬件上比其他技术运行更多的应用(小的开销内存/ CPU/硬盘,这意味着更低成本);它使开发人员能够快速创建简单的,现成的运行容器化应用;它使管理和部署应用程序更加容易。 优点: https://www.docker.com/whatisdocker/1.一些优势和VM一样,但不是所有都一样。比VM小,比VM快,Docker容器的尺寸减小相比整个虚拟机大大简化了分布到云和从云分发。2.对于在笔记本电脑,数据中心的虚拟机,以及任何的云上,运行相同的没有变化的应用程序,IT的发布速度更快。Docker是一个开放的平台,构建,发布和运行分布式应用程序。Docker使应用程序能够快速从组件组装和避免开发,QA和生产环境之间的摩擦。3.您可以在部署在公司局域网或云或虚拟机上使用它。4.开发人员并不关心具体哪个Linux操作系统使用Docker,开发人员可以根据所有依赖关系构建相应的软件,针对他们所选择的操作系统。然后...
- 下一篇
aliyun 启用ECS iptables
iptables -t nat -A POSTROUTING -s 0.0.0.0/24 -o eth0 -j MASQUERADEservice iptables saveecho 1 > /proc/sys/net/ipv4/ip_forward 2,修改aliyun-ECS的登陆欢迎信息 修改bash登录欢迎信息/etc/issue,/etc/motd
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS6,CentOS7官方镜像安装Oracle11G
- Linux系统CentOS6、CentOS7手动修改IP地址
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用