飞道的博客

docker容器虚拟化技术总结

419人阅读  评论(0)

什么是docker

解决了运行环境与配置问题的软件容器,方便做持续集成并有助于项目整体发布的容器虚拟化技术。

docker能用来干什么

在开发与部署的过程中能做到一次构建,多处运行。

  • 更快速的应用交付与部署
  • 更便捷的升级与扩缩容
  • 更简单的系统运维
  • 更高效的计算机资源利用

docker的基本组成

基本组成为:镜像,容器,仓库

  • 镜像:是一个只读模板,可以使用镜像来创建容器,一个镜像可以创建多个容器
  • 容器:是独立运行的一个或一组应用,是镜像创建的一个实例
  • 仓库:是集中存放镜像文件的场所

docker的工作原理

docker是一个client-server结构系统,docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。 容器,是一个运行时环境,就是鲸鱼中的集装箱。

docker常用命令

1.帮助指令

  • docker version 查看docker的版本
  • docker info 查看docker中详细信息
  • docker --help 查看docker帮助文档

2.镜像指令

  • docker images 【options】 列出本地主机的镜像
参数说明:
-a:列出本地所有的镜像
-q:只显示镜像ID
--digests:显示镜像的摘要信息
--no-trunc:显示完整的镜像信息
  • docker search【options】 某镜像名字 搜索阿里云镜像仓库中该名称的镜像
参数说明:
--no-trunc:显示完整的镜像描述
-s:列出收藏数不小于指定值的镜像
--automated:列出automated build类型的镜像

  • docker pull 某镜像名字 下载该名称的镜像
  • docker commit -m “提交的描述信息” -a “作者” 容器ID 目标镜像名:版本号 创建新镜像
  • docker rmi 某镜像名字 删除该名称镜像
docker rmi -f 镜像ID	删除单个镜像
docker rmi -f 镜像名1:TAG  镜像名2:TAG	删除多个镜像
docker rmi -f $(docker images -qa)		删除全部镜像

3.容器指令

  • docker run 【options】 image 新建并启动容器
参数说明:
--name="容器新名字": 为容器指定一个名称;

-d: 后台运行容器,并返回容器ID,也即启动守护式容器;

-i:以交互模式运行容器,通常与 -t 同时使用;

-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-P: 随机端口映射;

-p: 指定端口映射
  • docker ps 【options】 列出当前正在运行的容器
参数说明:
-a :列出当前所有正在运行的容器+历史上运行过的

-l :显示最近创建的容器。

-n:显示最近n个创建的容器。

-q :静默模式,只显示容器编号。

--no-trunc :不截断输出。
  • exit 容器停止退出
  • CTRL + P +Q 容器不停止退出
  • docker start 容器ID或名称 启动容器
  • docker restart 容器ID或实例 重启容器
  • docker stop 容器ID或实例 停止容器
  • docker kill 容器ID或实例 强制停止容器
  • docker rm 容器ID 删除已停止的容器

4.重要指令

  • docker run -d 容器名 启动守护式容器
  • docker logs -f -t --tail 容器ID 查看容器日志
  • docker top 容器ID 查看容器内运行的进程
  • docker inspect 容器ID 查看容器内部细节
  • docker exec -it 容器ID bashShell 与运行的容器以命令行交互
  • docker attach 容器ID 重新进入容器
  • docker cp 容器ID :容器内路径 目的主机路径 从容器内拷贝文件到主机

docker镜像是什么

镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

docker容器数据卷

容器卷类似于redis中的持久化技术 rdb 与 aof,数据卷能够做到容器的持久化与容器间继承和数据共享

命令:

docker run -it -v /宿主机绝对路径目录:/容器内目录	镜像名

容器停止退出后,主机修改数据后,数据还是会同步到容器中

数据卷容器

命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器

容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止

dockerFile解析

概念

dockerFile是用来构建docker镜像的构建文件,是由一系列命令和参数构成的脚本

步骤

编写dockerFile文件 =》docker bulid =》 docker run

dockerFile内容格式
  • 每条保留字指令都必须为大写字母且后面至少要跟随一个参数
  • 指令从上向下执行,顺序执行
  • #标识注释
  • 每条指令都会创建一个新的镜像层,并对镜像进行提交
docker执行dockerFile流程
  • docker从基础镜像运行一个容器
  • 执行一条指令并对容器进行修改
  • 执行类似docker commit 的操作提交一个新的镜像层
  • docker再基于刚提交的镜像运行一个新容器
  • 执行dockerFile中的下一条指令直到所有指令都执行完成
dockerFile,docker镜像,docker容器之间关系
  • dockerFile是构建docker镜像的原材料
  • docker镜像是软件的交付品
  • docker容器是docker镜像的一个实例,是软件的运行状态
dockerFile体系中的保留字
 - FROM					基础镜像
 - MAINTAINER		    镜像维护者的姓名与邮箱
 - RUN					容器构建时运行的命令
 - EXPORT				暴露的端口
 - WORKDIR     			创建容器后,终端默认登录进来的工作目录
 - ENV					构建镜像过程中设置的环境变量
 - ADD					将宿主机目录中的文件拷贝进镜像并解压缩
 - COPY					将宿主机目录中的文件拷贝进镜像
 - VOLUME				容器数据卷,数据持久化与数据共享
 - CMD					指定容器启动时要执行的命令,多个CMD只有最后一个生效
 - ENTRYPOINT			指定容器启动时要执行的命令,执行容器添加的命令会追加在后面
 - ONBUILD				构建一个被继承的DockerFile时运行的命令,父镜像在被子镜像继承时onbuild被触发

镜像安装步骤

  • 搜索镜像
  • 拉取镜像
  • 查看镜像
  • 启动镜像
  • 停止容器
  • 移除容器

转载:https://blog.csdn.net/qq_44666176/article/details/106768830
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场