Docker:基于GO语言开发的容器技术,也是一种虚拟化技术
1)属于C/S架构,守护进程运行服务器上,客户端通过Socket访问;
2)容器技术:将单个操作系统的资源划分到各个孤立组中
//解决多个服务之间的资源冲突
传统虚拟机:虚拟整套硬件,在该硬件上运行完整的操作系统和软件
容器虚拟机:软件直接在系统内核上运行
1)不会虚拟硬件,而是内核级别的虚拟化(将服务器最大化运用);
2)每个容器间是相互隔离(但可交流),保证系统的安全性和充分使用;
3)每个容器内都有一个属于自己的文件系统
//实现开发、测试环境的高度一致
如:传统虚拟机和容器虚拟机的比较
安装Docker的系统条件:
1)64位的CPU架构计算机;
2)Linux3.8内核以上的版本;
3)内核需支持存储驱动(Storage Driver);
4)内核支持并开启cgroup和命名空间(namespace)功能
//常用存储的驱动:Device Manager、AUFS、VFS、btrfs、ZFS等
1)下载安装所需安装包:yum install -y yum-utils device-mapper-persistent-data lvm2
2)指定镜像仓库: yum-config-manager --add-repo 镜像仓库地址
//建议使用阿里云镜像:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3)更新yum:yum makecache fast
//在安装前更新yum软件包索引
4)安装Docker:yum install -y docker-ce docker-ce-cli containerd.io
//若安装前已存在旧版本,就需要先进行卸载再安装
5)CentOS8安装时报错“无法安装软件包”,可运行以下命令解决:
卸载podman命令:yum remove -y podman
安装containerd.io命令 :yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
//卸载和安装完成后需重启
6)若Docker后无法拉取镜像,可在/etc/docker/daemon.json文件添加以下内容:
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
{
"registry-mirrors": ["http://hub-mirror.c.163.com",
"https://registry.docker-cn.com"]
}
1)卸载相关软件:yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
2)卸载Docker:yum remove -y docker-ce docker-ce-cli containerd.io
3)删除Docker相关资源:rm -rf /var/lib/docker
//文件/var/lib/docker为docker默认工作路径
1)Docker的守护进程和客户端程序默认均以root身份运行;
2)查看安装Docker的相关信息
显示docker版本信息:docker version
显示docker具体系统信息(包括镜像和容器信息):docker info
//同Linux的info命令用法和效果
查看帮助文档:docker 命令 --help
//同Linux的“命令 –help”用法和效果
3)daemon命令:管理docker服务的守护进程
指令格式:daemon 选项
选项 | 说明 |
---|---|
-H | 指定守护进程监听的接口和方式(临时) 默认监听/run/docker.sock的Unix套接字文件 |
//也可通过修改环境变量DOCKER_HOST实现永久修改
4)通过systemctl/service控制docker服务的运行
启动docker服务:systemctl start docker
关闭docker服务:systemctl stop docker
重启docker服务:systemctl restart docker
查看docker服务状态:systemctl status docker
重新加载docker服务:systemctl reload docker
开启自启docker服务:systemctl enable docker
关闭自启docker服务:systemctl disable docker