160 作者 网站建设,免费的云服务器有哪些,利用国外网站文章图片做书营利,app开发公司的困难一、docker 介绍
1、容器#xff08;Container#xff09;#xff1a;
(1) 概念#xff1a;
容器是一种用于运行和部署应用程序的技术。它将应用程序及其所有依赖项#xff08;例如代码、运行时、系统工具、系统库等#xff09;打包在一个独立的、可移植的运行环境中Container
(1) 概念
容器是一种用于运行和部署应用程序的技术。它将应用程序及其所有依赖项例如代码、运行时、系统工具、系统库等打包在一个独立的、可移植的运行环境中使应用程序可以在不同的计算机上以相同的方式运行。
(2) 传统虚拟机与容器的区别
① 传统虚拟机virtual machine
传统虚拟机技术是在主操作系统上安装虚拟机管理系统 (如 VMware)创建出虚拟机并在虚拟机上安装运行另一个种操作系统从而安装部署各种应用。
② Linux容器Linux ContainerLXC
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
③ 安装 Docker Engine-Community
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
④ 启动docker
systemctl start docker
⑤ 查看 docker 版本
docker version ⑥ 使用 hello-world 镜像测试 docker
docker run hello-world
由于本地没有 hello-world 这个镜像所以会先下载 hello-world 镜像并在容器内运行。 ● docker run 的工作流程 3、镜像加速器配置
① 登录阿里云点击 “产品” → “容器” → 选择 “容器镜像服务”
② 点击 “管理控制台” → 选择 “镜像加速器”找到加速器地址
③ 将加速器地址配置到 docker 中
vim /etc/docker/daemon.json { registry-mirrors: [https://xxxxx.mirror.aliyuncs.com] } systemctl daemon-reload
systemctl restart docker 三、docker 常用命令
1、启动类 2、镜像命令
① docker image查询本地镜像 ② docker search 镜像名搜寻镜像是否在仓库中 ③ docker pull 镜像名下载镜像
④ docker system df查看镜像 / 容器 / 数据卷所占的空间
⑤ docker rmi 镜像名 / 镜像id删除镜像 docker rmi -f强制删除 docker rmi -f $(docker images -qa)删除全部镜像
● 虚悬镜像仓库名、标签都是none的镜像 3、容器命令
(1) 新建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用参数 --name为容器指定一个名称 -d后台运行容器并返回容器ID也即启动守护式容器 -i以交互模式interactive运行容器通常与-t同时使用 -t为容器重新分配一个伪输入终端tty也即启动交互式容器 -e为容器添加环境变量 -P随机端口映射 -p指定端口映射 ● 启动交互式容器前台命令行以交互模式启动容器在容器内执行 /bin/bash 命令 ● 启动守护式容器后台服务器docker 服务在后台保持运行 (2) 查看容器
列出所有正在运行的容器docker ps
查看容器日志docker logs 容器ID或容器名
查看容器内运行的进程docker top 容器ID或容器名
查看容器内部细节docker inspect 容器ID或容器名
(3) 重启、停止、删除容器 删除已停止的容器docker rm 容器ID或容器名
强制删除容器docker rm -f 容器ID或容器名
(4) 退出容器
exit退出后容器会停止 ctrlpq退出后容器不停止
(5) 重新进入容器
docker exec -it 容器ID bashShell
docker attach 容器ID
● docker exec 和 docker attach 区别
attach 直接进入容器启动命令的终端不会启动新的进程用exit退出会导致容器的停止 exec 是在容器中打开新的终端并且可以启动新的进程用exit退出不会导致容器的停止 (6) 容器备份
① 备份容器文件
容器内文件拷贝到宿主机docker cp 容器ID:容器内路径 目的主机路径
宿主机文件拷贝到容器中docker cp 主机路径 容器ID:容器内路径 ② 导出和导入容器
导出docker export 容器ID tar文件名 导入cat tar文件 | docker import - 自定义镜像用户/自定义镜像名:自定义镜像版本号