金华婺城建设局网站,山西网站开发二次开发,济宁百度网站建设,it网站开发公司目录
一、概述
#xff08;一#xff09;为什么要用到容器
#xff08;二#xff09;docker概念
1.镜像
2.容器
3.仓库
#xff08;三#xff09;Docker与虚拟机的区别
#xff08;四#xff09;Linux namespace的六大类型
二、安装docker容器引擎
#xff…目录
一、概述
一为什么要用到容器
二docker概念
1.镜像
2.容器
3.仓库
三Docker与虚拟机的区别
四Linux namespace的六大类型
二、安装docker容器引擎
一环境准备
二设置阿里云镜像源
三安装 Docker-CE并设置为开机自动启动
四查看 docker 版本信息
五docker 信息查看
三、Docker 镜像操作
一搜索镜像
二获取镜像
三镜像加速下载
四查看下载到本地的所有镜像
五获取镜像详细信息
六为本地的镜像添加新的标签
七删除镜像
八存出镜像
九载入镜像
十上传镜像
四、Docker容器操作
一容器创建
1.创建
2.查看容器的运行状态
3.启动容器
二创建和启动容器
三终止容器运行
四容器的进入
五复制
1.从主机复制到容器
2.从容器复制文件到主机
六容器的导出与导入
1.导出
2.导入
七删除容器 一、概述
一为什么要用到容器
容器可以屏蔽底层操作系统的差异性让业务应用不管在哪里都是使用容器的环境运行从而保证开发测试环境与生产环境的一致性容器部署起来非常便捷和迅速缩短开发测试部署的周期时间
二docker概念 docker是用go语言开发并开源的容器引擎用来运行容器里的应用。docker也是可用来管理容器和镜像的一种工具。
1.镜像 是创建容器的基础是一个只读的模板文件里面包含运行容器中的应用程序所需要的所有内容应用程序文件、配置文件、运行库文件、依赖包等
2.容器 是用镜像运行的实例容器可以被创建、启动、停止、删除每个容器之间默认是相互隔离的
3.仓库 是用来集中保存镜像的地方有公有仓库和私有仓库之分
三Docker与虚拟机的区别 四Linux namespace的六大类型
名称查看位置支持版本说明cgroup/proc/[pid]/ns/cgroupsince Linux 4.6 控制进程使用资源 限制内存最大使用量 IPC/proc/[pid]/ns/ipcsince Linux 3.0隔离进程间通信Mount/proc/[pid]/ns/mntsince Linux 3.8使得各进程仿佛又各自的文件系统Network/proc/[pid]/ns/netsince Linux 3.0进程可以有独立的网络空间PID/proc/[pid]/ns/pidsince Linux 3.8隔离pidUSER/proc/[pid]/ns/usersince Linux 3.8隔离用户 UTS (UNIX Time-Sharing) /proc/[pid]/ns/utssince Linux 3.0隔离nodename,hostname
二、安装docker容器引擎
一环境准备
目前 Docker 只能支持 64 位系统。systemctl stop firewalld.service
setenforce 0#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
--------------------------------------------------------------------------------------------
yum-utils提供了 yum-config-manager 工具。
device mapper 是Linux内核中支持逻辑卷管理的通用设备映射机制它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
------------------------------------------------------------------------------------------- 二设置阿里云镜像源
#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 三安装 Docker-CE并设置为开机自动启动
#安装 Docker-CE并设置为开机自动启动
yum install -y docker-ce docker-ce-cli containerd.iosystemctl start docker.service
systemctl enable docker.service 四查看 docker 版本信息
#查看 docker 版本信息
docker version 五docker 信息查看
#docker 信息查看
docker info 三、Docker 镜像操作
一搜索镜像
#搜索镜像
格式docker search 关键字
docker search nginx 二获取镜像
格式
docker pull 仓库名称[:标签]
#如果下载镜像时不指定标签则默认会下载仓库中最新版本的镜像即选择标签为 latest 标签。 三镜像加速下载
浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置mkdir -p /etc/dockertee /etc/docker/daemon.json -EOF
{registry-mirrors: [https://pbt7lb0q.mirror.aliyuncs.com]
}
EOFsystemctl daemon-reload
systemctl restart docker 四查看下载到本地的所有镜像
docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest a8758716bb6a 3 months ago 187MB
--------------------------------------------------------------------------------------------
REPOSITORY镜像属于的仓库
TAG镜像的标签信息标记同一个仓库中的不同镜像
IMAGE ID镜像的唯一ID 号唯一标识一个镜像
CREATED镜像创建时间
VIRTUAL SIZE镜像大小
-------------------------------------------------------------------------------------------- 五获取镜像详细信息
格式
docker inspect 镜像ID号●lowerdir是镜像层目录或者文件是只读的其实就是rootfsimage layer可以分很多层所以对应的lowerdir是可以有多个目录
●upperdir是在lowerdir之上的容器层这层是可读可写的在启动一个容器时候会进行创建所有的对容器数据更改都发生在这里层
●MergedDir是表现层是容器的挂载点
●WorkDir 工作目录 六为本地的镜像添加新的标签
格式
docker tag 名称:[标签] 新名称:[新标签] 七删除镜像
格式
docker rmi 仓库名称:标签 [-f] #当一个镜像有多个标签时只是删除其中指定的标签
或者
docker rmi 镜像ID号 #会彻底删除该镜像docker rmi 镜像ID号 -f #多个相同ID号时需要强制删除注意如果该镜像已经被容器使用正确的做法是先删除依赖该镜像的所有容器再去删除镜像 八存出镜像
格式
docker save -o 存储文件名 存储的镜像将镜像保存成为本地文件 九载入镜像
格式
docker load 存出的文件
或者
docker load -i 存出的文件 十上传镜像
默认上传到 docker Hub 官方公共仓库需要注册使用公共仓库的账号。https://hub.docker.com
可以使用 docker login 命令来输入用户名、密码和邮箱来完成注册和登录。
在上传镜像之前还需要先对本地镜像添加新的标签然后再使用 docker push 命令进行上传。docker tag nginx:latest soscscs/nginx:web #添加新的标签时必须在前面加上自己的dockerhub的username
docker login #登录公共仓库
Usernameyy
password123
docker push soscscs/nginx:web #上传镜像
四、Docker容器操作
一容器创建
1.创建
将镜像加载到容器的过程
格式
docker create [选项] 镜像常用选项
-i让容器开启标准输入接受用户输入命令
-t让 Docker 分配一个伪终端 tty
-it :合起来实现和容器交互的作用运行一个交互式会话 shell 2.查看容器的运行状态
docker ps -a #-a 选项可以显示所有的容器CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2f3d88e85e2f nginx:1.20 /docker-entrypoint.… 44 seconds ago Created inspiring_curran
容器的ID号 加载的镜像 运行的程序 创建时间 当前的状态 端口映射 名称 3.启动容器
格式
docker start 容器的ID/名称docker ps -a 二创建和启动容器 可以直接执行 docker run 命令 等同于先执行 docker create 命令再执行 docker start 命令。注意容器是一个与其中运行的 shell 命令/进程共存亡的终端命令/进程运行容器运行 命令/进程结束容器退出。 docker 容器默认会把容器内部第一个进程也就是 pid1 的程序作为docker容器是否正在运行的依据如果docker容器中 pid 1 的进程挂了那么docker容器便会直接退出也就是说Docker容器中必须有一个前台进程否则认为容器已经挂掉。 当利用 docker run 来创建容器时 Docker 在后台的标准运行过程是
检查本地是否存在指定的镜像。当镜像不存在时会从公有仓库下载利用镜像创建并启动一个容器分配一个文件系统给容器在只读的镜像层外面挂载一层可读写层从宿主主机配置的网桥接口中桥接一个虚拟机接口到容器中分配一个地址池中的 IP 地址给容器执行用户指定的应用程序执行完毕后容器被终止运行。
语法
docker run -d [-i -t --name --rm] 镜像名:标签 [容器启动命令] 三终止容器运行
docker stop 容器名|容器ID #发送 SIGTERM 信号默认等待10s
或
docker kill 容器名|容器ID #发送 SIGKILL 信号强制停止容器 四容器的进入
需要进入容器进行命令操作时可以使用 docker exec 命令进入运行着的容器。
格式
docker exec -it 容器ID/名称 /bin/bash
-i 选项表示让容器的输入保持打开
-t 选项表示让 Docker 分配一个伪终端。
exit #退出容器后容器仍在运行
docker ps -a 五复制
1.从主机复制到容器
从主机复制到容器
docker cp 宿主机文件路径 容器名|容器ID:绝对路径 2.从容器复制文件到主机
从容器复制到主机
docker cp 容器名|容器ID:绝对路径 宿主机文件路径 六容器的导出与导入 用户可以将任何一个 Docker 容器从一台机器迁移到另一台机器。在迁移过程中可以使用docker export 命令将已经创建好的容器导出为容器快照文件无论这个容器是处于运行状态还是停止状态均可导出。可将导出文件传输到其他机器通过相应的导入命令实现容器的迁移。
1.导出
导出格式
docker export 容器ID/名称 文件名
或
docker export -o 容器模板文件 容器名|容器ID 2.导入
导入格式
cat 文件名 | docker import – 镜像名称:标签
或
docker import 容器模板文件 -- 镜像名:标签 七删除容器
格式
docker rm [-f] 容器ID/名称