Docker 分享 201811
内容 目的: 了解并会使用容器 范围: 不深入高级议题 内容 Docker 是什么和为什么 Docker 的基本原理和架构 范围: 不深入高级议题 内容 Docker 是什么和为什么 Docker 的基本原理和架构 Docker 环境搭建和基本操作 一个简单完整的示例 高级议题和坑
Docker和容器的历史 Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器 引擎, 基于go语言并遵从Apache2.0协议开源, 托管在github上. 时间节点: 2013年 Docker和Container的关系 https://www.docker.com/
VM 和 Container
为什么Docker大热 移动互联网 云计算 Docker解决最后一公里问题 微服务 极致的体验 优点: 轻量级 沙箱 快速 scale out
为什么要学习Docker Docker 对于研发的意义 Docker 对于运维的意义 Docker 和大数据 BATJ等大厂都在用 系统的交付形式 系统的部署形式 运维模式的改变 简化开发环境
内容 目的: 了解并会使用容器 范围: 不深入高级议题 内容 Docker 是什么和为什么 Docker 的基本原理和架构 范围: 不深入高级议题 内容 Docker 是什么和为什么 Docker 的基本原理和架构 Docker环境搭建和基本操作 一个简单完整的示例 高级议题和坑
容器的基础 Linux通过6大Namespace, 就能在OS层面上同时运行多个相互独立的子系统. Linux 通过Cgroup技术可以对资源进行划分
Docker 组件架构
Docker 组件架构
分层文件系统
容器数据的持久化
Docker的几个术语 镜像 Image 容器 Container Dockerfile Registry Docker Daemon
内容 目的: 了解并会使用容器 范围: 不深入高级议题 内容 Docker 是什么和为什么 Docker 的基本原理和架构 范围: 不深入高级议题 内容 Docker 是什么和为什么 Docker 的基本原理和架构 Docker环境搭建和基本操作 一个简单完整的示例 高级议题和坑
安装 Linux :用于生产 Windows: 仅供开发 MacOS: 仅供开发 Windows 开发环境搭建 Windows 10高级版, 安装Docker for Windows 推荐: Windows 7/10, 安装Docker toolbox on Windows 下载地址 : https://www.docker.com/
Docker toolbox for Windows 虚机用户密码 docker/tcuser 包含: VM: Virtual Box GuestOS: Book2Docker Linux Docker相关GUI工具和命令行 Ssh 相关的一些命令行工具
docker-machine命令 作用: 创建和管理VM. docker-machine create --driver virtualbox dev docker-machine ls docker-machine ip dev
docker 命令行工具
https://hub.docker.com/ docker 命令行工具 作用: 有关镜像和容器的工具, 包含非常多的命令
docker 命令行工具 作用: 有关镜像和容器的工具, 包含非常多的命令
docker 命令行工具 作用: 有关镜像和容器的工具, 包含非常多的命令
docker 命令行工具 运行 hello-world 容器, 如果本地没有下载, 将会自动从hub站点下载. docker run hello-world 以守护态运行容器 docker run -d --name mybusybox busybox /bin/sh -c "while true; do echo hello world; sleep 1; done“ docker run -p 6699:6379 --name myredis -v $PWD/redis.conf:/etc/redis/redis.conf -v $PWD/data:/data -d redis:3.2 redis- server /etc/redis/redis.conf --appendonly yes
内容 目的: 了解并会使用容器 范围: 不深入高级议题 内容 Docker 是什么和为什么 Docker 的基本原理和架构 范围: 不深入高级议题 内容 Docker 是什么和为什么 Docker 的基本原理和架构 Docker环境搭建和基本操作 一个简单完整的示例 高级议题和坑
SpringBoot服务完整实例 步骤 开发一个SpringBoot Web程序 编写一个 Dockerfile 镜像制作和发布 容器部署
Dockerfile FROM openjdk:8-alpine ARG JAR_FILE COPY target/${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] # 必须指定暴露端口, 否则端口无法映射 EXPOSE 8080
Dockerfile docker build --build-args=target/*.jar -t myorg/myapp:v1 . 方法: 使用Maven mvn clean package dockerfile:build –DskipTests 方法: 直接用docker命令 docker build --build-args=target/*.jar -t myorg/myapp:v1 .
内容 目的: 了解并会使用容器 范围: 不深入高级议题 内容 Docker 是什么和为什么 Docker 的基本原理和架构 范围: 不深入高级议题 内容 Docker 是什么和为什么 Docker 的基本原理和架构 Docker环境搭建和基本操作 一个简单完整的示例 高级议题和坑
高级议题