Docker 容器技术
Docker 技术可以实现程序和宿主机的隔离。
什么是容器?
理解为对一系列应用程序、服务和环境的封装,从而把程序运行在一个隔离的、密闭的、隐私的空间内,对外整体提供服务。
可以把一个容器理解为一个新的电脑(定制化的操作系统)。
Docker 基本概念
镜像:用来创建容器的安装包,可以理解为给电脑安装操作系统的系统镜像
容器:通过镜像来创建的一套运行环境,一个容器里可以运行多个程序,可以理解为一个电脑实例
Dockerfile:制作镜像的文件,可以理解为制作镜像的一个清单
镜像仓库:存放镜像的仓库,用户可以从仓库下载现成的镜像,也可以把做好的镜像放到仓库里
推荐使用 docker 官方的镜像仓库:https://hub.docker.com/search?q=nginx
Docker 实现核心
1)Docker 运行在 Linux 内核上
2)CGroups:实现了容器的资源隔离,底层是 Linux Cgroup 命令,能够控制进程使用的资源
3)Network 网络:实现容器的网络隔离,docker 容器内部的网络互不影响1684561774759645186_0.5463298414804811
4)Namespaces 命名空间:可以把进程隔离在不同的命名空间下,每个容器他都可以有自己的命名空间,不同的命名空间下的进程互不影响。
5)Storage 存储空间:容器内的文件是相互隔离的,也可以去使用宿主机的文件
docker compose:是一种同时启动多个容器的集群操作工具(容器管理工具),一般情况下,开发者仅做了解即可,实际使用 docker compose 时去百度配置文件
Docker镜像源
添加 daemon.json 文件
sudo touch /etc/docker/daemon.json
文件内容
{"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://kfwkfulq.mirror.aliyuncs.com"]
}
重启docker
sudo service docker restart
查看镜像源是否生效
sudo docker info | grep Mirrors -A 4
Docker 命令
启动 docker 命令
sudo systemctl start docker
查看镜像命令
docker images -a
查看组命令
cat /etc/group
过滤 docker : 查看 docker 组中用户
如果没有 docker 组添加 docker 组命令 :
把用户添加到 docker 组中命令 :
更新 docker 信息 :