Docker常见问题总结(持续更新)

一、镜像相关问题

1、如何批量清理临时镜像文件?

    #docker rmi $(DOCKER IMAGES  -qf dangling=true)


2、如何查看镜像支持的环境变量?

    #docker run IMAGE env


3、本地的镜像文件都存放在哪里?

    与Docker相关的本地资源都存放在/var/lib/docker/目录直,以aufs文件系统为例,其中container目录存放容器信息,graph目录存放镜像信息,aufs目录下存放具体的镜像层文件。


4、构建Docker像应该遵循哪些原则?

    整体原则上,尽量保持镜像功能的明确和内容的精简,要点包括:

  • 尽量选取满足需求但较小的基础系统镜像,例如大部分时候可以选择debian:wheezy或debian:jessie镜像,仅有不足百兆大小;

  • 清理编译生成文件、安装包的缓存等临时文件;

  • 安装各个软件时候指定准确的版本号,并避免引入不需要的依赖;

  • 从安全角度考虑,应用要尽量使用系统的库和依赖;

  • 如果安装应用时候需要配置一些特殊的环境变量,在安装后要还原不需要保持的变量值;

  • 使用Dockerfile创建镜像时候要添加.dockerignore文件或使用干净的工作目录。


5、碰到网络问题,无法pull镜像,命令行指定http_proxy无效,怎么办?

    在Docker配置文件中添加export http_proxy="http://<PROXY_HOST>:<PROXY_PORT>",之后重启Docker服务即可。


二、容器相关问题

1、容器退出后,通过docker ps命令查看不到,数据会丢失么?

    容器退出后会处于终止(exited)状态,此时可以能过docker ps -a 命令查看。其中的数据也不会丢失,还可以通过docker start命令来启动它。只有删除掉容器才会清除所有数据。


2、如何停止所有正地运行的容器?

    docker kill $(docker ps -q)


3、如何清理批量后台停止的容器?

    docker rm -f $(docker ps -qa)


4、如何获取某个容器的PID信息?

    docker  inspect  --format '{{ .State.Pid }}' <CONTANINERID or NAME>


5、如何获取某个容器的IP地址?

    dpcler   inspect  --format  '{{ >NetworkSettings.IPAddress }}'  <CONTANINERID or NAME>


6、如何给容器指定一个固定IP地址,而不是每次重启容器IP地址都会变?

    目前Docker并没有提供直接的对容器IP地址的管理支持,可以在网上查找容器网络配置创建点对点连接的案例,来手动配置容器的静态IP。或者在容器启动后,再手动进行修改。


7、如何临时退出一个正在交互的容器的终端,而不终止它?

    按Ctrl-p Ctrl-q。如果按Ctil-c往往会让容器内应用进程终止,进而会终止容器。


8、使用docker port 命令映射容器的时,系统报错“Error: No Public port  '80' published for xxx” ,怎么办?

    创建镜像时Dockerifle要通过EXPOSE命令指定正确的开放端口;容器启动时指定PublishAllPort=true。


9、可以在一个容器中同进运行多个应用进程么?

    一般并不推荐在同一个容器内运行多个应用进程。如果有需求,可以通过一些额外的进程管理机制,比如supervisord来管理所运行的进程。可以参考https://docs.docker.com/articles/using_supervisord/


10、如何控制容器占用系统资源(CPU MEM)的份额?

    在使用docker create命令创建容器或使用docker run创建并启动容器的时候,可以使用-c | --cpu-shares[=0] 参数来调整容器使用CPU的权重;使用 -m | --memory[=MEMORY]参数来调整容器使用内存的大小。


好了,觉得有用的朋友可以转发或者收藏,大家有问题可以在下面留言一起探讨,有更好的建议也可以在评论区贴出来!!!



本文转自甘兵 51CTO博客,原文链接:http://blog.51cto.com/ganbing/2052074,如需转载请自行联系原作者

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/482237

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。