Home | 简体中文 | 繁体中文 | 杂文 | 知乎专栏 | Github | OSChina 博客 | 云社区 | 云栖社区 | Facebook | Linkedin | 视频教程 | 打赏(Donations) | About
知乎专栏多维度架构 微信号 netkiller-ebook | QQ群:128659835 请注明“读者”

Netkiller Virtualization 手札

Docker, KVM, OpenVZ, Vagrant, VirtualBox ...

Mr. Neo Chan, 陈景峯(BG7NYT)



中国广东省深圳市望海路半岛城邦三期
518067
+86 13113668890


2015-07-14

电子书最近一次更新于 2020-10-10 04:59:34 .

版权声明

转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。

http://www.netkiller.cn
http://netkiller.github.io
http://netkiller.sourceforge.net
微信订阅号 netkiller-ebook (微信扫描二维码)
QQ:13721218 请注明“读者”
QQ群:128659835 请注明“读者”

$Date$

2020-10-10 04:59:34

内容摘要

本文档讲述Linux系统涵盖了系统管理与配置包括:

[注意]对初学Linux的爱好者忠告

玩Linux最忌reboot(重新启动)这是windows玩家坏习惯

Linux只要接上电源你就不要再想用reboot,shutdown,halt,poweroff命令,Linux系统和应用软件一般备有reload,reconfigure,restart/start/stop...不需要安装软件或配置服务器后使用reboot重新引导计算机

在Linux系统里SIGHUP信号被定义为刷新配置文件,有些程序没有提供reload参数,你可以给进程发送HUP信号,让它刷新配置文件,而不用restart.通过pkill,killall,kill 都可以发送HUP信号例如: pkill -HUP httpd

我的系列文档:

操作系统

Netkiller Linux 手札 Netkiller FreeBSD 手札 Netkiller Shell 手札
Netkiller Security 手札 Netkiller Web 手札 Netkiller Monitoring 手札
Netkiller Storage 手札 Netkiller Mail 手札 Netkiller Virtualization 手札
Netkiller Cryptography 手札   

以下文档停止更新合并到 《Netkiller Linux 手札》

Netkiller Debian 手札 Netkiller CentOS 手札 Netkiller Multimedia 手札    

致读者

Netkiller 系列电子书始于 2000 年,风风雨雨走过20年,将在 2020 年终结,之后不在更新。作出这种决定原因很多,例如现在的阅读习惯已经转向短视频,我个人的时间,身体健康情况等等......

感谢读者粉丝这20年的支持

虽然电子书不再更新,后面我还会活跃在知乎社区和微信公众号

目录

1. 自述
1.1. 写给读者
1.2. 作者简介
1.3. 如何获得文档
1.4. 打赏(Donations)
1.5. 联系方式
1. Docker
1.1. Installation
1.1.1. CentSO 8
1.1.2. CentOS 6
1.1.3. CentOS 7 docker-ce
1.1.4. Ubuntu
1.1.5. Ubuntu docker-ce
1.1.6. 测试 Docker
1.1.7. 重置 Docker
1.2. 配置 Docker
1.2.1. 开启远程访问
1.2.2. 镜像配置
1.2.2.1. 临时选择镜像
1.2.2.2. 切换国内镜像
1.2.3. 操作系统
1.2.3.1. /etc/hosts 配置
1.2.3.2. sysctl
1.2.3.3. ulimits
1.3. 镜像
1.3.1. 搜索镜像
1.3.2. 获取镜像
1.3.3. 列出本地镜像
1.3.4. tag
1.3.5. 保存和载入镜像
1.3.6. 删除本地镜像
1.3.7. history 镜像历史纪录
1.3.8. 基于 Dockerfile 创建镜像
1.3.8.1. 创建 Dockerfile 文件
1.3.8.2. 创建镜像
1.3.8.3. 运行镜像
1.3.8.4. 测试 Nginx
1.3.8.5. 提交镜像
1.3.8.6. Dockerfile 语法
1.3.8.6.1. COPY
1.3.8.6.2. EXPOSE
1.4. 容器
1.4.1. 查看容器
1.4.2. 启动与终止容器
1.4.3. 进入容器
1.4.4. 导出和导入容器
1.4.4.1. Ubuntu
1.4.4.2. Mac 导出与导入
1.4.5. 停止所有容器
1.4.6. 删除容器
1.4.7. 向 /etc/hosts 文件内添加主机名
1.4.8. 设置环境变量
1.5. 卷管理
1.5.1. 列出卷
1.5.2. 创建卷
1.5.3. 挂在镜像
1.5.4. 检查卷
1.5.5. 删除卷
1.5.6. 销毁所有未使用的卷
1.5.7. 在多个容器间共享卷
1.5.8. 容器绑定本地文件系统
1.5.9. 只读权限
1.6. 仓库
1.6.1. Docker 官方仓库
1.6.1.1. 登陆仓库
1.6.1.2. 获取镜像
1.6.1.3. 上传镜像
1.6.2. 私有仓库
1.6.2.1. 搭建私有仓库
1.6.2.2. 推送镜像到私有仓库
1.6.2.3. 查询镜像
1.6.2.4. registry 镜像高级配置
1.6.2.4.1. 私有仓库认证
1.6.2.5. registry 接口
1.6.3. Harbor
1.7. Swarms
1.7.1. 管理 Swarms
1.7.1.1. 查看 Swarms 版本
1.7.1.2. 初始化 Swarms
1.7.1.3. 显示 join-token
1.7.1.4. 创建虚拟机
1.7.1.5. 显示虚拟机列表
1.7.1.6. 设置管理节点
1.7.1.7. 环境变量
1.7.1.8. 切换节点
1.7.1.9. 启动/停止节点
1.7.1.10. 离线
1.7.2. Stack
1.7.3. 服务
1.7.3.1. 创建 Service
1.7.3.2. 删除 Service
1.7.3.3. inspect
1.7.4. Docker 网络
1.7.4.1. 创建 overlay 网络
1.7.5. 共享卷
1.8. docker 命令
1.8.1. docker - A self-sufficient runtime for containers
1.8.1.1. 查看 docker 信息
1.8.1.2. run
1.8.1.3. start / stop / restart
1.8.1.4. ps
1.8.1.5. top
1.8.1.6. inspect
1.8.1.6.1. 获取容器名称
1.8.1.6.2. 容器镜像名称
1.8.1.6.3. 获取容器主机名 Hostname
1.8.1.6.4. 查询 IP 地址
1.8.1.6.5. 容器日志
1.8.1.6.6. 获取 json 配置
1.8.1.6.7. 函数
1.8.1.6.8. 综合查询
1.8.1.7. images
1.8.1.7.1. Getting a new image
1.8.1.8. logs
1.8.1.9. 重置 Docker
1.8.1.10. 仓库操作
1.8.1.10.1. 登陆
1.8.1.10.2. 注销
1.8.1.11. build
1.8.1.12. 网络管理
1.8.2. docker-compose - Define and run multi-container applications with Docker.
1.8.2.1. 安装 docker-compose
1.8.2.1.1. 使用 pip 安装
1.8.2.1.2. OSCM 安装
1.8.2.2. 快速入门
1.8.2.3. 启动/停止
1.8.2.3.1. 启动
1.8.2.3.2. 停止
1.8.2.4. 查看进程
1.8.2.5. 查看日志
1.8.2.6. 执行命令
1.8.2.7. docker-compose.yml
1.8.2.7.1. 版本号
1.8.2.7.2. 镜像
1.8.2.7.3. 映射端口的标签
1.8.2.7.4. 添加 hosts 文件
1.8.2.7.5. 设置环境变量
1.8.2.7.6. 临时文件系统
1.8.2.7.7. 编译 Dockerfile
1.8.2.7.8. resources 硬件资源分配
1.9. Docker Example
1.9.1. registry
1.9.1.1. Auth + SSL
1.9.2. Example Java - Spring boot with Docker
1.9.2.1. 获取 CentOS 7 镜像
1.9.2.2. 安装 openjdk
1.9.2.3. Spring boot 包
1.9.2.4. 启动 Spring boot 项目
1.9.2.5. 基于 CentOS 7 制作 spring 镜像
1.9.3. Redis
1.9.3.1. Docker 命令
1.9.3.1.1. 获取 Redis 镜像
1.9.3.1.2. 启动一个 Redis 实例
1.9.3.1.3. 进入 Redis
1.9.3.1.4. 启动一个 Redis 实例并映射 6379 端口
1.9.3.1.5. 维护容器
1.9.3.2. Docker compose
1.9.3.3. Docker Stack
1.9.4. Nginx
1.9.4.1. nginx:latest
1.9.4.2. 安装 Docker Nginx alpine
1.10. Docker FAQ
1.10.1. 检查 Docker 是否可用
1.10.2. Bitnami
1.10.3. 删除 <none> 镜像
2. Kubernetes
2.1. Minikube
2.1.1. CentOS 8 安装 minikube
2.1.1.1. CentOS
2.1.1.1.1. 无虚拟机
2.1.1.2. Mac OS
2.1.2. Quickstart
2.1.3. minikube 命令
2.1.3.1. 启动 minikube
2.1.3.1.1. 虚拟机驱动
2.1.3.1.2. 开启GPU
2.1.3.1.3. 日志输出级别
2.1.3.1.4. CPU 和 内存分配
2.1.3.1.5. 指定 kubernetes 版本
2.1.3.1.6. 配置启动项
2.1.3.1.7. 指定 registry-mirror 镜像
2.1.3.1.8. 指定下载镜像
2.1.3.2. 停止 minikube
2.1.3.3. Docker 环境变量
2.1.3.4. SSH
2.1.3.5. 缓存镜像
2.1.3.6. 清理 minikube
2.1.3.7. Kubernetes 控制面板
2.1.3.8. service
2.1.3.9. 查看日志
2.1.3.10. 查看 Docker 环境变量
2.1.3.11. profile
2.1.3.12. addons
2.1.3.12.1. 启用 addons
2.1.3.12.2. 查看 addons 列表
2.1.3.13. SSH
2.1.3.14. 查看IP地址
2.1.3.15. addons
2.1.3.15.1. 查看所有插件
2.1.3.15.2. 开启 registry 私有库
2.1.3.15.3. 启用 ingress
2.1.4. FAQ
2.1.4.1. This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory
2.1.4.2. ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables
2.1.4.3. ERROR ImagePull
2.1.4.4. 证书已存在错误
2.1.4.5. http: server gave HTTP response to HTTPS client
2.1.4.6. provided port is not in the valid range. The range of valid ports is 30000-32767
2.1.4.7. Exiting due to MK_ENABLE: run callbacks: running callbacks: [verifying registry addon pods : timed out waiting for the condition: timed out waiting for the condition]
2.2. microk8s
2.2.1. 安装 microk8s
2.2.2. kubectl
2.2.3. Kubernetes Addons
2.2.3.1. dashboard
2.3. kubectl - controls the Kubernetes cluster manager.
2.3.1. 如何从 docker 过渡到 kubectl 命令
2.3.2. 查看信息
2.3.2.1. api-versions
2.3.2.2. 节点
2.3.2.2.1. nodes
2.3.2.3. 查询集群状态
2.3.2.4. config
2.3.2.4.1. use-context
2.3.2.5. cluster-info
2.3.3. pods
2.3.3.1. 查看所有POD
2.3.3.2. 运行 POD
2.3.3.3. pod
2.3.3.4. 删除 pod
2.3.3.5. 查看 Pod 的事件
2.3.4. expose
2.3.5. 服务管理
2.3.5.1. 列出服务
2.3.5.2. 查看服务详细信息
2.3.5.3. 更新服务
2.3.5.4. 删除服务
2.3.5.5. clusterip
2.3.5.6. externalname
2.3.5.7. loadbalancer
2.3.5.8. nodeport
2.3.5.9. serviceaccount
2.3.6. 部署管理
2.3.6.1.
2.3.6.2. 删除 deployment
2.3.7. 资源管理
2.3.8. 查看 pod 日志
2.3.9. 执行 Shell
2.3.10. edit
2.3.11. rollout
2.3.12. port-forward 端口映射
2.3.13. secret 密钥管理
2.3.13.1.
2.3.13.2. Private Registry 用户认证
2.3.13.3. 配置TLS SSL
2.3.14. ConfigMap
2.3.14.1. 创建 Key-Value 配置项
2.3.14.2. 从文件创建 ConfigMap
2.3.14.3.
2.3.14.4. 查看 ConfigMap
2.3.14.5. 删除 ConfigMap
2.3.15. Job/CronJob
2.3.15.1. CronJob
2.3.16. explain
2.3.16.1. ingress
2.4. Rancher - Multi-Cluster Kubernetes Management
2.4.1. 安装
2.4.1.1. Ubuntu
2.4.1.2. SSL 证书
2.4.1.3. 进入容器
2.4.1.4. Rancher CLI
2.4.1.5. rancher-compose
2.4.2. 快速入门
2.4.2.1. API
2.4.3. Rancher CLI
2.4.3.1. 登陆 Rancher
2.4.3.2. 查看集群
2.4.3.3. 查看节点
2.4.3.4. catalog
2.4.3.5. 查看设置
2.4.4. Rancher Compose
2.4.4.1. Rancher Compose 命令
2.4.4.2. 操作演示
2.4.5. Rancher Kubernetes Engine (RKE)
2.4.6. Rancher CLI
2.4.7. 调试
2.4.8. FAQ
2.4.8.1. [network] Host [rancher.netkiller.cn] is not able to connect to the following ports: [rancher.netkiller.cn:2379]. Please check network policies and firewall rules
2.5. Helm - The package manager for Kubernetes
2.5.1. 安装 Helm
2.5.1.1. Ubuntu
2.5.1.2. Mac
2.5.2. 快速开始
2.5.3. Helm 命令
2.5.3.1. 初始化 Helm
2.5.3.2. 查看仓库列表
2.5.3.3. 搜索
2.5.3.4. 查看包信息
2.5.3.5. 安装
2.5.3.6. 列表
2.5.3.7. 删除
2.5.3.8. 升级
2.5.3.9. 回滚
2.5.3.10. 查看状态
2.5.4. Helm Faq
2.6. kubectl example
2.6.1. 私有 registry
2.6.2. mongodb
2.6.3. tomcat
2.7. Kubectl YAML
2.7.1. 创建命名空间
2.7.2. Pod
2.7.2.1. 指定主机名
2.7.2.2.
2.7.2.3. 健康状态检查
2.7.3. Service
2.7.3.1. 创建服务
2.7.3.2. 查看服务
2.7.3.3. 设置外部IP
2.7.3.4. 绑定外部域名
2.7.3.5.
2.7.3.6. nodePort
2.7.3.7. LoadBalancer
2.7.3.8. Example
2.7.4. ConfigMap
2.7.4.1. Key-Value 配置
2.7.4.2. 环境变量
2.7.4.3. 配置文件
2.7.5. Volume
2.7.5.1. local
2.7.5.1.1. 案例
2.7.6. Job
2.7.6.1. 执行单词任务
2.7.6.2. 计划任务
2.7.7. Ingress
2.7.7.1. 端口
2.7.7.2. URI 规则
2.7.7.3. vhost 虚拟主机
2.7.7.4. rewrite
2.7.7.5. annotations 配置
2.7.7.5.1. HTTP 跳转到 HTTPS
2.7.7.5.2. server-snippet
2.7.7.6. 管理 Ingress
2.8. Kubeapps
3. Virtual Machine(虚拟机)
3.1. Kernel-based Virtual Machine(KVM)
3.1.1. kvm install usage yum
3.1.1.1. brctl / tunctl
3.1.1.2. virt-install
3.1.2. Ubuntu
3.1.3. CentOS 6.2
3.1.4. Scientific Linux Virtualization
3.1.5. libvirt
3.1.5.1. virsh
3.1.5.1.1. console
3.1.5.1.2. dumpxml
3.1.5.2. Virtual Machine Manager
3.1.6. FAQ
3.1.6.1. No hypervisor options were found for this connection
3.1.6.2. 如何判断当前服务器是实体机还是虚拟机
3.2. Xen
3.2.1. install
3.2.2. Manager
3.3. OpenVZ
3.3.1. 安装OpenVZ
3.3.2. 使用OpenVZ & 建立VPS
3.3.2.1. 安装操作系统模板
3.3.2.2. 创建OpenVZ操作系统节点(VPS)
3.3.3. 设置VPS参数
3.4. vagrant - Tool for building and distributing virtualized development environments
3.4.1. vagrant for windows
3.5. 虚拟机管理
3.5.1. Proxmox - Open-source virtualization management platform Proxmox VE
3.5.2. OpenStack
3.5.3. CloudStack
3.5.4. OpenNode
3.5.5. OpenNEbula

范例清单

2.1. minikube 操作演示
3.1. virsh