在找 自动化测试 框架的过程,准备在mac上搭建环境Kubernetes + docker,遇到一些问题,记录 一下
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。
Docker底层的核心技术包括Linux上的Namespace(命名空间),Cgroups(控制组,control groups),UFS(union file system)和Container format(容器格式)
大家虽然都共用一个内核和某些运行时环境(例如一些系统命令和系统库),但是彼此却看不见,都以为系统中只有自己的存在。这种机制就是容器(Container),利用Namespace(命名空间)来做权限的隔离控制,利用Cgroups(控制组,control groups)来做资源分配。
Docker client使用Docker API 跟 Docker daemon进行通信交互
处理Docker API 请求
管理Docker对象:如镜像、容器、网络等。
存储Docker镜像
镜像是用来创建容器的只读模板
容器是镜像的运行实例
可以理解为:images 是类 class, container 是对象object
client 和 host(deamon) 构成了 engine。在client(客户机器)上输入 docker 命令,这些命令发送给host(deamon)后会执行对应命令
使用Docker Compose可以
案例参加:Docker三十分钟快速入门(下)
Docker Machine是命令行(CLI)工具,通过它能简单的管理docker。
Docker Desktop是Windows和Mac上的工具软件
我们要想在产线去运行容器集群,那我们首先需要COE(Container Orchestration Engine)工具。COE的主要功能如下:
Docker swarm是docker的官方工具。同样,Kubernates也是干这事的,Kubernetes vs Docker Swarm:完整的比较指南
端口映射
$ docker container run -p 8000:3000 -it koa-demo /bin/bash
-p参数:容器的 3000 端口映射到本机的 8000 端口。
映射后,浏览器访问 127.0.0.1:8000,就会映射到 名为 koa-demo 3000端口上。具体案例参见:阮一峰的 Docker 入门教程
通过配置文件Dockerfile, 然后命令行编译 docker build 生成 image,具体案例参见:阮一峰的 Docker 入门教程
可以通过docker compose,案例参加:Docker三十分钟快速入门(下),docker compose只能管理本机的cotainer
docker, swarm 和Kubernates 可以管理集群
官方文档,非常简单
前提:安装了docker compose,用命令查看
docker compose --version
本地创建目录 wordpress, 然后 CD 到目录下,再执行命令
vi docker-compose.yml
本地若没有docker-compose.yml这个文件,将自动创建,将内容拷贝到文件里后 :wq 退出
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
然后执行命令
docker-compose up -d
成功后用命令
docker container ls
查看, wordpress是否已经运行,如果ok,打开浏览器 http://localhost:8000/,就可以看到网站了
Docker 30分钟入门
Docker入门,带命令说明,这篇讲的比较清楚
阮一峰的 Docker 入门教程
Docker 架构
docker官方文档
docker 英文资料
Kubernetes vs Docker – What Is the Difference?
前端领域的 Docker 与 Kubernetes
在Mac上启动kubernetes 的时候一直是 starting 状态,解决方案
docker 命令大全
kubernetes中文手册