Docker实战:使用Docker部署Web应用程序

Docker实战:使用Docker部署Web应用程序

【免费下载链接】labs This is a collection of tutorials for learning how to use Docker with various tools. Contributions welcome. 【免费下载链接】labs 项目地址: https://gitcode.com/gh_mirrors/la/labs

前言

在掌握了Docker基础操作后,我们将进入实战环节 - 使用Docker部署Web应用程序。本文将从静态网站部署开始,逐步深入到自定义镜像构建,帮助开发者全面理解Docker在Web应用部署中的应用。

静态网站容器化部署

准备工作

首先我们从最简单的静态网站开始。Docker官方提供了一个名为dockersamples/static-site的示例镜像,非常适合初学者练习。

运行静态网站容器

执行以下命令启动容器:

docker run -d dockersamples/static-site

这里使用了-d参数让容器在后台运行(detached模式)。由于镜像是首次使用,Docker会自动从仓库拉取。

端口映射问题

初次运行后你会发现无法访问网站,这是因为我们没有指定端口映射。Docker容器默认是隔离的环境,需要显式地将容器端口映射到主机端口。

正确运行方式

先停止并移除之前的容器:

docker stop <容器ID>
docker rm <容器ID>

然后使用以下命令重新运行:

docker run --name static-site -e AUTHOR="你的名字" -d -P dockersamples/static-site

参数说明:

  • --name:为容器命名
  • -e:设置环境变量
  • -P:自动映射所有暴露的端口到主机随机端口

访问网站

使用docker port static-site查看端口映射情况,然后在浏览器访问对应的主机端口即可看到网站。

深入理解Docker镜像

镜像基础概念

Docker镜像是容器的基础,类似于面向对象中的"类"。可以通过docker images查看本地镜像列表。

镜像分为几种类型:

  1. 基础镜像:没有父镜像,通常是操作系统镜像
  2. 子镜像:基于基础镜像构建,添加了额外功能
  3. 官方镜像:由Docker官方维护
  4. 用户镜像:由用户创建并分享

镜像版本管理

与Git类似,Docker镜像也有版本控制。默认使用latest标签,但可以指定特定版本:

docker pull ubuntu:18.04

构建自定义镜像

项目准备

我们将构建一个展示随机猫咪图片的Flask应用镜像。创建项目目录结构如下:

flask-app/
├── app.py
├── requirements.txt
├── templates/
│   └── index.html
└── Dockerfile

Flask应用代码

app.py是应用主文件,从预设的URL列表中随机选择一张猫咪图片展示。

requirements.txt指定了Python依赖(Flask框架)。

templates/index.html是网页模板,定义了展示样式。

Dockerfile详解

Dockerfile是构建镜像的蓝图,我们基于轻量级的Alpine Linux构建:

# 基础镜像
FROM alpine:3.5

# 安装Python和pip
RUN apk add --update py2-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"]

构建与运行

在Dockerfile所在目录执行构建:

docker build -t my-flask-app .

运行容器:

docker run -p 5000:5000 my-flask-app

现在访问http://localhost:5000就能看到随机猫咪图片了!

总结

通过本文,我们学习了:

  1. 使用现有镜像部署静态网站
  2. 理解Docker镜像的基本概念
  3. 编写Dockerfile构建自定义镜像
  4. 部署Python Flask应用

这些技能是使用Docker部署Web应用的基础,掌握了它们,你就已经迈入了容器化部署的大门。

【免费下载链接】labs This is a collection of tutorials for learning how to use Docker with various tools. Contributions welcome. 【免费下载链接】labs 项目地址: https://gitcode.com/gh_mirrors/la/labs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值