笔记:这书很不推荐,内容浅显又特别能水
Docker Cookbook
docker kill SIGKILL信号 docker stop SIGTERM信号,一定时间内容器未停止会再发送SIGKILL信号
查看数据保存在宿主机上的位置 docker inspect -f {{.Mounts}} ID
docker image
- commit方式
- Dockerfile方式
查看在容器中对镜像做出的修改 docker diff ID
镜像的导入导出
docker export ID > update.tar docker import - update < update.tar
docker save -o update1.tar update docker load < update1.tar 区别:保存一个镜像会保留它的历史,而导出容器会对它的历史进行压缩。
CMD可以通过docker run
后面的参数来覆盖,而ENTRYPOINT只能通过docker run
的--entrypoint
参数来覆盖。
Dockerfile最佳实践
- 在每个容器中只运行一个进程
- 对容器的修改应该从基础镜像重新创建它
- 使用.dockerignore文件
- 利用docker hub官方镜像,不要重复造轮子
- 最大限度减少镜像层的数量,并利用镜像缓存的优点
获取容器IP
docker inspect –format ‘{{ .NetworkSettings.IPAddress }}’ ID
容器的端口映射通过两种机制实现
- 默认情况下Docker会修改宿主机的iptables规则
- Docker会在宿主机上启动一个轻量的代理程序。
查看容器链接 docker inspect -f “{.HostConfig.Links}}” ID
Docker容器网络
默认情况下,DOcker会在宿主机上创建一个名为docker0的Linux网桥设备。该设备拥有一个私有网络地址及其所属子网。分配给Docker网桥的子网地址为172.[17-31].42.1/16
、10.[0-255].42.1/24
、192.168.[42-44].1/24
中第一个没有被占用的子网地址。容器链接到网桥的网络接口会把docker0网络设备作为网关。
借助于Linux的IP转发功能和Docker引擎所管理的iptables规则,Docker为容器提供了对外部网络和NAT功能的访问
确认IP转发功能已开启cat /proc/sys/net/ipv4/ip_forword
为1则是开启
Docker的三种网络模式
- 网桥(默认)
- 主机模式
- 无网络模式
- 与其他容器共享网络
pipework weaveworks
远程访问Docker
修改docker配置/etc/default/docker
|
|
|
|
kubernetes
功能
- 容器编排
- 可靠的容器重启
- 自愈
- 高集群利用率
- 组织和分组
- 水平扩展和复制
- 微服务友好
- 简化运维
kubernetes架构
- kubernetes master包括(API server、Scheduler、Controller Mgr)。提供了API来收集和展现集群当前状态,并在节点之间分配pod。大多数用户将始终与master API直接交互
- 主节点存储(etcd)。目前k8s的所有持久化状态都保存在etcd中
- kubelet。agent运行在每个节点智商,负责控制Docker,向master报告自己的状态
- kubernetes proxy。运行在每个节点智商,为本地容器提供了一个单一的网络接口,以连接到一组pod
查看容器状态docker stats ID