一、docker 介绍
1、容器(Container):
(1) 概念:
容器是一种用于运行和部署应用程序的技术。它将应用程序及其所有依赖项(例如代码、运行时、系统工具、系统库等)打包在一个独立的、可移植的运行环境中,使应用程序可以在不同的计算机上以相同的方式运行。
(2) 传统虚拟机与容器的区别:
传统虚拟机技术是在主操作系统上安装虚拟机管理系统 (如 VMware),创建出虚拟机,并在虚拟机上安装运行另一个种操作系统,从而安装部署各种应用。
② Linux容器(Linux Container,LXC):
Linux容器不是模拟一个完整的操作系统,而是从另一个镜像运行,将软件运行所需的所有依赖项打包到一个隔离的容器中
2、docker
(1) 概念:
Docker 是目前最为流行的容器化平台之一,Docker 利用容器技术,可以将源码、配置、环境、版本打包成为一个镜像文件(Docker Image)。这些镜像可以在任何支持 Docker 的环境中运行,做到 “一次镜像,处处运行”(Build, Ship and Run Any App, Anywhere)
(2) 优点:
① 轻量化和高效性: Docker 容器共享主机操作系统的内核,比传统的虚拟机更轻量,快速启动、停止和迁移。
② 快速部署: Docker 容器可以快速构建、部署和复制,缩短了应用程序的上线时间,加快了软件开发周期。
③ 隔离性和安全性: Docker 提供了基于命名空间和控制组的隔离机制,使得容器间相互隔离,避免了应用程序之间的冲突。
④ 生态系统丰富: Docker 生态系统庞大且持续发展,有大量的开源工具、库和容器化服务。
(3) docker 三要素:
镜像(image); 容器(container) ;仓库(repository)
● 镜像:将应用程序和配置依赖打包形成的一个可交付的运行环境,镜像文件可以看做容器的模版;
(4) docker 技术实现:
① Namespace (命名空间) :Docker 使用命名空间来用于隔离系统资源,使得容器可以拥有自己的独立视图,不受其他容器的影响。
② Control Groups (Cgroups,控制组):Docker 使用 Cgroups 来控制每个容器可以使用的资源量,并根据需求动态调整资源分配,防止容器之间资源争用和耗尽。
③ AUFS (Advanced Multi-Layered Unification Filesystem) 联合文件系统:
● 多层叠加:AUFS 允许将多个只读文件系统层叠加在一起,并通过写时复制技术创建容器的可写层。这种多层结构使得容器镜像可以共享和重用共同的文件系统层,节省存储空间并提高了文件系统的效率。
● 写时复制 (Copy-on-Write):当容器需要修改文件或添加新文件时,AUFS 会在创建文件的副本,而不会直接修改原始文件。这种机制使得容器可以在共享的只读文件系统上添加或修改文件,保持底层文件系统的不变性。
(5) 为什么 docker 比 vm 虚拟机快:
① docker 容器上的程序直接使用时机物理机的硬件资源,不需要实现硬件资源虚拟化;
② docker 使用宿主机的内核,不需要和虚拟机一样重新加载一个操作系统。
二、docker 部署
1、域名解析:
2、部署 docker:
yum install -y yum–utils device-mapper-persistent-data lvm2
② 选择清华镜像源:
yum–config–manager —add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
④ 启动docker:
由于本地没有 hello-world 这个镜像,所以会先下载 hello-world 镜像,并在容器内运行。
3、镜像加速器配置:
① 登录阿里云,点击 “产品” → “容器” → 选择 “容器镜像服务”;
② 点击 “管理控制台” → 选择 “镜像加速器”,找到加速器地址;
③ 将加速器地址配置到 docker 中:
{
“registry–mirrors“: [“https://xxxxx.mirror.aliyuncs.com“]
}
三、docker 常用命令:
1、启动类:
2、镜像命令:
② docker search 镜像名:搜寻镜像是否在仓库中;
③ docker pull 镜像名:下载镜像
④ docker system df:查看镜像 / 容器 / 数据卷所占的空间
⑤ docker rmi 镜像名 / 镜像id:删除镜像 ;docker rmi -f:强制删除
docker rmi -f $(docker images -qa):删除全部镜像
3、容器命令:
(1) 新建并启动容器:
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
常用参数:
-i:以交互模式(interactive)运行容器,通常与-t同时使用
● 启动交互式容器(前台命令行):以交互模式启动容器,在容器内执行 /bin/bash 命令
● 启动守护式容器(后台服务器):docker 服务在后台保持运行
(2) 查看容器:
列出所有正在运行的容器:docker ps;
查看容器内运行的进程:docker top 容器ID或容器名;
查看容器内部细节:docker inspect 容器ID或容器名
(3) 重启、停止、删除容器:
删除已停止的容器:docker rm 容器ID或容器名;
强制删除容器:docker rm -f 容器ID或容器名
(4) 退出容器:
exit:退出后容器会停止 ;ctrl+p+q:退出后容器不停止
(5) 重新进入容器:
docker exec -it 容器ID bashShell
● docker exec 和 docker attach 区别:
attach 直接进入容器启动命令的终端,不会启动新的进程,用exit退出会导致容器的停止
exec 是在容器中打开新的终端,并且可以启动新的进程,用exit退出不会导致容器的停止
(6) 容器备份:
① 备份容器文件:
容器内文件拷贝到宿主机:docker cp 容器ID:容器内路径 目的主机路径
宿主机文件拷贝到容器中:docker cp 主机路径 容器ID:容器内路径
② 导出和导入容器:
导出:docker export 容器ID > tar文件名
导入:cat tar文件 | docker import – 自定义镜像用户/自定义镜像名:自定义镜像版本号
原文地址:https://blog.csdn.net/weixin_61428407/article/details/134621984
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_5449.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!