文章目录
0、相关网址
1、Docker 与 虚拟机技术 区别
- 传统虚拟机:虚拟出一套硬件,运行一个完整的操作系统,在这个操作系统上安装运行软件【笨重】
- Docker 容器:
- 容器内的应用直接运行在 宿主机 的内核中,容器本身没有自己的内核,也没有虚拟硬件【轻便】
- 每个容器相互隔离,每个容器都有自己的一套文件系统,容器之间互不影响【稳定】
2、安装 Docker
2.1、查看系统内核(官方建议系统内核在 3.10 以上)
uname -r
2.2、安装
看实际需要,更新 yum 包:
yum -y update
这个命令不是必须执行的,看个人情况,后面出现不兼容的情况的话就必须update了。
注意:
yum -y update
:升级所有包同时也升级软件和系统内核yum -y upgrade
:只升级所有包,不升级软件和系统内核
2.2.1、卸载旧版本
如果之前安装过的话
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.2.2、安装需要的工具包
sudo yum install -y yum-utils
2.2.3、设置 yum 源
- 阿里仓库
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 中央仓库
sudo yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
2.2.4、正式安装 Docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker-ce:社区版(docker-ee 就是企业版)
- 查看是否安装成功:
docker version
2.2.5、测试安装成果
- 测试命令
# 启动Docker
systemctl start docker
# 停止Docker
systemctl stop docker
# 重启
systemctl restart docker
# 设置开机自启
systemctl enable docker
- 测试运行 hello-world 镜像
sudo docker run hello-world
- 查看刚才下载的 hello-world 镜像:
docker images
- 拓展:
docker run hello-world
回车之后的内部运行机制
2.2.6、拓展:卸载 Docker
- 卸载软件包
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
- 主机上的映像、容器、卷或自定义配置文件不会自动删除。要删除所有图像、容器和卷,请执行以下操作:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
必须手动删除任何已编辑的配置文件!
2.3、配置阿里云镜像加速
访问路径:阿里云–>容器->容器服务->容器镜像服务–>镜像工具->镜像加速器
# 1、新建文件
sudo mkdir -p /etc/docker
# 2、写入配置并输出到daemon.json
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}
EOF
# 3、重新加载
sudo systemctl daemon-reload
# 4、重新启动 docker
sudo systemctl restart docker
3、Docker 底层原理(简述)
3.1、Docker 是怎么工作的
Docker 是一个 Client-Server 结构的系统,Docker 的守护进程运行在主机上。通过 Socket 从客户端访问。
Docker-Server 接收到 Docker-Client 的指令,就会执行这个命令。
3.2、Docker 为什么比 VM 快
- Docker 有着比 VM 更少的抽象层
- Docker 利用的是 Host OS(宿主机的操作系统),VM 则需要 Guest OS(加载一套完整的操作系统)