目录

一、Docker的核心

Docker+K8s基础(重要知识点总结)-LMLPHP

1,Docker引擎
  • 定义
    基于单主机运行的守护进程

  • 作用
    创建和管理容器
2,Docker基础命令
docker ps
列出所有运行中的容器

docker ps -a
列出所有容器

docker run
前端启动运行容器

docker run -d
后台启动运行容器

docker stop
发送SIGTERM到容器,一定时间内没有停止,则会再送SIGKILL信号

docker skill
发送SIGKILL信号到容器

docker restart
重启容器

docker rm
移除容器

docker rm $(docker ps -a -q)
删除所有处于停止中的容器

docker build
构建一个新镜像

docker images
列出所有的镜像

docker rmi
移除镜像
3,单个容器运行多个服务进程
4,多个容器运行多个服务进程
5,备份在容器中运行的数据库
6,在宿主机和容器之间共享数据
7,在容器之间共享数据
8,对容器进行数据复制

二、Docker网络

Docker+K8s基础(重要知识点总结)-LMLPHP

1,查看容器的IP地址
  • 方式一
    docker inspect命令并指定一个Go模板格式
docker inspect --format '{{ .NetworkSettings.IPAddress }}' flask
  • 方式二
    docker exec 命令在容器内部执行命令
docker exec -ti flask ip add | grep global
  • 方式三
    查看容器内的 /etc/hosts 文件
docker exec -ti flask cat /etc/hosts | grep flask
  • 方式四
    进入容器中的 shell,输入标准的 Linux 命令
docker exec -ti flask bash || cat /etc/hosts
2,将容器端口暴露到主机上
  • 方式一
    docker run 命令的 -P 选项将容器内的端口动态绑定到宿主机上
docker run -d -p 5000 --name foobar flask
  • 方式二
    创建镜像时,在Dockerfile 中添加 EXPOSE 5000
docker run -d -P flask
3, 单主机容器间通信
  • 单台 Docker 主机网络拓扑图
    Docker+K8s基础(重要知识点总结)-LMLPHP
4,多主机容器间通信

多主机环构建一个通用路由封装(Generic Routing Encapsulation,GRE)来对 IPv4 通信进行封装,并为容器之间互连提供基于容器私有地址的路由

  • 两台主机 GRE 隧道覆盖网络图
    Docker+K8s基础(重要知识点总结)-LMLPHP
5,选择容器网络模式

docker run 命令的–net 选项

  • 模式一
    主机模式
    实例
docker run -it --rm --net=host ubuntu:14.04 bash
  • 模式二
    无网络模式
    实例
docker run -it --rm --net=none ubuntu:14.04 bash
  • 模式三
    与其他容器共享网络的模式
    实例
docker run -ti --rm --net=container:cocky_galileo ubuntu:14.04 bash
6,配置守护进程防火墙
7,IP转发设置
  1. 启用
echo 1 > /proc/sys/net/ipv4/ip_forward
  1. 禁用
echo 0 > /proc/sys/net/ipv4/ip_forward

三、Kubernetes

Docker+K8s基础(重要知识点总结)-LMLPHP

1,简称k8s
2,三大核心对象
3,增强功能
4,全新的概念

1.集群调度
选择一个节点来运行新容器,以优化集群的可靠性和利用率的过程

2.pod
必须将一组容器放置到同一个节点上,像一个团队一样工作

3.标签
添加到 pod 的元数据,用于对容器进行分组以进行监控和管理

4.replication controller
用于确保系统能进行水平扩展的代理(agent),也负责保证对 pod 进行可靠的管理

5.网络服务
一种用于在 pod 之间以及几组 pod 之间进行通信的方式,采用了动态配置的命名和网络代理

5,Kubernetes 架构

Docker+K8s基础(重要知识点总结)-LMLPHP

6,创建一个多节点的Kubernetes集群
7,在Kubernetes集群上启动容器
8,通过标签查询和删除Kubernetes对象
  • 打标签
  • 通过标签查询Kubernetes对象
  • 通过标签删除Kubernetes对象
9,管理pod的副本数

使用 replication controller为 pod 指定希望的副本数

实例

kubectl resize --replicas=4 rc rcgame
10,一个pod中运行多个容器
11-10 21:53