Docker 基础管理
1)容器可以屏蔽底层操作系统的差异性,让业务应用不管在哪里都是使用容器的环境运行,从而保证开发,测试环境与生产环境的一致性
2)容器部署起来非常便捷和迅速,缩短开发、测试部署的周期时间
docker是什么?
docker是用go语言开发并开源的容器引擎,用来运行容器里的应用。docker也是可以用来管理容器和镜像的一种工具。
容器引擎:docker containered podman rocket
容器的优点
●灵活:即使是最复杂的应用也可以集装箱化。
●轻量级:容器利用并共享主机内核。
●可互换:可以即时部署更新和升级。
●便携式:可以在本地构建,部署到云,并在任何地方运行。
●可扩展:可以增加并自动分发容器副本。
●可堆叠:可以垂直和即时堆叠服务。
docker和虚拟机的区别:
DOCKER | 虚拟机 |
---|---|
所有容器共享宿主机的内核 | 每个虚拟机都有独立的操作系统和内核 |
通过namespace实现资源隔离,通过cgroup实现限制资源的最大使用量 | 完全隔离。每个虚拟机都有独立的硬件资源 |
秒级启动速度 | 分钟级启动速度 |
单机容量能支持成百上千个容器 | 单机容器只能支持最多几十个虚拟机 |
容器相当于宿主机的进程,性能几乎没有损耗 |
虚拟化软件:
windows :VMware Workstation 个人工作站版 VMware Sphere + ESXI 企业版
linux:KVM (基于linux内核的虚拟机) -> Openstack (私有云)
docker安装
先准备安装环境
#关闭防火墙
#安装docker依赖环境,lvm逻辑卷
#安装docker本地源
#yum安装docker
#开启docker,并设置开机自启
#docker version 查看docker版本信息
#docker info 查看docker所有信息
docker核心概念
镜像:是创建容器的基础;是一个只读的模板文件,里面包含运行容器中的应用程序所需要的所有内容(应用程序文件、配置文件、运行库文件、依赖包等)
容器:是用镜像运行的实例;容器可以被创建、启动、停止、删除,每个容器之间默认是相互隔离的
仓库:是用来集中保存镜像的地方;有公有仓库和私有仓库之分
docker version #查看docker版本信息 docker info #查看docker信息 docker search 仓库/镜像的关键词 docker pull 仓库名/镜像名:标签 (如果不指定标签,默认使用:latest标签) docker images #查看本地的所有镜像 docker inspect 镜像名镜像id #查看镜像的详细信息 docker tag 就镜像名:旧标签 新镜像名:新标签 #修改镜像的镜像名和标签名 docker rmi 仓库名:标签 |镜像id [-f] #删除镜像 docker save -o 镜像文件 镜像名|镜像id #导出 docker load -i|< 镜像文件 #载入 docker login #登录官方公有仓库 docker push 仓库名/镜像名:标签 #推送镜像到公有仓库
#搜索nginx镜像
#获取镜像
#docker images 查看本地下载的所有镜像
REPOSITORY:镜像属于的仓库;
TAG:镜像的标签信息,标记同一个仓库中的不同镜像;
IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像;
CREATED:镜像创建时间;
VIRTUAL SIZE:镜像大小;
不过在下载的时候,发现下载的速度有点慢,我们可以在阿里云的云镜象库下载。
在浏览器访问https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置
#配置一个daemon配置文件来使用加速器
#刷新配置,重新启动docker
#可以在docker的信息中查看到
#通过 docker inspect命令,查看镜像的具体信息
#为本地的镜像添加新的标签
不过新添加的标签和原镜像的id号一样
#通过rmi命令删除指定的镜像
#将镜像文件保存成本地文件
#将镜像文件载入到镜像库中
docker create [选项] [--name 容器名]镜像名:标签 [容器启动命令] #创建容器 docker start 容器id |名称 #运行容器 docker stop 容器id |名称 #关闭容器 docker exec -it 容器id |名称 shell环境 #加入容器 exit #退出容器 docker cp 文件 容器名称:绝对路径 #把虚拟机的文件复制到容器中 docker cp 容器名称:/绝对路径指定文件 /指定目录 #把容器中的文件复制到虚拟机中 docker ps -a #查看容器运行状态 docker rm[-f] 容器名|id #删除容器 docker rm $(docker ps -a -q) #批量清理后台停止的容器 ecport -o 容器名称|id docker run 容器id|名称 (-d 后台运行) #前台创建并运行容器 docker run -d -i -t --name --rm 镜像名:标签
#创建容器
#启动容器
#加入容器,并查看
#将主机中的文件复制到容器中
#将容器中的文件,复制到主机中
#终止容器的运行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~