分布式架构 服务容器化Docker

分布式架构 Docker

  • 环境准备
    • docker 安装
      • 基于apt包管理器安装
  • docker简介
    • 针对的问题
    • docker 与虚拟机的区别
  • 容器隔离
    • rootfs
    • namespace
    • Cgroup
      • 解决的问题
      • 子系统
  • 常用命令
    • 环境信息命令
    • 日志信息命令
    • 生命周期管理命令
    • 运维操作命令
    • 镜像管理命令
    • 镜像仓库文件
  • dockerfile
    • 针对的问题
    • dockerfile 实践
  • docker 镜像
  • 数据卷
    • 创建数据卷
    • 挂载数据卷
    • 共享数据卷
    • 删除数据卷
    • 备份和迁移数据卷
  • docker compose
  • docker swarm

环境准备

docker 安装

基于apt包管理器安装

安装

sudo apt-get update
sudo apt-get install docker.io

卸载

sudo apt-get purge docker.io
sudo rm -rf /var/lib/docker 
sudo rm -rf /var/lib/containerd

添加用户到docker组,解决sudo的问题

sudo addgroup -a <username> docker 
sudo service docker restart
id <username>

docker简介

针对的问题

  1. 本地运行环境与生产环境不一致的问题
  2. 应用程序资源使用的问题
  3. 快速扩展弹性伸缩的问题

docker 与虚拟机的区别

  1. 虚拟机在虚拟化基础上运行虚拟OS,docker试使用docker engine 直接操作本地OS,因此docker的资源利用率更高
  2. 虚拟化解决的核心问题是资源调配,容器解决的核心问题是应用开发、测试和部署。
  3. 容器是共享内核的,没有客户机操作系统

容器隔离

rootfs

  • 联合挂载技术
  • 使用写时复制

namespace

容器使用哪些资源

Cgroup

解决的问题

  1. 资源控制
  2. 优先级分配
  3. 资源统计
  4. 进程控制

子系统

常用命令

环境信息命令

docker info
docker version

日志信息命令

docker events
docker logs

生命周期管理命令

docker create
docker run
docker start/stop/restart
docker kill
docker rm
docker exec

运维操作命令

docker ps : 列出容器
docker inspect : 获取容器的元数据
docker top : 获取容器进程信息
docker attach : 连接正在运行的容器
docker update : 修改镜像

镜像管理命令

docker images : 查看镜像
docker images --filter dangling=true : 查看所有悬空镜像
docker images prune : 清除所有悬空镜像

docker tag : 标记本地镜像 创建一个引用 指定镜像属于哪个注册中心

docker save -o : 镜像保存

docker load -i : 导入导出的镜像

镜像仓库文件

docker login/logout
docker pull
docker push
docker search

dockerfile

针对的问题

完整地重现镜像的创建过程

dockerfile 实践

docker 镜像

数据卷

容器中的特定文件或者文件夹

创建数据卷

docker volume create --name vol_simple

挂载数据卷

docker volume create --name vol_simple
docker run -d -v vol_simple:/data ubuntu /bin/bash

共享数据卷

docker run -d -it --volumes-from share_data --volumes-from share_data1 --name volume_from1 ubuntu /bin/bash

删除数据卷

docker volume rm
docker volume rm -v
docker run -rm : 删除容器的同时删除挂载的数据卷

备份和迁移数据卷

docker run --rm --volumes-from share_data -v $(pwd):/backup ubuntu tar cvf /backup/data.tar /data

docker run -d -it --name vol_bck -v /data ubuntu /bin/bash

docker compose

定义和运行多个docker容器的应用

docker swarm

跨节点容器编排工具

你可能感兴趣的:(C++,docker,分布式,架构)