Docker(一)
1.Docker简介
1.1为什么需要Docker
要如何确保应用能够在不同环境中运行和通过质量检测?并且在部署过程中不出现令人头疼的版本、配置问题,也无需重新编写代码和进行故障修复?
Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案——-系统平滑移植,容器虚拟化技术。安装的时候,把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。
Docker的出现使得Docker得以打破过去「程序即应用」的观念。透过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作。
官网:Empowering App Development for Developers | Docker
仓库:Docker Hub
1.2容器VS虚拟机
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;
容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。
1.3Docker基本组成
Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。
镜像文件
image 文件生成的容器实例,本身也是一个文件,称为镜像文件。
容器实例
一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器
仓库
就是放一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候再从仓库中拉下来就可以了。
2.安装及使用
2.1安装
WIN安装
官网下载
Docker必须依赖部署在Linux内核的系统上,所以win10要安装WSL2
centos下安装
- 移除以前docker相关包
1 | sudo yum remove docker* |
- 配置yum源
1 | sudo yum install -y yum-utils |
- 安装docker
在安装的时候出错:Unable to find a match: docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6
解决方案1:跟新yum原yum -y update
1 | sudo yum install -y docker-ce docker-ce-cli containerd.io |
- 启动,设置开机启动
1 | systemctl enable docker --now |
- 配置加速
1 | sudo mkdir -p /etc/docker |
2.2Docker常用命
1.找镜像
去docker hub,找到nginx镜像
1 | docker pull nginx #下载最新版 |
2.启动容器
启动nginx应用容器,并映射88端口,测试的访问
1 | docker run [OPTIONS] IMAGE [COMMAND] [ARG...] |
3.修改容器内容
1 | # 进入容器内部的系统,修改容器内容 |
1 | docker run --name=mynginx \ |