容器原理及Docker安装

容器

容器镜像(静态视图)

一组联合挂载在 /var/lib/docker/aufs/mnt 上的 rootfs

容器运行时(动态视图)

一个由 Namespace+Cgroups 构成的隔离环境

  • Namespace(充分地利用系统的资源,保证了安全性)

    • PID Namespace
      • 隔离不同容器的进程
    • Network Namespace
      • 网络环境的隔离
    • Mount Namespace
      • 文件系统的隔离
  • Cgroups

    • 对指定的进程做各种计算机资源的限制,比如限制CPU的使用率,内存使用量,IO设备的流量等等

docker

当人们说“Docker”时,通常是指 Docker Engine,它是一个客户端 - 服务器应用程序,由 Docker
守护进程、一个REST API指定与守护进程交互的接口、和一个命令行接口(CLI)与守护进程通信(通过
封装REST API)。Docker Engine 从 CLI 中接受docker 命令,例如 docker run 、docker ps 来列出正
在运行的容器、docker images 来列出镜像,等等。

  • docker是一个软件,可以运行在window、linux、mac等各种操作系统上。
  • docker 是一个开源的应用容器引擎,基于Go 语言开发并遵从 Apache2.0 协议开源,项目代码托
    管在github上进行维护
  • docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任
    何流行的 Linux 机器上。
  • 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

基本组成

docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker仓库(Registry):用来保存各种打包好的软件镜像;仓库分为公有仓库和私有仓库。(很类似
maven)
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

安装

列出可安装的所有版本

yum list docker-ce --showduplicates | sort -r 

安装Docker-ce 19.03

yum install docker-ce-19.03.15-3.el7  docker-ce-cli-19.03.15-3.el7 -y
systemctl enable docker && systemctl restart docker
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

如果安装出错,卸载命令如下:

yum remove docker*
rm -rf /var/lib/docker
posted @ 2021-08-17 11:46  请务必优秀  阅读(69)  评论(0编辑  收藏  举报