0
点赞
收藏
分享

微信扫一扫

Ansible的安装和部署

alanwhy 2023-10-30 阅读 142

文章目录

1. 什么是Docker?它有什么作用?

2.Docker容器和虚拟机之间有什么区别?

3.如何创建一个Docker容器?

4.Docker镜像和容器的区别是什么?

5.什么是Dockerfile?能够详细说明下吗?

6.什么是Docker Compose?有什么作用?

7. 如何将容器连接到特定的网络?

8.如何在Docker容器内执行命令?

9.如何将本地文件挂载到Docker容器中?

10.如何查看Docker容器的日志?

答:您可以使用docker logs命令来查看容器的日志。例如,docker logs <container_id>将显示容器的标准输出和标准错误输出。

11.如何停止和删除所有Docker容器和镜像?

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)

12.docker的底层设计能够简单说明下吗?比如它有哪些核心的模块/组件?

13 docker是如何实现容器之间的相互隔离的?

Docker 实现容器之间的相互隔离主要依赖于以下几个核心技术和机制:

(1)Linux 命名空间(Namespaces): Docker 使用 Linux 命名空间来隔离容器的进程视图,网络视图,挂载点视图,用户视图等。每个容器都有自己的命名空间,使其在容器内部看到的资源和进程是独立的,与其他容器和主机隔离开来。

  • PID 命名空间:确保每个容器有独立的进程空间,使其不受其他容器的影响。 、
  • 网络命名空间:每个容器有自己的网络栈,IP地址,端口等,使其与其他容器和主机网络隔离。
  • 挂载点命名空间:容器有自己的文件系统挂载点,使其文件系统与其他容器分离。
  • UTS命名空间:容器可以有自己的主机名,与其他容器不相关。
  • 用户命名空间:容器内部的用户和用户组 ID 与主机系统分离,提高安全性。

(2)Linux 控制组(Cgroups): Docker 使用 Cgroups 来限制容器对系统资源的访问。每个容器可以被分配特定的 CPU、内存、磁盘 I/O、网络带宽等资源。这确保容器不会无限制地占用主机资源,从而实现资源隔离。

(3)容器镜像: Docker 镜像是容器的只读文件系统快照,镜像是不可更改的,容器运行时只能在其可写层进行修改。这确保了容器之间的文件系统隔离,每个容器都有自己的文件系统视图。

(4)网络隔离: Docker 提供多种网络模型,允许容器之间通信,同时与主机或外部网络隔离。容器可以被连接到不同的虚拟网络,这样它们可以相互通信,也可以使用 NAT 或桥接模式连接到主机网络。

(5)安全性: Docker 采用多重安全机制,包括 SELinux、AppArmor 和用户命名空间等,以确保容器的安全性。这些机制限制了容器对主机系统的访问权限,防止容器之间的攻击。

举报

相关推荐

0 条评论