1.基本概念

  • 容器技术

    是一种虚拟化的技术, 类似于虚拟机,可以提供软件的独立运行环境

  • 容器和虚拟机区别

    -虚拟机
    先虚拟化出硬件,在硬件上安装操作系统,在运行各种不同的软件,像一台真实的计算机一样
    隔离性更强
    -容器
    不虚拟化硬件, 共享宿主机的操作系统内核. 在容器上也可以运行部同的软件
    体积小、启动快、性能接近原生、单机可部署的数量多
    docker概念
    docker是一个开源的 C/S架构的软件,通过这款软件我们可以管理容器,如创建容器,删除容器

    2.docker中的组件

    1.镜像(image)
    特殊的文件系统,提供了容器运行所必须的资源、环境
    2.容器(container)
    容器是根据镜像创建出来的可运行实例,我们可以通过命令来控制容器的创建、运行、停止等等
    3.镜像中心(registry)
    概念
    镜像中心就是存储镜像的服务器,我们可以通过镜像中心 上传或下载镜像,分为公有和私有
    镜像格式
    镜像中心地址
    通过该地址,可以找到指定的镜像中心,默认的镜像中心是官方的DockerHub
    repository
    镜像中心中包含多个镜像仓库,每种仓库代表一类镜像,如: mysql 镜像
    tag
    每个镜像仓库中,会有不同的镜像版本 如: mysql镜像仓库中 有8版本,有5.7版本

    3.docker安装和启动

    1.检查状态
    检查docker版本
    docker -v
    检查docker版本(更详细)
    docker version
    查看服务端详细信息
    docker info
    2.docker服务端管理
    查看docker服务端状态
    systemctl status docker
    启动docker服务端
    systemctl start docker
    停止docker服务端
    systemctl stop docker
    重启docker服务端
    systemctl restart docker
    开机启动docker服务端
    systemctl enable docker
    Docker的基本操作
    1.image 镜像操作(重点)
    查看镜像
    docker images centos
    查看仓库名称包含centos的镜像
    docker images -q
    查看镜像列表 只显示id
    搜索镜像
    docker search 仓库名称关键字
    hub.docker.com 官方镜像中心网址搜索(推荐)
    拉取镜像
    docker pull 仓库名称:标记
    省略标记
    下载镜像的latest版本
    删除镜像
    docker rmi 【镜像仓库:标记】或【镜像ID】
    docker rmi -f 【镜像仓库:标记】或【镜像ID】
    强制删除
    docker rmi docker images -q
    删除全部镜像
    2.container 容器操作(重点)
    查看容器
    docker ps
    查看运行时容器列表
    docker ps -a
    查看所有的容器列表
    *创建容器
    docker run [选项] 镜像:标记 [命令]
    选项
    -it
    交互式运行
    运行容器后,会登录到容器中
    通过exit退出 退出后容器关闭
    -d
    守护式运行
    后台运行容器
    进入容器: docker exec -it 容器名称 bash
    通过exit退出 退出后容器继续运行
    —name 名称
    定义容器名称
    -p 宿主机端口:容器端口
    将宿主的端口映射到容器
    -v 目录挂载
    -v 宿主机上的目录:容器上的目录
    停止、启动、重启

  • docker stop

  • docker start
  • docker restart

    文件拷贝
    docker cp 宿主机上的文件 容器名称:/容器中的目录
    docker cp 容器名称:/容器中上的文件 宿主机的目录
    目录挂载
    docker run -id —name=名称 -v 宿主机目录:容器目录 镜像
    删除容器
    docker rm 容器
    docker rm -f 容器
    查看容器日志
    docker logs -f 容器名称(或容器ID)
    设置容器自启动
    docker update —restart always 容器名称
    3.数据卷管理(了解)
    数据卷是一个可供一个或多个容器使用的特殊目录,一般是在宿主机的某个特定的目录下
    1.数据卷管理命令
    docker volume create 卷名称
    创建一个数据卷
    docker volume inspect 卷名称
    显示一个或多个指定数据卷的详细信息
    docker volume ls
    查看所有的数据卷
    docker volume prune
    删除所有未使用的数据卷
    docker volume rm 卷名称
    删除一个或多个指定的数据卷
    2.演示挂载数据卷
    docker volume create html
    创建名称为html的数据卷
    docker volume inspect html
    查看html数据卷的详细信息
    docker run -id —name=my-nginx -p 8888:80 -v html:/usr/share/nginx/html nginx
    创建并运行nginx容器,并将html数据卷挂载到容器的指定目录

    4.备份与迁移

    1.镜像的备份
    docker save -o 文件名称 镜像名称:标记
    docker save -o mynginx.tar mynginx_i
    将mynginx_i镜像保存为一个压缩包
    2.镜像的加载
    docker load -i 文件名称
    docker load -i mynginx.tar
    加载指定压缩包中的镜像

    5.Dockerfile构建镜像

    1.概念:
    Dockerfile是一个脚本文件,在里面定义构建镜像的命令和参数
    使用docker build命令根据这个脚本文件可以快速构建镜像
    2.练习:
    使用Dockerfile 在centos基础镜像上安装JDK在打包成新镜像
    3.常用指令:
    Docker - 图1

    6.Registry注册中心

    1.搭建私有镜像中心
    拉取注册中心的镜像 Registry
    2.上传镜像到私有注册中心
    镜像中心的信任列表
    docker tag 注册中心地址/镜像名称:版本
    docker push 注册中心地址/镜像名称:版本

    7.docker-compose

    1.容器编排技术
    可以通过一个脚本,描述多个容器,可以实现容器的统一管理和编排
    企业 比较火的容器编排技术 kubernetes (K8S)
    2.常用命令:
    docker-compose up -d 后台启动所有描述的容器
    docker-compose stop 停止所有描述的容器
    docker-compose down 停止并删除所有描述的容器