网站建设上的新闻,大理企业网站建设,旅游攻略网站开发,流量平台是什么意思Docker简介 文章目录 Docker简介一、Docker1.什么是docker?2.容器引擎3.容器和虚拟机的区别4.namespace#xff08;命名空间#xff09;5.三大容器核心概念镜像容器仓库 二、Docker镜像操作1.搜索镜像2.获取镜像镜像加速下载 3.查看本地下载镜像4.获取镜像详细信息5.为本地镜…Docker简介 文章目录 Docker简介一、Docker1.什么是docker?2.容器引擎3.容器和虚拟机的区别4.namespace命名空间5.三大容器核心概念镜像容器仓库 二、Docker镜像操作1.搜索镜像2.获取镜像镜像加速下载 3.查看本地下载镜像4.获取镜像详细信息5.为本地镜像添加标签6.删除镜像7.存出镜像8.载入镜像9.上传镜像10.镜像操作总结 三、Docker 容器操作1.容器创建2.查看容器的运行状态3.启动容器3.停止容器运行4.删除容器5.进入容器6.宿主机和容器数据的导入和导出7.容器的导出与导入导出格式导入格式 8.创建并启动容器docker run)docker run 执行过程执行格式docker run 执行过程执行格式 一、Docker
1.什么是docker?
docker是go语言开发的应用容器引擎是用来运行容器里的应用docker是管理镜像和容器的一种工具。2.容器引擎
docker containerd podman rocket
3.容器和虚拟机的区别
指标容器虚拟机内核所有容器共享宿主机内核每个虚拟机有单独的操作系统和内核资源隔离使用namespace进行资源隔离通过cgroup限制容器的资源最大使用量完全隔离每个虚拟机有自己的独立硬件资源启动速度秒级分钟级性能损耗容器相当于宿主机的进程几乎无损耗需要hypervisor虚拟机管理程序对宿主机资源虚拟访问至少有20~50%资源损耗单机容量单机容量能够支持成百上千个容器单机空量只能支持最多十几个虚拟机 4.namespace命名空间
类型说明MNT namespace提供磁盘挂载点和文件系统的隔离能力IPC namespace提供进程间通信的隔离能力USER namespace提供用户隔离能力NET namespace提供网络隔离能力UTS namespace提供主机名隔离能力PID namespace提供进程隔离能力
5.三大容器核心概念
镜像
是创建容器的基础也是一个只读的模板文件里面包含容器中的应用程序所需要的所有内容(包含程序运行文件、配置文件、这行库文件、操作系统、依赖包 )容器
是用镜像运行的实例容器可以被创建、启动、停止、删除每个容器之间默认是相互资源隔离的仓库
是用来保存镜像的地方有公有仓库和私有仓库之分二、Docker镜像操作
1.搜索镜像
格式docker search 关键字2.获取镜像
格式docker pull 仓库名称[:标签]镜像加速下载
浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置mkdir -p /etc/docker
tee /etc/docker/daemon.json -EOF
{registry-mirrors: [https://qfh90gmo.mirror.aliyuncs.com]
}
EOF
systemctl daemon-reload
systemctl restart docker 3.查看本地下载镜像
docker images--------------------------------------------------------------------------------------------
REPOSITORY镜像属于的仓库
TAG镜像的标签信息标记同一个仓库中的不同镜像
IMAGE ID镜像的唯一ID 号唯一标识一个镜像
CREATED镜像创建时间
VIRTUAL SIZE镜像大小
--------------------------------------------------------------------------------------------4.获取镜像详细信息
docker inspect 镜像id5.为本地镜像添加标签
格式docker tag 名称:[标签] 新名称:[新标签]
docker tag nginx:latest nginx:webdocker images | grep nginx6.删除镜像
格式
docker rmi 仓库名称:标签 #当一个镜像有多个标签时只是删除其中指定的标签
或者
docker rmi 镜像ID号 #会彻底删除该镜像注意如果该镜像已经被容器使用正确的做法是先删除依赖该镜像的所有容器再去删除镜像。 7.存出镜像
格式docker save -o 存储文件名 存储的镜像
docker save -o nginx nginx:web #存出镜像命名为nginx存在当前目录下
ls -lh8.载入镜像
#载入镜像将镜像文件导入到镜像库中
格式
docker load 存出的文件
或者
docker load -i 存出的文件docker load nginx9.上传镜像
默认上传到 docker Hub 官方公共仓库需要注册使用公共仓库的账号。https://hub.docker.com
可以使用 docker login 命令来输入用户名、密码和邮箱来完成注册和登录。
在上传镜像之前还需要先对本地镜像添加新的标签然后再使用 docker push 命令进行上传。docker tag nginx:latest soscscs/nginx:web #添加新的标签时必须在前面加上自己的dockerhub的username
docker login #登录公共仓库
Username用户名
password密码
docker push soscscs/nginx:web #上传镜像
10.镜像操作总结
docker serach 镜像|仓库关键词 ##搜索镜像docker pull 镜像 ##拉取镜像docker images ##查看本地镜像docker rmi 镜像名|镜像id [-f] ##删除镜像docker tag 旧镜像名:旧标签 新镜像名:新标签 ##添加镜像标签docker inspect 镜像名|镜像ID ## 查看镜像详细信息docker save -o 镜像文件 镜像名|镜像id ##导出镜像docker load -i 镜像文件 ##从镜像文件载入镜像可以从其他主机导出镜像后然后载入镜像docker login ##默认登陆公共仓库docker push 仓库名/镜像名:标签 ##上传镜像到仓库三、Docker 容器操作
1.容器创建
#容器创建就是将镜像加载到容器的过程。
新创建的容器默认处于停止状态不运行任何程序需要在其中发起一个进程来启动容器。格式docker create [选项] 镜像
常用选项
-i让容器开启标准输入接受用户输入命令
-t让 Docker 分配一个伪终端 tty
-it :合起来实现和容器交互的作用运行一个交互式会话 shell docker create -it nginx:latest /bin/bash | sh
2.查看容器的运行状态
docker ps -a #-a 选项可以显示所有的容器3.启动容器
格式docker start 容器的ID/名称3.停止容器运行
格式docker stop 容器的ID/名称
格式docker kill 容器的ID/名称4.删除容器
docker rm 容器的ID/名称
docker rm [-f] (docker ps -a -q) 批量删除容器5.进入容器
docker exec -it 容器名|容器ID bash/sh ##进入容器分配一个伪终端可以在里面操作exit退出不会停止容器进程
docker attach 容器名|容器ID ##连接到正在运行的容器共享容器屏幕显示不能在里面操作ctrlc退出默认会停止容器讲程6.宿主机和容器数据的导入和导出
docker cp 容器ID:文件/目录的绝对路径 宿主机本地文件/目录 ##从容器将文件或目录导出到宿主机
docker cp 宿主机本地文件/目录 容器ID:文件/目录的绝对路径 ##从宿主机或目录将文件导入到容器中7.容器的导出与导入
用户可以将任何一个 Docker 容器从一台机器迁移到另一台机器。在迁移过程中可以使用docker export 命令将已经创建好的容器导出为容器快照文件无论这个容器是处于运行状态还是停止状态均可导出。可将导出文件传输到其他机器通过相应的导入命令实现容器的迁移。导出格式
docker export 容器ID/名称 文件名导入格式
cat 文件名 | docker import – 镜像名称:标签
docker import 容器模板文件 -- 容器镜像8.创建并启动容器docker run)
docker run 执行过程
检查本地是否有镜像(如果有则使用本地镜像创建容器如果没有则从仓库拉取镜像再创建容器)
在只读的镜像层上挂载一层可读可写的容器层
从docker网桥给容器分配一个虚拟接口和IP地址给容器
使用镜像的默认命令或者指定的命令启动容器直到容器主进程退出为止执行格式
docker run [--name 容器名] [--rm 删除容器] [-it] [-d 后台运行] 镜像名:标签 [容器启动命令]器docker run)
docker run 执行过程
检查本地是否有镜像(如果有则使用本地镜像创建容器如果没有则从仓库拉取镜像再创建容器)
在只读的镜像层上挂载一层可读可写的容器层
从docker网桥给容器分配一个虚拟接口和IP地址给容器
使用镜像的默认命令或者指定的命令启动容器直到容器主进程退出为止执行格式
docker run [--name 容器名] [--rm 删除容器] [-it] [-d 后台运行] 镜像名:标签 [容器启动命令]