网站建设费用大概多少,邢台吧 百度贴吧,阿里云做的网站误删了,手机和电脑网站分开做1、定义#xff1a;一个开源的应用容器引擎#xff0c;基于go语言开发#xff0c;运行在liunx系统中的开源的、轻量级的“虚拟机”
docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器
docker的宿主机是liunx系统#xff0c;集…1、定义一个开源的应用容器引擎基于go语言开发运行在liunx系统中的开源的、轻量级的“虚拟机”
docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器
docker的宿主机是liunx系统集装箱可以理解为相互隔离的容器组件或应用程序APP每个容器都是一个独立的应用程序
2、docker设计宗旨
build,ship and run any app,anywhere一次封装到处运行
build封装好的程序只要部署即可使用一次封装
ship and run any app一次封装完成之后的程序可以在任何环境运行
anywhere任意宿主机
过程封装、发布、部署、运行、维护、运行、销毁。可以一整套的方式管理应用程序的声明周期
3、docker优点
1灵活再复杂的应用也可以实现容器化
2轻量级小型的、不完整的、最小化封装的程序与宿主机共享一个内核
3可互换可以随时升级、更新
4便携式本地、云平台都可以构建、部署在任何地方运行
5可扩展自动分发容器副本自动进行部署
6可堆叠在一个宿主机上可以创建不同版本的同一容器也可以是多个相同版本的同一容器
4、liunx命名空间namespace
namespace是一种内核特性允许将一组系统资源隔离在一个命名空间的进程在系统中可以拥有独立的资源
【面试题】namespace的六项隔离措施
基于这六个隔离项实现容器和容器之间、容器和宿主机之间的资源隔离
①UTS
系统调用参数CLONE_NEWUTS
隔离内容主机与域名。在UTS命名空间中创建进程进程可以看见自己的主机与域名与其他进程分隔开
②IPC
系统调用参数CLONE_NEWIPC
隔离内容信号量、消息队列、共享内存。在IPC命名空间中进程可以拥有独立的进程间通信资源
③PID
系统调用参数CLONE_NEWPID
隔离内容每个进程都有自己独立的进程号空间
④network
系统调用参数CLONE_NEWNET
隔离内容网络设备、网络栈、端口。每个进程都有一个自己独立的网络资源、端口号
⑤mount
系统调用参数CLONE_NEWNS
隔离内容挂载点。在mount命名空间中每个进程或设备都有一个自己的文件系统挂载点相互之间互不干扰
⑥user
系统调用参数CLONE_NEWUSER
隔离内容用户和用户组 docker下载链接https://hub.docker.com/
5、docker的核心组件
镜像docker的基础最小单位类似于虚拟机ISO文件可可理解为压缩包但不是解压即用是一个环境部署的脚本甚至包含完整的操作系统。一个镜像就是一个可执行的包包里包含运行这个程序的所有内容代码、配置文件、环境变量等容器docker的容器是基于镜像运行起来的实例可以启动、停止、删除。每一个容器是相互隔离的互不可见仓库保存镜像。所有的镜像都是从仓库中获取的。分为公有仓库和私有仓库。在linux系统中下载到本地镜像、容器、日志默认在/var/lib/docker中
6、docker与传统虚拟机之间的区别【面试题。应届】 特性 docker 虚拟机 启动速度 秒级 分钟级 计算能力损耗 几乎无 损耗50% 性能 接近原生系统 弱于原生系统 系统支持量 上千个 根据硬件系统条件几十个 隔离性 资源隔离 完全隔离 安全性 安全性差 安全性好
7、安装docker【docker只支持64位系统最少2核4G】
1安装依赖包
yum -y install yum-utils device-mapper-persistent-data lvm2 yum-utils 提供yum-cofig-manager工具可以远程自定义获取yum源 device-mapper-persistent 进行逻辑卷管理的通用设备映射机制
2设置阿里云镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 3安装 Docker-CE并设置为开机自动启动
yum -y install docker-ce docker-cs-cli contarnerd.io systemctl start docker.service
systemctl enable docker.service docker-ce docker的社区版面向开发者、小型团队和个人使用。免费 docker-cs-cli 提供docker的命令行工具 contarnerd.io 负责管理容器的生命周期创建、运行、停止、继续、销毁 docker安装完毕
4镜像加速下载
浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置 8、docker命令 查看 docker 版本信息 docker version docker 信息查看 docker info Docker 镜像操作 搜索镜像 docker search 关键字 获取镜像 docker pull 镜像名称:标签 查看下载到本地的所有镜像 docker images 根据镜像的唯一标识 ID 号获取镜像详细信息 docker inspect 镜像ID号 为本地的镜像添加新的标签 docker tag 名称:标签 新名称:新标签 删除镜像 docker rmi 仓库名称:标签 存储镜像将镜像保存成为本地文件 docker save -o 存储文件名 存储的镜像 载入镜像将镜像文件导入到镜像库中 docker load -i 存出的文件 上传镜像 docker tag nginx:latest soscscs/nginx:web #新的标签时必须在前面加上自己的dockerhub的username docker login 登录公共仓库 Usernameannie1234 password【常用密码】 docker push soscscs/nginx:web #上传镜像 Docker 容器操作 创建容器 docker create [选项] 镜像 查看容器的运行状态 docker ps -a所有容器 docker ps 正在运行的容器 启动容器 docker start 容器的ID/名称 直接创建并运行容器 docker run -itd --name 容器名称 镜像:标签 /bin/bash 进入容器进入容器前确保容器正在运行 docker exec -it 容器ID/名称 /bin/bash 退出容器 exit 终止容器运行 docker stop 容器的ID/名称 本地文件复制到容器 docker cp 本地文件存放路径 容器名称:存放文件路径 容器的导出与导入 导出格式docker export -o 文件名 容器ID/名称 导入格式docker import 文件名 -- 镜像名称:标签 删除容器正在运行的容器 强制删除docker rm -f 容器ID/名称 先停再删docker stop 容器ID/名称 docker rm 容器ID/名称 批量停止容器 docker ps -a | awk NR2{print $1}| xargs docker stop 批量删除所有容器【慎用】 docker ps -a | awk NR2{print $1}| xargs docker rm 批量删除none镜像 docker images | grep none | awk {print $3} | xargs docker rmi 批量清理后台停止的容器 docker rm $(docker ps -a -q)
①查看 docker 版本信息
docker version ②查看本机docker所有信息
docker info docker安装完毕后客户端和服务端都运行在一台机器上 Client 客户端 Server 服务端 overlay2 docker使用的文件系统驱动 overlayFS overlay file system联合文件系统用于适配宿主机的文件系统可以自动适配
1docker的镜像操作
①搜索镜像
格式docker search 关键字 name 镜像名称 description 描述信息 stars 点赞数 official 官方镜像 automated 自动化构建
②获取镜像拉取镜像
格式docker pull 镜像名称[:标签]
#如果下载镜像时不指定标签则默认会下载仓库中最新版本的镜像即选择标签为 latest 标签 #加上标签下载的就是该版本的镜像 ③查看下载到本地的所有镜像
docker images repository 镜像所属的仓库 tag 镜像的标签信息标记同一个仓库中的不同镜像 image id 镜像的唯一ID 号唯一标识一个镜像不重复 created 镜像创建时间 size 镜像大小
④根据镜像的唯一标识 ID 号获取镜像详细信息
格式docker inspect 镜像ID号 lowerDir 底层目录。整个docker的底层文件系统是一个或多个镜像文件的根文件系统 UpperDir 可写层。可以在容器运行时在容器内进行写操作实现容器的可写性 MergeDir 合并目录。lowerDir和UpperDir合并起来形成容器的文件系统用户看到的也是这个合并视图 workDir 工作目录。处理文件系统变更当在容器内进行写操作时overlayfs使用workDir追踪文件系统的变更
⑤为本地的镜像添加新的标签
格式docker tag 名称:标签 新名称:新标签 ⑥删除镜像
方法1
格式docker rmi -f 镜像ID #强制删除镜像 方法2
格式docker rmi 镜像名称:标签
#当一个镜像有多个标签时只是删除其中指定的标签
格式docker rmi 镜像ID号
#会彻底删除该镜像 注意一个镜像有多个标签删除时只是删除标签只剩最后一个删除的是镜像本身。若镜像已被容器使用先停止容器再删除容器最后删除镜像
⑦存储镜像将镜像保存成为本地文件
格式docker save -o 存储文件名 存储的镜像 ⑧载入镜像将镜像文件导入到镜像库中
格式docker load -i 存储的文件 ⑨上传镜像
docker tag nginx:latest annie1234/nginx:1.22.0
#添加新的标签时必须在前面加上自己的dockerhub的用户名
docker login
#登录公共仓库
Usernameannie1234
password【常用密码】
docker push annie1234/nginx:1.22.0 #上传镜像 2docker容器操作
①创建容器
格式docker create -it 镜像 -it 宿主机和容器形成一个可以交互的shell命令行 -i 表示让容器开启标准输入接收用户的输入命令 -t 给容器分配终端虚拟的伪终端 注意创建容器后自动创建一个docker0
②查看容器的运行状态
docker ps -a #显示所有的容器
docker ps #显示正在运行的容器 ③启动容器
格式docker start 容器的ID/名称 up表示容器正在运行
exited表示容器退出不运行
④直接创建并运行容器
格式docker run -itd --name 容器名称 镜像:标签 /bin/bash -d 可以让创建的容器以守护进程形式在后台运行容器运行的程序不会结束 问题1没有镜像能不能直接run 可以会自动拉取镜像 问题2运行的程序是什么不运行会怎样 /bin/bash。-d结合会给容器一个直接运行的命令后台没有指令容器没有可运行的程序将会直接退出 -it 形成交互式的shell命令 -name 给容器命名 nginx:latest 镜像名称和标签若本地没有可以自动下载
⑤进入容器进入容器前确保容器正在运行
格式docker exec -it 容器ID/名称 /bin/bash ⑥退出容器exit ⑦终止容器运行
格式docker stop 容器的ID/名称 ⑧本地文件复制到容器
格式docker cp 本地文件存放路径 容器名称:存放文件路径 ⑨容器文件复制到本地 ⑩容器的导出与导入
导出格式docker export -o 文件名 容器ID/名称
导入格式docker import 文件名 -- 镜像名称:标签
注意导出的容器仍然是一个镜像必须要运行run或create才能成为容器已经配置好的导出的容器镜像可以部署到其他主机直接使用工作中我们用的都是开发已设置、配置好的容器镜像 docker特性即使在创建过程中报错容器仍会被创建但此容器不可用导入镜像或者导入容器镜像若标签和已有标签重复导入的镜像或者容器镜像tag变成none ⑪删除容器正在运行的容器
格式docker rm -f 容器ID/名称
方法1强制删 方法2先停再删 ⑫批量操作【不建议使用批量操作】
批量停止容器
docker ps -a | awk NR2{print $1}| xargs docker stop 批量删除所有容器【慎用】
docker ps -a | awk NR2{print $1}| xargs docker rm 批量删除none镜像
docker images | grep none | awk {print $3} | xargs docker rmi 批量清理后台停止的容器
docker rm $(docker ps -a -q)