概念

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

  • 基于go 开发的云开源项目
  • 一次封装,到处运行

    虚拟化技术

  • 虚拟机带环境安装的一种解决方案,资源占用过多,冗余多,启动慢

  • linux容器,不模拟一个完整的操作系统,只需要软件工作所需要的库资源和设置。

    开发/运维

  • 一次构建,随处运行

    企业级

  • 大规模动态调度

    三要素

  • 仓库 repository 集中存放镜像

    • 仓库注册服务器Registry 上往往存放着多个仓库
      • 公开仓库
        • 阿里云
        • 网易云
      • 私有仓库
    • 仓库中又包含了多个镜像
    • 每个镜像有不同的标签tag
  • 容器 container 镜像的实例
  • 镜像 image 模板

    docker的架构图

  • 镜像/容器 类比 类/对象

  • 仓库是集中存放镜像文件的场所
    • 公开库,私有库
  • 阿里云镜像平台

    docker安装

    centos7安装

    docker安装
    阿里云镜像加速 阿里云开发者平台,镜像加速器
    docker的helloworld

helloword镜像

运行底层原理

image.png

docker常用命令

启动命令

systemctl start docker

卸载命令

  • 删除docker安装包

yum remove docker-ce

  • 删除镜像,容器,配置文件等内容

rm -rf /var/lib/docker

帮助命令

  • docker -version
  • docker info
  • docker —help

    镜像命令

    docker images -a本地的镜像
    image.png
    image.png
    docker search xxx
    docker pull xxx
    docker rmi xx 删除某个镜像 默认:latest

容器命令

有镜像才能创建容器
image.png

  • docker pull centos
  • docker run -it iamgeid 交互式容器
  • 退出容器
    • exit 容器停止推出
  • 停止容器
    • docker stop
  • 强制停止容器
    • docker kill image

重要

守护式容器

docker run -it centos 启动容器

  • 交互 前台启动

docker run -d centos 后台启动

docker logs -f -t —tail 查看容器日志

  • -t 时间
    • f 实时
    • tail 限制多少条

docker top id 容器内的进程
docker inspect 容器id 查看容器内部细节
docker exec -t 容器id ls -l/tmp
docker attcah 重新进入容器
容器内拷贝文件 docker cp 容器id
docker 常用命令

docker镜像原理

UnionFS联合文件系统

分层,轻量级,高性能的文件系统。
对文件系统的修改作为一次提交来一层层的提交。

docker镜像加载原理、

一层一层的文件系统组成、
最底层是bootfs

  • bootloader
  • kernel 内核

roofs

  • 不同的操作系统发行版

    镜像commit

    docker commit

docker容器数据卷

数据持久化
共享数据
为了保存数据在docker中使用卷。

docker cp 从容器内拷贝文件到主机上

直接命令添加

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

dockfile添加

hello.java —》 hello.class
docker.image —>docker dockfile

在dockerfile中使用volume指令来给镜像添加一个或多个数据卷

容器数据卷 容器间传递共享 volumes from

DockerFile

  • 手动编写dockerfile文件
  • 直接docker build命令执行,获得一个自定义的对象
  • run