- 基本概念定义
- 基本组成
- 客户端/守护进程
- C/S架构
- 本地/服务器
- 镜像
- 容器基石
- 只读文件系统
- 联合加载(union mount)
- 容器
- 通过镜像启动
- 执行
- 写时复制
- 仓库
- 公有
- docker hub
- 私有
- 公有
- 相关技术简介
- 依赖的Linux内核特性
- Namespace 命名空间 LXC Kernel Namespace
- 封装 -> 代码隔离->资源隔离
- PID 进程隔离 独立进程表
- NET 管理网络接口 network info
- IPC 进程通信 额外信息标记
- MNT 挂载点
- UTS 隔离内核和版本标识 hostname domain
- Users 用户
- Cgroup 控制组 分配资源 资源限制 CPU 内存
- 资源限制
- 优先级设定
- 资源计量
- 资源控制
- chroot 隔离根文件系统
- 客户端/守护进程
- 基本组成
- 基本操作
- 启动容器 docker run Image
- 交互 docker run -i -t Image /bin/bash
- -name
- 查看进程 docker ps/top [-a ] / [-l]
- 详细信息 docker inspect +id /+ name
- 交互 docker run -i -t Image /bin/bash
- 启动停止容器 docker start -i name/id
- 删除容器 docker rm 删除已停止容器
- 启动容器 docker run Image
- 守护形式运行容器(长期运行)
- 退出crtl +p ctrl+q
- 重新进去 sudo docker attach +id/name
- 后台执行 docker run -d
- 查看容器日志(内部运行情况) docker logs [-f一直跟踪] [-t 加时间] [--tail最新] 名字
- 查看运行中容器进程 docker top + id/name
- 在运行容器(已启动)中启动运行新进程 docker exec [-d] [-i] [-name]
- 停止运行中的容器 docker stop 发结束信号停止 /kill 直接快速停止
- 部署静态网站
- 容器端口映射 run -P 全部 /-p 指定
- 安装nginx vim
- 停止后会重新分配IP
- 查看和删除镜像
- docker info 查看信息,包含存储驱动
- 列出镜像 docker images -a(所有中间层+其他镜像)/-f 过滤条件/--no-trunc(完整的ID) /-q 只查看唯一ID
- 仓库:REPOSITORY 仓库 (一系列关联镜像集合) 组件仓库 REGISTRY(一个一个独立镜像) 标签TAG +仓库名字 =独立镜像
- docker rmi -f 强制/ --no-prune 保留父镜像
- 获取推送镜像
- docker search --no-trune/-s 3
- docker login 应该先登录
- docker pull -a / --registry-mirror
- 1. /etc/default/docker 修改 2 . 添加 DOCKER_OPTS ="-registry-mirror = http://MIRROR-ADDR"
- http://www.daocloud.io 获取镜像连接(更改2)
- docker push
- 构建镜像
- docker commit -a 作者/ -m 提交信息/-p 暂停
- docker build -t 标签 -q 不显示中间过程 利用Dockerfile创建
- Docker c/s模式
- Remote API CS 可远程
- 三种连接方式 1.unix :///var/rundocker.sock (默认) 2.tcp://host:port 3.fd://socketfd
- 命令
- 服务连接相关 sdocker -d -D - H(host)
- Remote API相关
- 网络设置相关 --ip = 0.0.0.0
- 仓库相关
- 存储相关
- 启动配置文件 /etc/defaut/docker 修改后 要重启服务
- 远程访问
- 修改/etc/defaut/docker 添加 - H tcp://0.0.0.0:2375
- export DOCKER_HOST = "tcp://0.0.0.0:2375" 可修改远程 export DOCKER_HOST =" " 置空
- -H 选项可多个添加
- Dockerfile 指令
- FROM 基础镜像
- MAINTAINER 作者信息
- RUN 运行命令
- shell模式 RUN <command> exec模式 RUN ["executable", "param1", "param2"] 运行其他shell
- EXPOSE <> 多个端口 不能自动需再添加
- CMD (指定命令,参数,容器运行时默认行为 类似RUN, 会被覆盖) ENTERPOINT(跟CMD一样 )
- ADD <src> ...<dest> (包含解压缩功能) COPY<src>..<dest>(普通复制推荐) VOLUME ["/data"] 共享数据
- WORKDIR /绝对路径 设置工作目录 ENV <key><value> <key>=<value> 环境变量
- USER daemon 用户/用户组/默认root ONBUILD [INSTRUCTION] 镜像触发器
- Dockfile 构建过程
- 运行基础镜像 执行指令 提交 删除中间层容器(不删镜像)
- 可以通过调试中间层镜像
- 自动构建缓存 添加--no-cache 不构建缓存 ,刷新 | ENC REFRESH_DATE 2019-05-01修改时间就可刷新
- docker hsitory 查看镜像构建过程
- 网络连接
- 网络基础
- Docker0 提供虚拟网桥 可以设置IP地址 相当于虚拟网卡
- 建立虚拟网侨 brctl addbr br0 && ifconfig br0 192.168.2.100 netmask 255.255.255.0
- 修改默认配置 -b=br0 重启容器
- 互联
- 默认允许所有容器互联
- --icc =ture 全部可ping 通,同一个虚拟网桥,IP不可靠连接(ip变化)
- --link = cct1:webtest(别名) 环境变量env自动更新webtest,hosts也自动更新 wetest
- 拒绝连接
- --icc =false更改默认配置 全部拒绝
- 特定连接
- --icc =false --iptables=true --link 只允许link配置的容器连接
- 默认允许所有容器互联
- 连接外部网络
- --ip-forword=true 允许流量转发 查看 sysctl net.ipv4.all.forwarding
- iptables linux包过滤防火墙 系统
- 表table nat fitter mango
- 链chain INPUT FORWARD
- 规则rule ACCEPT REJRECT DRON
- 允许端口映射访问
- ‘限制IP访问容器
- 网络基础
- 数据管理
- 数据卷
- 独立于UFS 数据共享 不会因容器关闭而消失 放在host主机中
- docker run -it -v ~/datavalume:/data ubuntu /bin/bash
- 添加权限 docker run -it -v ~/datavalume:/data:ro ubuntu /bin/bas
- dockerfile 生成同名的数据卷是不同地址,故不能共享数据
- 数据卷容器
- 挂载数据卷容器 docker run -it --volume-from 镜像名字
- 及时删除了基类数据卷容器 ,不受影响, 数据卷不受容器影响
- 数据备份还原,迁移
- docker run -it --volume-from image -v $(pwd)/data:/data: wr ubuntu tar cvf /data/dvt5.tar /data/datavolume1 (压缩,解压缩类似)
- 数据卷
- 跨主机连接
- 使用网桥
- 两主机 管理工具bridge-utils 同一网段
- 修改 /etc/network/interfaces | address network gateway bridge_port( eth0)
- 修改 /etc/default/docker |-b = br0 --fixed-cidr
- 优点 配置简单,不依赖 缺点:同网段 划分网段,不易实现和管理
- Open vSwitch 通常使用 apache2.0许可 虚拟开源多层交换机 gre 通用路由协议,隧道技术
- openvswitch - switch |网桥工具 bridge-utils
- 建立ovs网桥 |添加gre连接 |配置虚拟网桥 OVS接口
- weave 开源项目
- 安装启动weave 增加执行权限|weave launch 192.168.59.103(第一台电脑ip)
- c2id=$(weave run 192.168.2/24(分配ip地址) -it Ubuntu /bin/bash)
- 使用网桥
原文地址:https://www.cnblogs.com/xiaote/p/10849797.html
时间: 2024-10-08 21:55:53