docker容器开源的应用容器引擎(就是在隔离的环境中运行的一个进程)
容器就是在隔离的环境中运行一个进程,如果进城停止,容器就会推出。隔离的环境拥有自己的系统文件,IP地址,主机名等
程序:代码,命令进程:正在运行的程序
linux 容器技术,容器虚拟化和kvm虚拟化:
kvm虚拟化:需要硬件的支持
需要模拟硬件,可以运行不同的操作系统,启动时间分钟级(开机启动流程)
linux开机流程:
docker启动流程:
(秒级自检)公用宿主机内核
(不需要模拟虚拟机 直接使用物理资源)第一个进程直接启动服务
容器:共用宿主机内核,轻量级,损耗少,启动快,性能高,只能在linux系统上
节省成本docker(6台)=虚拟机(10台)
docker继承lxc特性(namespace隔离环境 cgroup 进程资源限制)
docker(软件打包技术) 主要知识点:
镜像 image (一堆文件打成包) 容器、仓库、网络、存储
docker 镜像管理命令
获取镜像:docker pull
查看镜像列表: docker images or docker images ls
删除镜像: docker image rm [镜像]
导出镜像: docker image save [镜像]
导入镜像: docker image load -i [镜像]
docker 容器:
docker run -d -p 80:80 nginx:latest
run (创建并运行一个容器)
-d 放后台
-p 端口映射
-v 源地址(宿主机):目标地址(容器)
docker run -it --name centos centos:6.9 /bin/bash
-it 分配交互式的终端
--name 指定容器的名字
/bin/bash 覆盖容器的初始命令
运行容器
docker run image_name
docker run == docker create +docker start
启动容器
docker start
停止容器
docker stop id
杀死容器
docker kill container_name
查看容器列表
docker ps (-a -l -q )
进入正在运行的容器
docker exec -it (会分配一个新的终端) 容器的名字或id /bin/bash
docker attach (使用同一个终端) 偷偷离开的快捷键 ctrl+p ctrl+q
删除容器
docker rm
批量删除容器
docker rm -f docker ps -a -q
docker 容器的网络访问(端口映射)
-p 多个容器都想使用80端口
随机端口
可以指定多个-p
-P 随机映射
docker 的数据卷管理
持久化 数据卷(文件或目录) -v 卷名:/data (第一次卷是空,会容器的数据复制到卷中,如果卷里面有数据,
把卷数据的挂载到容器中) -v src(宿主机的目录):dst(容器的目录) 数据卷容器 --volumes-from
(跟某一个已经存在的容器挂载相同的卷)
手动将容器保存为镜像
进入容器 下载应用
提交代码 运行代码
退出容器
将容器导出
将容器提交为镜像 docker commit [id] [container_name]
测试镜像功能是否可用
export命令用于设置或显示环境变量(从模块中到处函数、对象或者原始值)
net网络 nat转换(依赖于内核转发)
quit静默输出
wget 和 curl 的应用 场景 curl 由于自定义各种请求参数所以在模拟web请求方面更擅长;
wegt 由于支持ftp(文件传输协议,是tcp/ip协议中的协议之一),所以在下载文件方面更擅长
xargs
ps -ef 标准的格式显示进程的 ps aux使用BSD(边界扫描)的格式来显示
ps -ef 被用在 system V style 中
ps aux 用在unix style
iptables 规则
四表五链
filter:过滤,防火墙;
nat:网络地址转换;
mangle:拆解报文,作出修改,封装报文;
raw:关闭nat表上启用的连接追踪机制;
链(www.baidu.com)
dns 域名系统(服务)协议(DNS)是一种分布式网络目录服务,主要用于域名和ip之间的相互转换