docker
Contents
What’s the Diff: VMs vs Containers
virtualization
what: 将硬件资源重新分配, 将一套硬件资源虚拟成多套硬件资源 , 从而运行多个不同的操作系统
涉及的技术:
- resource managent: 分配硬件资源
- isolation: 隔离多个操作系统
- …..
types:
- 硬件虚拟化(hardware): hypervisor完成虚拟化
- 操作系统虚拟化(OS-level virtualization ): os 完成虚拟化
images:
differ:
-
虚拟的软件:
- hypervior
- os
-
isolation level:
- os level
- process level
docker: 基于linux实现
- namespace隔离 进程,文件系统,网络
- CGroups 隔离硬件资源(cpu,ram)
docker
docker package your application and all its dependencyies((including os)) together in a form of container so as to ensure that your application work seamlessly in any envirorment;
architecture
client-service;
- client;
- service:daemon
client->daemon: pull image from registry, run image
container, images
image: 运行程序所需要的 源文件, os 环境
container: 运行在一个独立os环境的进程
- a instance of a image
image example:
|
|
docker compose
what:
- 将docker run 的参数写入配置文件
- 同时执行 多个
docker volume
what: 数据持久化
types:
-
docker volume: 命名 and 匿名;
- docker 创建和管理, docker 有完全的权限
- 可以通过 docker 命令管理
- 适合非配置的数据
-
bind mount:
- 一般是用户创建的文件, docker 不一定有完全的权限
- 不可以通过docker命令管理
- 适合配置类型的数据
-
what? persiste data;
-
how
1 2 3 4
docker run -d \ --name=nginxtest \ -v nginx-vol:/usr/share/nginx/html \ nginx:latest
|
|
[registry-hostname[:port]/]namespace/repository[:tag]
|
|