用apt-get安装auditd: $ sudo apt-get install auditd 这将安装并启动auditd守护进程。我们现在将配置auditd为监视Docker文件和目录。...这些警告都可以通过为被调用的守护进程daemon.json创建配置文件来解决,我们将向其添加一些与安全相关的配置参数。我们将首先创建并保存此配置文件,然后逐个查看配置中的测试和相应行。...) groups=116(dockremap) 如果将容器用户重新映射到其他主机用户对您的用例更有帮助,请在配置文件default中指定用户或用户组。...由于已从Docker守护程序中删除了对此协议的支持,因此该标志正在被弃用。...这将禁用docker-proxyuserland进程,该进程默认处理将主机端口转发到容器,并用iptables规则替换它。
要注意,如果此数字已使用,此命令会出错。 警告: 一般来说,我们不建议指定 {id} 。因为 ID 是按照数组分配的,跳过一些依然会浪费内存;尤其是跳过太多、或者集群很大时,会更明显。...用 ceph osd crush add 命令把 OSD 加入 CRUSH 分级结构的合适位置。...前例假定一个硬盘只会用于一个 OSD 守护进程,以及一个到 SSD 日志分区的路径。...注意: 在一个节点运行多个 OSD 守护进程、且多个 OSD 守护进程共享一个日志分区时,你应该考虑整个节点的最小 CRUSH 故障域,因为如果这个 SSD 坏了,所有用其做日志的 OSD 守护进程也会失效...在 Ceph 里,一个 OSD 通常是一台主机上的一个 ceph-osd 守护进程、它运行在一个硬盘之上。如果一台主机上有多个数据盘,你得逐个删除其对应 ceph-osd 。
通过使用namespace,可以将不同进程之间的资源进行隔离,使得它们感觉像是在独立的环境中运行用简洁明了的话来说,namespace实现了容器与容器,容器与宿主机之间的隔离**而业内广为人知的****...挂载(Mount)是将一个文件系统(通常是存储设备上的文件系统)连接到操作系统的目录树中的过程。挂载将某个文件系统与一个目录关联起来,使得该目录成为文件系统的访问点。...因此,将宿主机的procfs挂载到不受控的容器中也是十分危险的,尤其是在该容器内默认启用root权限,且没有开启User Namespace时。什么是core_pattern文件?...当一个程序发生崩溃(如段错误)时,操作系统会生成一个包含程序崩溃状态的核心转储文件,以便进行调试和故障排除接下里就很好理解了,如果宿主机中的 procfs 挂载到容器中,我们就可以进行容器逃逸了复现环境...我们可以在容器内部创建一个新的容器,因为Docker Socket被挂载到了当前容器,所有我们可以将宿主机目录挂载到新的容器内部即在容器内创建一个挂载了宿主机根目录的容器,然后将目录切换到根目录即可完成逃逸我们在当前容器内部安装
以下内容为自己个人的学习笔记,因此内容不会多么详实;其中有些内容也许会存在错误,如有错误欢迎留言处指出,还望谅解。...其中宿主机包括了 Docker 守护进程、本地容器和本地镜像,Docker 守护进程(dockerd)的作用是侦听 Docker API 请求和管理 Docker 对象。...宿主机根目录被挂载到容器内部,文件系统隔离被打破 0x03 容器管理程序接口的风险 Docker 守护进程主要监听 UNIX socket 和 TCP socket,默认情况下,Docker 只会监听...具体的做法可以简单描述为:使用普通用户创建一个 privileged 为 true 的容器,在该容器内挂载宿主机硬盘并写入定时任务,然后将宿主机的 root 权限反弹回来,后期将详细介绍这种方法的使用。...虽然默认情况下,容器内部的网络与宿主机是隔离的,但是每个容器之间是彼此互相连通的,理论上在容器之间是存在内网横向的风险的。
Docker 客户端会与 Docker 守护进程进行通信。Docker 守护进程会处理复杂繁重的任务,例如建立、运行、发布你的 Docker 容器。...Docker 客户端和守护进程可以运行在同一个系统上,当然你也可以使用 Docker 客户端去连接一个远程的 Docker 守护进程。...我们了解Docker内部构建,需要先了解几个概念: Docker守护进程:Docker 守护进程运行在主机上。用户并不直接和守护进程进行交互,而是通过 Docker 客户端间接和其通信。...二、优势容器类似于 VM,但是它们具有被放宽的隔离属性,可以在应用程序之间共享操作系统(OS)。 因此,容器被认为是轻量级的。容器与 VM 类似,具有自己的文件系统、CPU、内存、进程空间等。...)-v:容器目录映射到本地目录(宿主机文件目录:容器文件目录,将宿主机文件挂载到容器目录)-d:后台启动容器-it:以交互式模式启动容器 –name:容器名称比如:docker run -it --name
左边大框框是我们进行 Docker 操作的宿主机,其运行了一个 Docker daemon 的核心守护程序,负责构建、运行和分发 Docker 容器。...在宿主机中安装了 Docker 客户端,其与 Docker daemon 守护进程进行通信,客户端会将 build、pull、run 等命令发送到 Docker daemon 守护进程进行执行。...详细说明:每一个 RUN 指令都会新建立一层,在其上执行这些命令,我们频繁使用 RUN 指令会创建大量镜像层,然而 Union FS 是有最大层数限制的,不能超过 127 层,而且我们应该把每一层中我用文件清除...-p 用来指定端口映射,将容器的端口3000映射到主机3000`端口上,这样就可外部访问了。...最终访问的还是本机的端口) -v 为设置容器的挂载目录,这里是将即本机中的目录挂载到容器中的/data/db中,作为 Mongodb 的存储目录 --name 为设置该容器的名称 -d 设置容器以守护进程方式运行
page=1 此外,我们还可以用 docker search redis 命令来查看可用版本: docker search redis 输出如下: 拉取最新版的Redis镜像 这里我们拉取官方的最新版本的镜像...daemonize no #默认no 为不守护进程模式,docker部署不需要改为yes,docker run -d本身就是后台启动,不然会冲突 requirepass 123456 #设置密码 appendonly...-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。...-v /docker-data/redis/redis.conf:/etc/redis/redis.conf : 将主机中配置文件挂载到容器中 -v /docker-data/redis:/data :...将主机中data挂载到容器的/redis -d redis redis-server /etc/redis/redis.conf:表示后台启动redis,以配置文件启动redis,加载容器内的conf
通过使用namespace,可以将不同进程之间的资源进行隔离,使得它们感觉像是在独立的环境中运行 用简洁明了的话来说,namespace实现了容器与容器,容器与宿主机之间的隔离 **而业内广为人知的**...挂载(Mount)是将一个文件系统(通常是存储设备上的文件系统)连接到操作系统的目录树中的过程。挂载将某个文件系统与一个目录关联起来,使得该目录成为文件系统的访问点。...因此,将宿主机的procfs挂载到不受控的容器中也是十分危险的,尤其是在该容器内默认启用root权限,且没有开启User Namespace时。 什么是core_pattern文件?...当一个程序发生崩溃(如段错误)时,操作系统会生成一个包含程序崩溃状态的核心转储文件,以便进行调试和故障排除 接下里就很好理解了,如果宿主机中的 procfs 挂载到容器中,我们就可以进行容器逃逸了 复现环境...我们可以在容器内部创建一个新的容器,因为Docker Socket被挂载到了当前容器,所有我们可以将宿主机目录挂载到新的容器内部 即在容器内创建一个挂载了宿主机根目录的容器,然后将目录切换到根目录即可完成逃逸
作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。 (1)更高效的利用系统资源。...Docker客户端只需要向Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。Docker提供了一个命令行工具Docker以及一整套RESTful API。...你可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。 ?...写时复制 可以在多个容器之间共享镜像,每个容器启动时不需要单独复制一份镜像文件 将所有镜像层以只读方式挂载到一个挂载点,在上面覆盖一个可读写的容器层。...Docker也不关心你要把容器运到何方:我们可以在自己的笔记本中构建容器,上传到Registry,然后下载到一个物理的或者虚拟的服务器来测试,在把容器部署到具体的主机中。
的支持 Docker 守护进程的攻击面 容器配置错误 使用 AppArmor、SELinux 等 Linux 内核安全模块等 我们将这些分解为可以遵循的 10 大实践来强化 Docker 环境。...1.经常更新主机和 Docker 守护进程 容器与主机系统共享内核。在容器上下文中执行的任何内核漏洞都会直接影响主机内核。...这是通过—-privileged标志完成的。以特权模式运行的容器对主机上的所有设备都具有 root 权限。 如果攻击者要破坏特权容器,他们就有可能轻松访问主机上的资源。...攻击者可以识别主机上运行的服务来发现和利用漏洞。他们还可以利用容器错误配置,例如具有弱凭据或没有身份验证的容器。特权容器为攻击者提供 root 访问权限,从而导致执行恶意代码。...将文件系统和卷设置为只读 Docker 中一个具有安全意识的有用功能是使用只读文件系统运行容器。这减少了攻击向量,因为容器的文件系统不能被篡改或写入,除非它对其文件系统文件和目录具有明确的读写权限。
介绍 Docker是一个应用程序,它使得在容器中运行应用程序进程变得简单易行,就像虚拟机一样,只是更便携,更加资源友好,更依赖于主机操作系统。 在Ubuntu 16.04上安装Docker有两种方法。...最后,安装Docker: sudo apt-get install -y docker-ce 现在应该安装Docker,守护进程启动,并启用进程启动进程。...任何人都可以在Docker Hub上构建和托管他们的Docker镜像,因此运行Docker容器所需的大多数应用程序和Linux发行版都具有托管在Docker Hub上的图像。...例如,让我们更新容器内的包数据库。无需为任何命令添加前缀sudo,因为您在具有root权限的容器内操作: apt-get update 然后在其中安装任何应用程序。例如,让我们安装NodeJS。...将图像推送到注册表后,它应该列在您帐户的仪表板上,如下图所示。
以 Docker 的思维管理服务 避免使用进程守护 我们编写传统的后台服务时,总是会使用例如 pm2、forever 等等进程守护程序,以保证服务在意外崩溃时能被监测到并自动重启。...除此之外,由于守护进程的特性,将不可避免的对于以下的情况产生影响: 增加进程守护程序会使得占用的内存增多,镜像体积也会相应增大。...因此,尽管 pm2 这样的进程守护程序提供了能够适配 Docker 的版本:pm2-runtime,但我仍然不推荐大家使用进程守护程序。 其实这一点其实是源自于我们的固有思想而犯下的错误。...最简单的做法是利用 DockerManagerVolume,这个特性能绕过容器自身的文件系统,直接将数据写到宿主物理机器上。...这样服务在将日志写入该文件夹时,就能持久化存储在宿主机上,不随着 docker 的销毁而丢失了。 当然,当部署集群变多后,物理宿主机上的日志也会变得难以管理。此时就需要一个服务编排系统来统一管理了。
客户端和服务端既可以运行在一个机器上,也可通过 socket 或者 RESTful API 来进行通信。 Docker 守护进程一般在宿主主机后台运行,等待接收来自客户端的消息。...Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker 守护进程交互。 ---- 命名空间 命名空间是 Linux 内核一个强大的特性。...Docker 默认采用 veth 的方式,将容器中的虚拟网卡同 host 上的一 个Docker 网桥 docker0 连接在一起。...然而同 VM 不同的是,容器的进程间交互实际上还是 host 上具有相同 pid 命名空间中的进程间交互,因此需要在 IPC 资源申请时加入命名空间信息,每个 IPC 资源有一个唯一的 32 位 id。...user 命名空间 每个容器可以有不同的用户和组 id, 也就是说可以在容器内用容器内部的用户执行程序而非主机上的用户。
nfsserver,主要用来控制NFS服务的启动和停止,安装后位于/etc/init.d目录下 2.rpc.nfsd是基本的NFS守护进程,主要功能是控制客户端是否可以登录服务器,另外可以结合.../etc/hosts.allow和/etc/hosts.deny做更精细的权限控制 3.rpc.mountd是RPC安装守护进程,主要功能是管理NFS的文件系统。...通过配置文件共享指定的目录,同时根据配置文件做一些权限验证 4.rpcbind是一个管理RPC连接的程序,rpc服务对NFS是必需的,因为是NFS的动态端口分配守护进程,如果rpc不启动...-v //在export时将共享的目录显示在屏幕上 6.showmount,显示指定NFS服务器连接NFS客户端的信息。...,具有读写权限,且所有的用户在访问是都映射成服务器上的uid为1001、gid为100的用户 2.192.168.32.0/24网段的所有主机对该目录有只读访问权限
找出将ENVIRONMENT变量(在wrapper容器上的各种文件)传递到应用程序容器上的方法具有一定的难度。...主机上拉/推镜像时,要在Docker守护进程上设置“-insecure-registry”标志(因为我们只能通过http访问启动Harbor) • 有一个主机必须要有docker-compose的“harbor-host...我们可能已经提到了其中一些: • Harbor软件包附带了一个嵌入式的syslog服务器,Docker守护进程会和这个服务器进行会话/日志。...为此,日志镜像在集群的每个节点上需要实例化(要求:每个节点必须具有标签“harbor-log = true”)。.../推镜像时,要在Docker守护进程上设置“-insecure-registry”标志(因为我们只能通过http访问启动Harbor) • 集群上的所有主机必须要有docker-compose的“harbor-host
、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。...这是因为,IPC 机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。开源的node-ipc方案就是使用了socket方案NodeJS如何使用socket进行通信呢?...集群管理,支持cluster多进程模式。其他的功能还包括0s reload、日志管理、终端监控、开发调试等等。pm2的大概原理是,建立一个守护进程(daemon),用来管理机器上通过pm2启动的应用。...这时一种C/S架构,命令行相当于客户端(client),守护进程daemon相当于服务器(server),这种模式和docker的运行模式相同,docker也是有一个守护进程接收命令行的指令,再执行对应的操作...可以参考作者的回答PM2 的理念跟我们不一致,它的大部分功能我们用不上,用得上的部分却又做的不够极致。PM2 是AGPL 协议的,对企业应用不友好。
NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利。...当我们在NFS服务器设置好一个共享目录/home/public后,其他有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,如上图客户端1与客户端2挂载的目录就不相同...,登入NFS主机,使用该共享目录时相当于该目录的拥有者,如果是root的话,那么对于这个共享的目录来说,他就具有root的权限。...-u :卸除某一目录 -v :将分享的目录显示到屏幕上! 实例操作: 1....wbyq/mnt/ 将192.168.10.11服务器的/home/wbyq/project目录,挂载到本地/home/wbyq/mnt/目录下。
Docker 服务一般是以守护进程的形式运行,它会监听客户端的请求,并且进行容器的构建、运行和分发,下面即 Docker 的总体架构: [docker 架构] Docker 守护进程:侦听 Docker...守护进程还可以与其他守护进程通信以管理 Docker 服务。...Namespaces 提供了第一种也是最直接的隔离形式,使得在容器内运行的进程无法看到在另一个容器或主机系统中运行的进程。...(二)Docker 守护进程的安全性 运行 Docker 守护进程是需要 root 特权的,因此只有受信任的 User 才能运行 Docker 守护进程。...但是由于 Docker 是允许主机和容器共享文件夹的,如果我们将系统文件映射到 Docker 容器里,那肯定也是能突破系统防护的。不过,这主要取决于我们关联的主机文件,一般还比较好控制。
至于服务器的其他配置,大家都可以随意选择,也可以直接用默认的。 2. 如何将域名解析到服务器上 当我们选购好一台服务器之后,我们在控制台可以看到自己服务器的公网IP,这也是域名解析的关键。...我们只需要在云服务的域名管理中添加需要解析的服务器记录即可。 上图的主机记录配置中常用的有 www 和 @,我们选择任何一个即可,主机记录相当于域名的前缀。...服务器配套软件的安装和环境配置 有了上面服务器的配置基础,我们开始配置服务器了。 作为一名前端程序员, 服务器上必须要有node。...ln -s /...你nodejs所在的更目录/nodejs/bin/node /usr/local/bin/node ln -s /...你nodejs所在的更目录/nodejs/bin/npm...网站部署和运维 网站可以用nginx代理和做负载均衡,网上也有很多资料介绍, 这里我带大家介绍一下PM2。 PM2 是一个守护进程管理器,它将帮助我们管理和保障应用程序稳定在线。
领取专属 10元无门槛券
手把手带您无忧上云