Docker 的简单基础知识

Docker 概念

  • Docker是一个开源的应用容器引擎
  • Go语言实现
  • Docker可以让开发者打包他们得应用以及依赖到一个轻量级、可移植的容器中,然后发布到linux机器上
  • 容器完全使用沙箱机制,相互隔离
  • 容器性能开销低,启动快

Docker命令

服务相关命令

  • 启动docker服务

    systemctl start docker

  • 停止docker服务

    systemctl stop docekr

  • 重启docker服务

    systemctl restart docker

  • 查看docker服务状态

    systemctl status docker

  • 开机启动docker服务

    systemctl enable docker

Docker镜像相关命令

  • 查看镜像(本地)

    docker images

    • REPOSITORY 镜像名称
    • TAG 镜像版本号
    • IMAGE_ID 镜像ID,一个标识符
    • CREATED 创建时间
    • SIZE 大小
  • 搜索镜像 到docker hub上查

    docker search [镜像名]

    • STARS 类似github上的star
    • OFFICAL OK 表示是官方维护的
    • AUTOMATED OK表示是自动化构建的,与github这样的网站相关,源码改动后,docker hub上自动更新镜像
  • 拉取镜像

    docker pull [镜像名] [版本号]

    不写版本号,默认最新

  • 删除镜像

    docker rmi [IMAGE_ID]

    docker rmi [REPOSITORY:TAG]

    docker rmi docker images -q 全部删除

Docker 容器相关命令

  • 查看容器

    docker ps 查看正在运行的容器

    docker ps -a 查看所有容器,包括挂掉的

  • 创建容器

    docker run [参数]

    • -i:保持容器运行,通常与-t同时使用,假如it两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭
    • -t:为容器重新分配一个伪输入终端,通常与-i一起使用
    • -d:以守护进程模式运行容器,创建一个容器在后台运行,需要使用docker exec进入容器,推出后,容器不关
    • -it 创建的是交互式容器,-id创建的是守护式容器
    • --name 为创建的容器命名。
  • 进入容器

    docker exec 参数

  • 启动容器

    docker start

  • 停止容器

    docker stop 容器名

    docker stop docker ps -aq

  • 删除容器

    如果是运行状态则删除失败

    docker rm 容器名

    docker rm doccker ps -aq

  • 查看容器信息

    docker inspect 容器名

Docker 的数据卷

  • Docker容器删除后,容器中的数据就不在了
  • Docker容器如何和外部机器直接交换文件?
  • 容器之间如何进行数据交互

由这些问题,引出数据卷

数据卷的概念及作用

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器同时挂载,实现容器间通信
  • 一个容器可以挂载多个数据卷
  • 作用:
    • 容器数据持久化
    • 外部机器与容器间通信
    • 容器之间数据交换

配置数据卷

  • 创建启动容器时,使用-v参数 设置数据卷

    docker run -v 宿主机目录/文件:容器内目录/文件

  • 注意事项:

    • 目录必须是绝对路径
    • 目录不存在,自动创建
    • 可挂载多个
  • 还有匿名挂载方式,就是不指定宿主机目录,只指定容器内目录,

    所有的docker容器卷,在没有指定目录的情况下都是保存在 /var/lib/docker/volumes/****/_data

配置数据卷容器

数据卷容器就是,一个容器以挂载数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器称为数据卷容器,删除父容器后,子容器内数据仍保留

  • 多容器如何进行数据交换?
    • 多个容器挂载同一个数据卷
    • 数据卷容器

用 --volumes-from [父容器名] 代替-v

posted @ 2021-11-28 14:45  博客是个啥?  阅读(38)  评论(0编辑  收藏  举报