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,如需转载请自行联系原作者

相关文章
|
11月前
|
网络协议 应用服务中间件 nginx
24 个 Docker 常见问题处理技巧
24 个 Docker 常见问题处理技巧
776 1
|
1月前
|
安全 Linux 网络安全
docker常见问题
【10月更文挑战第2天】
53 3
|
6月前
|
监控 Serverless Docker
函数计算常见问题之部署docker-compose
函数计算(Function Compute, FC)是阿里云提供的无服务器计算服务,它允许用户在无需管理服务器的情况下运行代码,但在配置和执行过程中可能遇到报错,本合集致力于梳理FC服务中的常见报错和配置问题,并提供解决方案,帮助用户优化函数执行环境。
247 2
|
6月前
|
Java 测试技术 持续交付
云效产品使用常见问题之通过流水线构建的java代码,在docker文件里拿到失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6月前
|
Nacos 数据库 Docker
nacos常见问题之docker部署的seata,成功注册到nacos运行报错如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
772 2
|
6月前
|
网络安全 Docker 容器
Docker常见问题1: driver failed programming external connectivity on endpoint
Docker常见问题1: driver failed programming external connectivity on endpoint
|
6月前
|
Java 关系型数据库 数据库
Seata常见问题之docker运行报错如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
719 0
|
6月前
|
关系型数据库 分布式数据库 PolarDB
PolarDB常见问题之安装gms时出现docker如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
6月前
|
存储 Ubuntu Linux
容器技术之二.Docker的安装和常见问题
容器技术之二.Docker的安装和常见问题
210 0
|
网络协议 关系型数据库 MySQL
Docker中MySQL和WordPress的常见问题及解决方法
Docker是一个开源的容器平台,可以让你快速地开发和部署应用程序。在使用Docker时可能会遇到一些关于MySQL和WordPress的问题,例如连接错误或空响应。本文将介绍两个常见的问题及其解决方法,以及如何使用Apache HttpComponents进行带有NTLM认证的HTTP请求
506 0
Docker中MySQL和WordPress的常见问题及解决方法