Docker巩固十七问

news/2024/10/4 6:34:01 标签: docker, 容器, 运维, 虚拟化

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


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

  • 所谓的“临时镜像”或“虚悬镜像”(dangling images)是指那些没有被任何容器引用的层,通常是在构建新镜像时遗留下来的中间层。可以使用sudo docker rmi $(sudo docker images -q -f "dangling=true")命令。

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

  • 可以使用sudo docker run ${IMAGE} env命令,如:sudo docker run nginx env

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

  • 与Docker相关的本地资源默认都存放在/var/lib/docker/目录下,其中containers目录存放容器信息;image目录存放镜像信息;aufs/overlay2目录下存放具体的镜像层文件;network存储Docker网络相关信息;volumes存储 Docker 卷的数据;swarm存储 Swarm 集群的状态和配置等。

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

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

  • 尽量选取满足需求但较小的基础系统镜像;

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

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

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

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

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

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

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

6. 如何停止所有正在运行的容器

  • 可以使用sudo docker kill $(sudo docker ps -g)命令。

7. 如何清理批量后台停止的容器

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

  • 先创建一个自定义网络,然后再固定IP:

docker network create --subnet=192.168.1.0/24 my_custom_networkdocker run -d --name my_container --network my_custom_network --ip 192.168.1.100 my_image

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

  • 先按Ctrl-p,然后按ctrl-q即可。如果按Ctr1-c往往会让容器内应用进程终止,进而会终止容器

10. 可以在一个容器中同时运行多个应用进程吗?

  • 一般并不推荐在同一个容器内运行多个应用进程。如果有类似需求,可以通过一些额外的进程管理机制,比如supervisordrunitsystemd等来管理所运行的进程。

11. 使用“docker port”命令映射容器的端口时,系统报错Error:No public port '80'published for e7d817698b6f,是什么意思?

  • 创建镜像时 Dockerfle 要指定正确的 EXPOSE 的端口;

  • 容器启动时指定 PublishAllPort=true;

12. 如何控制容器占用系统资源(CPU、内存)的份额?

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

13. 从非官方仓库(例如dldockerpool.com)下载镜像时候,有时候会提示“Error:Invalid registry endpoint https://dl.dockerpool.com:5000/v1/......”?

  • Docker自1.3.0版本往后,加强了对镜像安全性的验证,需要手动添加对非官方仓库的信任。编辑 Docker 配置文件,在其中添加:DOCKER OPTS="--insecure-registry dl.dockerpool.com:5000"之后,重启 Docker 服务即可。

14. Docker 的配置文件放在哪里,如何修改配置?

  • Centos 系统的配置文件放在/etc/docker,关键的配置文件是 daemon.json。这个文件用于配置Docker守护进程(Docker Daemon)的各项参数,包括但不限于数据存储位置、网络设置、日志配置、信任代理等。

15. 如何更改Docker的默认存储位置?

  • Docker的默认存储位置是/var/lib/docker,如果希望将Docker的本地文件存储到其他分区,可以使用Linux软连接的方式来完成。

16. Docker、podman、containerd的相同和不同点?

相同点:

  • 这三者都用于管理容器的创建、运行和操作,允许用户在隔离的环境中运行应用程序;

  • Docker、Podman 和containerd都遵循Open Container Initiative (OCI) 的容器镜像和运行时规范,这确保了容器镜像的兼容性和可移植性;

  • 它们都支持容器的生命周期管理,包括容器的创建、启动、停止、删除等基本操作;

不同点:

  • Docker是一个全功能的容器平台,包含了容器的创建、运行、构建和编排功能。

  • Podman是一个无守护进程、rootless支持的容器管理工具,强调安全性和对 Pod 的支持。

  • containerd是一个专注于容器运行时的低层次组件,主要用于与其他容器管理工具的集成。

17. 如何将一台宿主主机的 docker 环境迁移到另外一台宿主主机?

  • 停止 Docker 服务。将整个 docker 存储文件夹复制到另外一台宿主主机,然后调整另外一台宿主主机的配置即可。

出处:《Docker技术入门与实践》,版权为原作者所有


http://www.niftyadmin.cn/n/5689621.html

相关文章

【社保通-注册安全分析报告-滑动验证加载不正常导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

ElasticSearch 备考 -- 备份和恢复

一、题目 备份集群下的索引 task,存储快照名称为 snapshot_1 二、思考 这个涉及的是集群的备份,主要是通过创建快照,涉及到以下2步骤 Setp1:注册一个备份 snapshot repository Setp2:创建 snapshot 可以通过两种方…

[VULFOCUS刷题]tomcat-pass-getshell 弱口令

tomcat-pass-getshell 弱口令 启动容器,打开网站 点开manageapp,输入弱口令 tomcat/tomcat 之后在下面上传jsp大马,首先生成一个jsp马 这里我直接使用github别人生成好的 tennc/webshell: This is a webshell open source project (github.…

优化后的版本

docker_operations.sh #!/bin/bash# all definition NETWORK_NAME"net-1" VOLUME_MOUNT"-v /home/norten/Public/tools:/mnt" # 容器内部挂载到主机的路径 SCRIPT_ROUTE"/mnt" # container_run_medium.sh所在的路径 IMAGE_NAME"ubuntu&quo…

Linux shell编程学习笔记85:fold命令——让文件瘦身塑形显示

0 引言 我们使用的电脑屏幕有宽有窄,我们有时候希望文件能按照我们的屏幕宽度来调整和匹配,这时我们可以使用fold命令。 1 fold命令 的帮助信息、功能、命令格式、选项和参数说明 1.1 fold 命令 的帮助信息 我们可以输入命令 fold--help 来查看fold …

爬虫——同步与异步加载

一、同步加载 同步模式--阻塞模式(就是会阻止你浏览器的一个后续加载)停止了后续的解析 因此停止了后续的文件加载(图像) 比如hifini音乐网站 二、异步加载 异步加载--xhr(重点) 比如腾讯新闻,腾讯招聘等 三、同…

实景三维赋能城镇数字化规划

在数字化浪潮的推动下,城镇规划正经历着前所未有的变革。实景三维技术以其独特的优势,为城镇数字化规划提供了强大的技术支持。今天,我们将深入探讨实景三维技术如何赋能城镇数字化规划。 一、城镇规划面临的挑战 随着城镇化进程的加快&…

Git版本控制工具--关于命令

Git版本控制工具 学习前言 在项目开发中,总是需要多个人同时对一个项目进行修改,如何高效快速地进行修改,且控制各自修改的版本不会和他人的进行重叠,这就需要用到Git分布式版本控制器了 作用 解决了一致性,并发性…