需求
- 应用隔离
- 环境配置
- 安装部署
- 持续集成
- 持续发布
- DevOps
基本概念
Docker是一个用于 构建 运行 传送 应用程序的平台
Docker可以将 应用程序 和 它运行时所需要的 各种依赖包 第三方软件库 配置文件 等打包在一起,以便在任何支持Docker的环境中正确运行
Docker和虚拟机的区别
核心概念
Docker使用Client-Server架构模式,Docker Client 和 Docker Daemon 之间通过Socket或者RESTful API进行通信,Docker Daemon 就是服务端的守护进程,负责管理Docker的各种资源
- 镜像:一个只读模板
- 容器:一个镜像的运行实例。一个镜像可以有多个实例
- 仓库:存放镜像的地方,如Dockerhub
- 容器化:将应用程序打包成容器,然后在容器中运行应用程序的过程,步骤:
- 创建一个Dockerfile(告诉Docker构建应用程序镜像所需的步骤和配置)
- 使用Dockerfile构建镜像
- 使用镜像创建和运行容器
- Dockerfile:一个文本文件,里面包含一条条指令,用来告诉Docker如何来构建镜像,这个镜像包含了我们应用程序执行的所有命令(各种依赖、配置环境、运行应用程序所需要的所有内容),内容:
- 安装操作系统
- 安装运行环境
- 复制应用程序、依赖资源
- 执行启动命令运行程序
安装配置
常用命令
Dockerfile实践
- 编写Dockerfile
- 创建HelloDocker文件夹
- 文件夹内创建文件echoHelloDocker.sh,添加内容
#!/bin/bash echo Hello Docker- 文件夹内创建文件Dockerifle,添加内容
FROM baseImage COPY source(相对于Dockerfile) dest(相对于镜像) ENV <key> <value> CMD ["exec1", "parameter1", "parameter1", ...], ["exec2"], ....ARG GCC_VERSION=8 FROM ubuntu MAINTAINER swwl RUN apt update && apt install -y \ gcc-$GCC_VERSION \ automake \ build-essential && \ useradd -s /bin/bash -d /home/swwl -m swwl && \ echo 'swll ALL=NOPASSWD: ALL' > /etc/sudoers.d/swwl && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* USER swwl WORKDIR /home/swwl ADD poco-tmpp.tar.gz . RUN make -f ./poco-tmpp/Makefile - 创建镜像
docker build -t hellodocker .
docker images
- 启动容器
docker run hellodocker
-
上传镜像
-
下载镜像
docker pull lxr/hellodocker
Docker Compose & Kubernetes
Docker Compose:用于定义和运行多个Docker应用程序的工具,使用YAML文件来配置应用程序的服务,一条命令即可创建并启动所有服务