docker
文章平均质量分 83
Dontla
调包侠
展开
-
Docker容器的短暂运行(一次性实例、一次性任务)和长期运行场景(Web服务器、数据库、后台应用等)(.dockerignore文件)
Docker作为一个开源的应用容器引擎,允许开发者打包他们的应用及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可实现虚拟化。文件可以用来指定在构建过程中需要忽略的文件或目录,这些指定的内容不会被包含在发送到 Docker 服务器的构建上下文中。这样做的好处是可以减少构建的时间,降低资源消耗,同时也可以防止不必要的文件或敏感信息被无意地包含在最终的镜像中。数据迁移是另一个适合使用短暂运行容器的场景,特别是在大数据和云计算环境中,可以利用容器快速启动数据迁移任务,完成后即销毁。原创 2024-10-08 10:09:37 · 324 阅读 · 0 评论 -
Docker /var/lib/docker/overlay2目录解析(Overlay2是Docker的默认存储驱动之一,主要用于管理容器和镜像的文件系统)(孤儿层问题Orphaned Layers)
Docker利用这些哈希值来优化存储和检索,避免重复存储相同内容的层,从而实现高效的存储管理。每当创建新的镜像层或修改现有镜像时,Docker都会生成一个新的哈希值来代表这个层的状态。这个目录对于Docker的操作至关重要,通常不建议手动更改这些文件,因为这可能会影响Docker容器的运行和数据的完整性。在您的输出中,显示了Docker使用Overlay2存储驱动在特定容器层对应的目录下的三个子目录的磁盘使用情况。,这个目录在您列出的当前运行和已存在的容器或镜像列表中找不到对应项。原创 2024-09-20 15:25:27 · 1433 阅读 · 0 评论 -
Docker存储目录问题,如何修改Docker默认存储位置?(Docker存储路径、Docker空间)/etc/docker/daemon.json(docker占用docker容量)docker迁移
选择哪种方法取决于你的具体需求和你对系统的控制级别。如果你希望通过 Docker 自身的配置来管理,使用。原创 2024-07-11 13:43:35 · 6728 阅读 · 2 评论 -
ubuntu20.04 docker load -i报错:open xxx.tar: no such file or directory(卸载:snap remove docker)
卸载完成后环境不会自动重载,需要重启远程窗口,或者重新打开终端。发现docker是snap安装的,卸载重新用。然后docker就能正常使用了。原创 2024-07-04 09:41:06 · 1340 阅读 · 0 评论 -
Docker网桥的作用
Docker 网桥是一个虚拟网络设备,它的作用是在 Docker 容器和宿主机之间创建一个隔离的网络环境。具体来说,Docker 网桥充当了一个虚拟的交换机或路由器,它可以将不同容器之间或容器与主机之间的数据包进行转发和路由,从而实现容器之间的通信。Docker 网桥还支持端口映射,使得容器内的服务可以通过主机的 IP 地址和端口号进行访问。除了默认的 Docker 网桥之外,Docker 还支持用户自定义的网络,用户可以创建自己的 Docker 网络,并将容器连接到其中,以实现更加灵活的网络配置。原创 2024-07-02 15:28:36 · 491 阅读 · 0 评论 -
Docker日志占用大量空间排查(docker日志清理)(日志撑爆系统)(日志驱动配置json-file)(--log-driver、--log-opt)/var/lib/docker存储目录介绍
在Docker的目录下,有几个重要的子目录,这些目录用于存储Docker运行时的不同数据和文件。:存储与Docker内容信任相关的数据。内容信任是Docker的安全特性,用于确保镜像未被篡改。:包含有关Docker网络配置的数据。这些文件用于管理Docker容器间的网络连接。:存储Docker容器的运行时数据。每个容器会在此目录下有一个对应的子目录,其中包含容器的配置文件、日志、以及一些状态文件。:如果Docker被配置为使用Swarm模式,该目录会用来存储Swarm模式相关的数据。原创 2024-06-12 18:09:06 · 1320 阅读 · 0 评论 -
ubuntu20.04与openEuler20.03 gcc版本不同问题(欧拉容器编译环境构建)(openeuler/openeuler:20.03-lts-sp3)
ubuntu20.04默认9.4.0,openEuler默认7.3.0。原创 2024-04-30 17:11:49 · 1497 阅读 · 1 评论 -
为什么docker不让用普通用户操作,一操作就报错,非得用root用户才能操作?(docker普通用户)
在Ubuntu 20.04上使用Docker时,需要使用root权限来运行Docker命令是因为Docker守护进程本身默认以root用户运行。当一个普通用户试图执行Docker命令时,如果没有适当的权限,就会遇到权限不足的错误。用户加入新组后,为了使这一变更生效,你需要注销并重新登录,或者重启你的电脑。如果还有问题,请再次确认步骤是否都正确执行,特别是用户是否正确添加到了。这个错误信息表明你的用户没有足够的权限来访问Docker守护进程的socket文件。组,但是还未重新登录或重启以使组的变更生效。原创 2024-04-12 10:16:16 · 1261 阅读 · 0 评论 -
Docker端口一直占用问题,docker重置(端口无法释放)(彻底重置docker环境)
彻底重置Docker环境涉及到移除所有容器、网络、卷、镜像,以及Docker的配置文件。这个过程会导致数据丢失,因此请确保事先备份了所有重要的数据和配置。请记住,这些步骤将彻底清除你的Docker环境,包括所有容器、镜像、网络和卷。务必在执行这些操作前备份你需要保留的数据。如果你在其他路径或分区挂载了Docker的数据,请确保也删除了那些路径下的数据。今天docker异常了,有个11111端口一直被它内部服务占用,杀都杀不掉。警告:这一步将删除Docker的所有数据和配置文件,请确保事先已经备份。原创 2024-04-10 13:31:55 · 2597 阅读 · 0 评论 -
Docker容器宿主机软链接挂载、绑定挂载和卷的区别(bind mounts and volumes)、容器软链接本质、symlinks、inode(挂载软链接时必须注意要将目标一并挂载——不需要!)
serves as(用作:用来作为) a reference or pointer to another file or directory.符号链接或软链接,是一种文件,用作指向另一个文件或目录的引用或指针。原创 2024-03-25 09:34:05 · 2013 阅读 · 0 评论 -
Docker nginx容器代理播放m3u8视频文件(HLS)
M3U8和HLS协议被广泛地支持,在各种设备和平台上都可以播放,包括iOS、Android、Windows、macOS等。因此,虽然在某些情况下,直接链接到视频文件可能更简单,但使用M3U8和HLS协议可以提供更强大和灵活的流媒体解决方案。:由于M3U8将媒体内容分割成多个小段,所以即使在下载过程中出现问题,也只会影响到当前的段,而不是整个视频。这个脚本将启动一个新的Docker容器,并映射主机的80端口到容器的80端口。:M3U8可以用于实时的流媒体广播,也可以用于点播内容。原创 2024-01-06 09:15:00 · 4304 阅读 · 3 评论 -
docker run --help帮助文档
使用apt install docker.io安装docker。环境:ubuntu20.04 x64。原创 2023-12-25 17:32:57 · 1926 阅读 · 2 评论 -
docker compose使用教程(docker-compose教程)
然后,只需要一个简单的命令,就能创建并启动配置中的所有服务。本教程将深入探讨Docker Compose的使用,包括其安装、基础概念、常用命令、高级功能以及最佳实践。在Compose文件中,服务是描述容器运行的方式。Docker Compose 允许您为不同的环境(如开发、测试和生产)定义不同的配置。Docker Compose 的命令非常直观,以下是一些常用命令的例子。可以在Compose文件中定义服务的健康检查,并指定服务的依赖关系。该文件采用YAML格式,定义了所有相关服务、网络和卷。原创 2023-11-21 09:42:29 · 964 阅读 · 0 评论 -
云原生 黑马Kubernetes教程(K8S教程)笔记——第一章 kubernetes介绍——Master集群控制节点、Node工作负载节点、Pod控制单元
kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。原创 2023-11-12 16:04:28 · 1888 阅读 · 0 评论 -
Docker容器与宿主机日期时间同步(日期同步、时间同步、容器时间、容器日期、docker时间、docker日期)/etc/localtime:ro、/etc/timezone:ro
这意味着如果没有在创建或运行Docker容器时显式设置一个特定的时区,那么容器内部的时间将按照UTC来显示。这两个文件在系统中扮演着不同的角色,而且都是影响系统时间表现的重要因素。如果希望容器中的程序能够正确地处理这些时区相关的问题,那么需要将这两个文件同时挂载到容器中,缺一不可。然而,时区信息并不只是物理时间,它还涉及到逻辑时间的处理,包括日历计算、夏令时调整等等。: 这个文件是当前设定的时区对应的数据文件的复制品或者软链接。这就是为什么即使不挂载。,容器中的程序仍然能够获取到正确的物理时间。原创 2023-10-22 18:00:00 · 3200 阅读 · 0 评论 -
docker run:--privileged=true选项解析(特权模式:赋予容器几乎与主机相同的权限)
在默认情况下,Docker对容器的权限进行了严格的限制,只提供了有限的capabilities。因此,我们需要谨慎地使用这个选项,只在必要的情况下才启用它,并尽量使用其他更细粒度的权限控制手段。选项为容器提供了强大的功能,但它也带来了一些严重的安全隐患。由于privileged容器具有几乎与主机相同的权限,所以如果容器被恶意代码控制,那么攻击者就可以轻易地突破容器的边界,对主机进行任意操作。Docker默认情况下会赋予容器一些必要的capabilities,但不包括全部的能力,从而降低了被攻击的风险。原创 2023-09-18 21:01:37 · 28058 阅读 · 2 评论 -
docker run:–security-opt seccomp=unconfined选项解析 (安全计算模式Secure Computing Mode,实现系统调用过滤,禁用或允许某些系统调用)
Seccomp,即安全计算模式,是 Linux 内核的一部分,用于限制进程可以使用的系统调用2。通过禁止或限制对某些系统调用的访问,Seccomp 可以有效减少攻击者能够利用的攻击面。Docker 在默认情况下启用了 Seccomp,并提供了一个默认的配置文件,该文件白名单了大约300个系统调用,其他的则被禁止。这意味着在 Docker 容器中运行的进程只能访问这些已经过滤的系统调用。总的来说,Docker 的选项是一个强大的工具,可以提供更大的灵活性。原创 2023-09-18 20:41:52 · 4962 阅读 · 0 评论 -
Docker可视化容器监控工具portainer.io(docker监控docker)(Docker Standalone、Docker Swarm、Kubernetes、ACI、Nomad)监控容器
通过使用"Stacks"界面,可以方便地管理和部署多个相关的服务和容器,实现应用程序的整体部署和管理。portainer支持添加不同的环境,如图所示,下面分别介绍不同环境的功能。这些环境之间的区别主要体现在功能和适用场景上。Docker Standalone适用于单个主机上的容器管理,Docker Swarm适用于小规模集群,Kubernetes适用于大规模集群,ACI适用于云平台上的容器服务,Nomad适用于多个主机上的容器编排和调度。原创 2023-08-10 21:50:22 · 7166 阅读 · 1 评论 -
功能解释:containerd.io、docker-ce、docker-ce-cli、docker-buildx-plugin、docker-compose-plugin、docker.io
docker里面的组件插件还挺多的,有时候一个组件的功能还不太好从名字辨别,容易把人搞晕😵。下面简单介绍一下docker相关术语,以及各部分组件的功能。原创 2023-07-24 00:50:04 · 7313 阅读 · 3 评论 -
ubuntu docker离线安装docker(.deb包方式)(成功)(附卸载方法)
是Docker社区版(Community Edition)的非root用户额外组件的软件包。是Docker的扫描插件的软件包。Docker Compose是一个用于定义和运行多容器应用的工具,它使用一个YAML文件来配置应用的服务、网络和卷等。Buildx是一个用于构建多平台镜像的工具,它可以同时构建多个平台的镜像,并支持交叉编译。这是Docker容器运行时(containerd)的软件包。这是Docker社区版的命令行界面(CLI)的软件包。这两个软件包是Docker的附加组件,可以根据需要选择安装。原创 2023-07-24 00:11:16 · 10331 阅读 · 3 评论 -
docker报错:failed to add the host (xxx) <=> sandbox (xxx) pair interfaces: cannot allocate memory.增加内存
另外,可以尝试重启Docker服务来解决这个问题。这个错误是因为Docker无法为容器创建网络接口对。这通常是由于系统内存不足导致的。解决方法之一是增加系统的可用内存。你可以尝试释放一些内存,或者增加系统的物理内存。如果问题仍然存在,你可以尝试卸载并重新安装Docker。一开始我还以为是什么高深的原因,后来发现是我虚拟机内存分配不足。把虚拟机分配内存改大就好了。虚拟机也秀逗了啦啦啦。原创 2023-07-23 22:38:27 · 1144 阅读 · 0 评论 -
Docker WebRTC容器部署方案(mpromonet/webrtc-streamer)
WebRTC(Web Real-Time Communication)是一种开放的实时通信技术,它允许浏览器之间进行音频、视频和数据的实时传输。WebRTC的目标是通过简化实时通信的开发过程,使开发者能够轻松地在Web应用程序中集成实时通信功能。WebRTC的核心技术包括三个主要组件:媒体捕获和处理:WebRTC提供了API,使开发者能够从摄像头和麦克风中捕获音视频流,并对其进行处理和编码。原创 2023-06-30 23:46:25 · 6883 阅读 · 20 评论 -
docker镜像fauria/vsftpd dockerfile解析(ENV命令,**占位符**)dockerfile命令、dockerfile指令
然而,在构建Docker镜像时,这些缓存文件并不需要包含在镜像中,因为它们只会增加镜像的大小,而不会对镜像的功能产生影响。指令用于声明容器中的挂载点,以便其他人在构建和运行容器时知道哪些目录或文件是可以挂载的。这样可以确保在容器中运行vsftpd服务时,使用的用户和组的ID是唯一的,并且不会与其他用户和组发生冲突。这样做的好处是,可以更好地隔离容器中的用户和组,避免潜在的安全问题和冲突。无论是通过命令行参数还是通过文件来传递环境变量的值,都可以在运行容器时动态地设置环境变量,以适应不同的需求和配置。原创 2023-06-28 21:39:51 · 1528 阅读 · 0 评论 -
docker Alpine镜像介绍(基础镜像)
Node.js是一个基于Chrome V8引擎的JavaScript运行时,node-alpine镜像是基于Alpine镜像构建的,它提供了一个轻量级的Node.js环境,适用于构建和运行Node.js应用程序。:Nginx是一个流行的Web服务器和反向代理服务器,nginx-alpine镜像是基于Alpine镜像构建的,它提供了一个轻量级的Nginx环境,适用于容器化部署。:Alpine Linux的基础镜像只有几MB大小,相比于其他Linux发行版的镜像,它的体积更小,启动更快,占用更少的磁盘空间。原创 2023-06-28 17:46:14 · 4012 阅读 · 0 评论 -
【避坑】宿主机能直接查看并杀死容器中进程(与--security-opt seccomp和--privileged参数没有关系)特权容器(secure computing mode)安全机制
这种行为是因为容器技术使用了Linux的命名空间(namespace)特性,将容器内部的进程隔离到一个独立的命名空间中,但这个命名空间与宿主机共享同一个进程表。因此,宿主机上的进程管理工具(如ps命令)可以看到容器内部的进程,并且可以使用宿主机上的工具来操作容器内部的进程,比如杀死进程。禁用seccomp可能会增加容器的风险,因为容器中的进程可以执行更多的系统调用,包括一些与进程管理相关的系统调用。参数,可以禁用容器中的seccomp安全机制,使得容器中的进程可以执行更多的系统调用。原创 2023-06-27 22:18:16 · 328 阅读 · 0 评论 -
docker交叉编译工具链
简化配置:使用Docker容器可以将编译所需的依赖和工具打包到一个镜像中,这样可以简化配置过程。只需要在需要进行交叉编译的机器上安装Docker,并使用预先构建好的镜像即可开始编译。可移植性:Docker容器可以在不同的操作系统和平台上运行,因此可以在任何支持Docker的机器上进行交叉编译。环境隔离:Docker容器提供了一个独立的运行环境,可以隔离不同的开发环境和依赖。一致性:使用Docker容器可以确保每次编译都在相同的环境中进行,避免了由于不同开发环境导致的编译结果不一致的问题。原创 2023-06-24 21:59:32 · 1210 阅读 · 0 评论 -
docker换源(docker镜像源)pull超时(pull镜像超时)/etc/docker/daemon.json(成功了!)(阿里云镜像加速)
文件中已经存在其他配置项,您只需要添加。还是更换一下docker镜像源吧。如果文件不存在,则创建一个新文件。字段,确保镜像源地址已经更新。在输出的信息中,查找。原创 2023-06-19 16:23:10 · 6001 阅读 · 2 评论 -
docker容器/etc/hosts文件(xqplatformIp、jhkdata)
例如,如果容器需要访问主机上的某个服务,可以将主机名和IP地址的映射关系写入/etc/hosts文件中,这样容器就可以直接使用IP地址进行访问,而无需通过DNS服务器进行解析。如果需要在容器内永久保存修改后的/etc/hosts文件,可以将其挂载到宿主机上的一个文件中,然后在容器启动时将该文件挂载到容器内的/etc/hosts文件中。注意:如果在容器内修改了/etc/hosts文件,需要手动同步到宿主机上的/etc/hosts.container文件中,否则容器重启后修改将会丢失。原创 2023-06-13 10:40:27 · 5328 阅读 · 0 评论 -
Error response from daemon: error creating aufs mount to /var/lib/docker/aufs/mnt/(overlay2)文件系统。已解决
这个问题貌似是文件系统的问题,当前安装的docker与文件系统不兼容。原创 2023-05-19 11:49:44 · 848 阅读 · 2 评论 -
docker是怎么决定容器内容存储到哪个目录的?(存储驱动决定的)(乱七八糟的)(df -Th查看目录文件系统类型、查看文件系统类型)
需要注意的是,存储驱动和文件系统是两个不同的概念,存储驱动是Docker用来管理存储的组件,而文件系统是存储驱动使用的一种存储方式。需要注意的是,Docker的存储驱动和文件系统是两个不同的概念,存储驱动是Docker用来管理存储的组件,而文件系统是存储驱动使用的一种存储方式。需要注意的是,aufs存储驱动已经被官方废弃,建议使用overlay2存储驱动。总之,对于/var目录的文件系统类型,通常没有特别的要求,但是应该根据实际需求进行选择,并确保/var目录有足够的磁盘空间,并定期清理其中的数据。原创 2023-05-18 23:11:35 · 951 阅读 · 0 评论 -
Docker存储驱动(Docker Storage Driver)与容器文件系统(如何修改docker默认的存储驱动)写时复制Copy-on-Write、用时分配allocate-on-demand
通过下面的命令来检查 Docker 当前的存储驱动类型。转载 2023-05-18 22:42:52 · 934 阅读 · 0 评论 -
seaweedfs上传文件为什么要先申请文件号?(/dir/assign)(两种工作模式:Volume模式与Filer模式)(seaweed上传文件)
选择Volume模式还是Filer模式取决于你的使用场景。如果你需要一个高性能、高可用的分布式文件存储系统,且不需要目录结构,那么Volume模式是一个不错的选择。如果你需要一个具有目录结构的分布式文件系统,那么Filer模式更适合你。原创 2023-05-12 20:45:08 · 406 阅读 · 0 评论 -
seaweedfs服务启动参数及翻译(seaweed参数、seaweed命令、weed参数、weed命令)(在单个容器同时启动master、volume、filer服务)
从官方镜像docker容器里扒下来的,只扒了自己用到的一些参数,想扒其他的参数,请在评论区留言。原创 2023-05-11 21:03:24 · 2194 阅读 · 0 评论 -
docker、docker-compose、docker swarm和k8s(Kubernetes)的区别
Docker-Compose 是用来管理你的容器的,有点像一个容器的管家,想象一下当你的Docker中有成百上千的容器需要启动,如果一个一个的启动那得多费时间。有了Docker-Compose你只需要编写一个文件,在这个文件里面声明好要启动的容器,配置一些参数,执行一下这个文件,Docker就会按照你声明的配置去把所有的容器启动起来,只需docker-compose up即可启动所有的容器,但是Docker-Compose只能管理当前主机上的Docker,也就是说不能去启动其他主机上的Docker容器。转载 2023-05-11 20:07:42 · 172 阅读 · 0 评论 -
docker进入容器失败:OCI runtime exec failed: exec failed: unable to start container process: exec: “xxx“
(我不知道具体怎么描述细节,就暂且定义为“没装”吧)这个文件,可以尝试使用其他的shell,比如。为seaweed master容器的ID。这是因为seaweed基础容器里没装。原创 2023-05-11 14:30:52 · 243 阅读 · 0 评论 -
chrislusf/seaweedfs dockerfile
【代码】chrislusf/seaweedfs dockerfile。转载 2023-05-10 17:45:04 · 88 阅读 · 0 评论 -
docker端口含义(docker容器端口映射、容器内部端口)(port/tcp、0.0.0.0:port1->port2/tcp、:::port1->port2/tcp)
【代码】docker端口含义(docker容器端口映射、容器内部端口)(port/tcp、0.0.0.0:port1->port2/tcp、:::port1->port2/tcp)原创 2023-05-10 14:45:24 · 2855 阅读 · 0 评论 -
docker run镜像名后接指令是什么语法?镜像命令语法(Image Command)
释义:这里的master是seaweedfs镜像中的一个命令,用于启动Master节点。在Docker中,可以通过在镜像名后面添加命令来指定容器启动时要执行的命令。例如,表示启动镜像,并执行master命令,即启动Master节点。这种方式可以方便地启动不同的容器实例,以满足不同的需求。在这个命令中,是作为容器的启动命令和参数传递给镜像的。这个命令的含义是以前台方式启动Nginx,并且不以守护进程方式运行。这个命令会覆盖镜像中默认的启动命令和参数,因此容器启动后会执行这个命令。原创 2023-05-09 11:49:31 · 575 阅读 · 0 评论 -
dockerfile镜像id(image id)改变规则(应尽量减少镜像id的变动)
Docker镜像的ID是由镜像的内容和历史记录计算出来的,因此只要镜像的内容或历史记录发生变化,镜像的ID就会改变。总之,只要镜像的内容或历史记录发生变化,镜像的ID就会改变。因此,在制作Docker镜像时,应该尽量避免不必要的更改,以减少镜像ID的变化。那么,镜像id在什么情况下会发生变化?原创 2023-05-09 11:25:14 · 1165 阅读 · 0 评论 -
docker logs日志上限(日志容量上限、日志大小上限)(默认大小、默认日志大小)
Docker logs命令打印的日志是有上限的,这个上限是由Docker守护进程的日志驱动程序决定的。这个文件的默认大小限制是10MB,当文件大小达到这个限制时,Docker会自动将其重命名并创建一个新的文件。当容器的日志文件达到一定大小时,Docker会自动删除最早的日志,以保持日志文件的大小在限制范围内。这意味着,随着容器的运行时间越来越长,它的日志文件会越来越大,但是Docker会自动删除最早的日志,以保持日志文件的大小在限制范围内。可以查看容器中程序打印输出的日志,是个日志大小是否有上限呢?原创 2023-05-05 10:53:11 · 4297 阅读 · 0 评论