深圳英文网站开发,企业网站和展板建设,做h5页面的网站有哪些,长沙网站开发湖南微联讯点不错目录
一 Docker简介
1.1 是什么
1.2 优缺点
1.3 应用场景
1.4 安装
二 命令
2.1 Docker基本命令
2.2 Docker镜像命令 2.3 Docker容器命令 一 Docker简介
1.1 是什么 Docker是一个开源的应用容器引擎#xff0c;它基于Go语言实现#xff0c;并利用操作系统本身已有的…目录
一 Docker简介
1.1 是什么
1.2 优缺点
1.3 应用场景
1.4 安装
二 命令
2.1 Docker基本命令
2.2 Docker镜像命令 2.3 Docker容器命令 一 Docker简介
1.1 是什么 Docker是一个开源的应用容器引擎它基于Go语言实现并利用操作系统本身已有的机制和特性可以实现远超传统虚拟机的轻量级虚拟化。Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中然后发布到任何流行的Linux或Windows操作系统的机器上实现应用的“一次封装到处运行”的目的实在不理解可以把它当成一个VM在VM中又安装了一个VM第二个的这个VM就是Docker
生活列子来熟悉Docker
想象一下你想要做一顿晚餐比如意大利面。为了做这顿饭你需要准备面条、番茄酱、洋葱、大蒜和一些调料。在传统的方式中你可能需要分别购买这些食材然后在厨房里手动准备它们。
现在如果我们将这个过程与Docker进行比较
Docker主机这就像你的厨房。它提供了制作意大利面所需的基础设施和环境。Docker镜像这就像是食谱或预制的意大利面配料包。它包含了制作意大利面所需的所有食材和步骤。Docker容器这就像是按照食谱实际制作出来的意大利面。一旦你有了镜像食谱你就可以创建一个容器开始做饭然后在这个容器里实际制作意大利面。Docker仓库这就像超市的货架上面摆放着各种各样的食谱或配料包。你可以从仓库中选择你想要的镜像然后将其下载到你的Docker主机上。
使用该Docker好处之一就是你可以很容易地分享你的“意大利面”配方镜像。例如你可以将你的镜像上传到Docker仓库然后你的朋友或家人就可以很容易地下载并在他们自己的Docker主机上制作同样的意大利面
1.2 优缺点
优点 轻量级和高效Docker容器非常轻量级因为它们共享主机操作系统内核并且只包含应用程序及其依赖项。这使得容器启动速度快资源占用少非常适合在资源有限的环境中运行。 可移植性强Docker容器可以在任何能运行Docker的操作系统上运行无论是Linux还是Windows。这使得应用程序在不同环境之间的迁移变得非常容易。 版本控制和回滚Docker使用镜像来创建容器每个镜像都有一个唯一的标识符。这使得应用程序的版本控制变得简单明了同时也方便进行回滚操作。 促进开发运维协同Docker简化了应用程序的开发、测试和部署过程使开发者和运维人员能够更高效地协同工作。 缺点 学习曲线陡峭Docker有一定的技术门槛需要掌握一定的新概念和技术。对于初学者来说可能需要一些时间来熟悉Docker的使用。 安全性问题虽然Docker提供了多种安全机制来保护容器但由于容器之间共享主机操作系统内核因此仍然存在一些安全风险。例如如果一个容器被攻击并成功突破了隔离层它可能会影响到其他容器。 网络和存储功能有限Docker在网络和存储方面的功能相对有限可能无法满足一些复杂需求。例如Docker的默认网络模式可能无法满足一些高级网络拓扑需求。 部分应用可能不兼容尽管Docker支持大多数应用程序但仍有部分应用程序可能无法或难以在Docker容器中运行。这可能需要额外的适配或修改工作。 大规模部署时的复杂性当需要在大规模环境中部署大量容器时Docker的监控、管理和故障排除可能会变得复杂。这可能需要额外的工具和技术支持。 1.3 应用场景 面向开发人员的Web应用自动化打包和发布在没有Docker之前开发、测试、生产环境可能不一致导致文件配置上的不一致。使用Docker后容器内的程序端口一致而容器对外暴露的端口可能不同但不影响程序的交付和运行保证了环境一致性并实现了快速部署。面向运维人员的运维成本降低部署程序时搭建运行环境和解决环境依赖是非常耗时的。Docker通过镜像机制将代码和环境直接打包成镜像上传到容器即可启动大大节约了部署时间。面向企业的PaaS层实现在一台物理机上可以部署多个轻量级的Docker容器大大提高了运行效率。微服务架构在微服务架构中应用程序被拆分成多个小型、独立的服务。Docker可以用来容器化这些服务使它们可以独立部署和扩展。应用迁移和移植Docker可以帮助开发者轻松地将应用从开发环境迁移到生产环境甚至在不同云服务提供商之间迁移因为Docker容器提供了环境一致性。隔离应用Docker容器提供应用级别的隔离使不同的应用可以在同一台机器上运行互不干扰。整合服务器通过Docker可以将多个服务整合到少数几台高性能服务器上提高资源利用率简化系统维护。云计算和容器云Docker容器可以在云环境中快速部署无论是公有云、私有云还是混合云都可以实现资源的灵活分配和自动化管理。 1.4 安装 #查看内核uname -r #更新yum源为最新时间大致要6分钟yum update -y #安装Docker所需要的工具包yum install -y yum-utils device-mapper-persistent-data lvm2 #设置yum源 ①yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ② yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #下载安装Dockeryum install docker-ce docker-ce-cli containerd.io -y -y #启动Docker并且设置开机自启动systemctl start docker systemctl enable docker #检测Docker是否安装成功docker version 执行上方命令安装无误的话差不多就成功了
进入dockercd /etc/docker
配置我们的镜像先进入阿里云官方: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
如果没有账户的话先注册再登入再回到docker文件下
输入编辑命令vim daemon.json
将阿里源进行配置(下图括号里面的)
使用命令进行生效 systemctl daemon-reload systemctl restart docker 这时候就算安装好啦
二 命令
2.1 Docker基本命令 下方是有关于docker的基本命令可自行操作 systemctl start docker (启动Docker) systemctl stop docker (停止Docker) systemctl restart docker (重启Docker) systemctl enable docker (开机自启动Docker) docker info (查看Dokcer概要信息) docker --help 查看Docker帮助文档 docker version (查看Docker的版本信息) 2.2 Docker镜像命令
下方图拉取(下载)mysql
命令docker pull mysql 查看当前服务器已下载的docker images
删除docker rmi IMAGE ID或名称
强制删除docker rmi -f IMAGE ID或名称 2.3 Docker容器命令
为了测试在Linux的Centos7中再安装一个Centos7
命令docker pull centos:7 这时候下载的centos7为一个容器
我们可以去启动它
创建一个容器并进入该容器 docker run -it --name mycentos02 IMAGE ID
解释 docker run: 这是Docker命令的基础用于从镜像启动新容器。
-it: 这是两个标志的组合。
-i 或 --interactive: 保持容器的标准输入STDIN开启即使不连接到容器。-t 或 --tty: 为容器分配一个伪终端pseudo-TTY通常用于交互式会话 --name mycentos02: 这个标志用于给新创建的容器指定一个名称。在这个例子中容器的名称是mycentos02。如果不指定这个标志Docker会自动为容器生成一个名称。 IMAGE ID: 这是你想要从中创建容器的Docker镜像的标识符。通常你会使用docker images命令来查看可用的镜像及其ID然后选择你想要使用的镜像的ID
综合起来docker run -it --name mycentos02 IMAGE ID 命令会创建一个名为mycentos02的新容器该容器基于指定的镜像ID并且具有交互性和伪终端。一旦容器启动你就可以通过控制台与容器中的进程进行交互(切换版本)如下图 创建容器但不进入容器docker run -di --name mycentos03 IMAGE ID
退出不停止容器Ctrlpq
退出并停止容器exit
查看活的容器docker ps
查看全部的容器docker ps -a
强制删除一个运行的容器docker rm -f IMAGE ID或名称
重启容器docker restart mycontainer
查看容器日志cd /var/lib/docker/containers
最后得出相同的两个Centos7容器不同的文件存着一种隔离的状态如下