想试试Docker?六分钟入门学习

开发时,咱们老是会碰到这样一些问题:

  • 在多台服务器重复安装同一个环境
  • 开发时项目在本地正常运行,一放到服务器上就挂了
  • 测试人员提的bug,在本身的电脑上并无出现,怀疑是环境问题和测试员左右争辩
  • 测试数据不隔离,因数据问题产生错误
  • 管理环境配置文件麻烦

为了解决以上问题,咱们但愿能够这样:

  • 经过简单的几条命令,就能配置好运行环境
  • 服务之间能够自由组合,自定义特殊环境需求
  • 义正词严的接受测试员抛过来的bug

幸运的是,docker实现了咱们的愿望。 docker甚至在部分状况下,搭建环境就和安装app同样简单,只须要一条命令行就可让服务跑起来。html

例如要搭建一个nginx文件服务:python

docker run -v build:/etc/nginx/html -p 80:80 nginx
复制代码

不只过程极其简单,屡次重复尝试,运行的结果也能保持一致。nginx

一个简单的网站

docker官方提供了一个新手示例git

项目目录结构
|-- templates // 页面模版
  |-- index.html
|-- Dockerfile // docker镜像配置文件
|-- app.py // python服务入口文件
|-- requirements.txt // python依赖文件
复制代码

自定义一个应用,是经过配置Dockerfile来实现的:github

# 依赖的镜像
FROM alpine:3.5

# 安装 python 和 pip
RUN apk add --update py2-pip

# 更新 pip
RUN pip install --upgrade pip

# 安装应用须要的python依赖包
COPY requirements.txt /usr/src/app/
RUN pip install --no-cache-dir -r /usr/src/app/requirements.txt

# 复制应用运行须要用到的文件
COPY app.py /usr/src/app/
COPY templates/index.html /usr/src/app/templates/

# 容器须要暴露给外部的接口
EXPOSE 5000

# 运行应用
CMD ["python", "/usr/src/app/app.py"]
复制代码

在项目根路径执行构建镜像命令:docker

docker build -t app:1.0 .
复制代码

成功后,就可使用生成的镜像运行应用了:flask

docker run -p 80:5000 app:1.0
复制代码

当咱们开始完整尝试用docker部署项目时,会遇到各类须要google的问题:bash

  • 多个服务的容器之间是如何联系的?
  • Dockerfilevolume为何没法实现run命令 -v的效果?
  • CMDENTRYPOINT 有什么区别?
  • 构建镜像时,项目编译速度异常的慢怎么办?等等

相关文章
相关标签/搜索