为了账号安全,请及时绑定邮箱和手机立即绑定

Docker项目实战:从零开始搭建你的第一个Docker容器

概述

Docker 是一种开源的容器化平台,它允许开发者将应用及其依赖打包成可移植的容器,提供了应用部署的标准化方式。Docker 的核心价值在于简化应用的部署、迁移和运行,让开发者能够专注于应用本身的开发,而无需过多关注运行环境的细节。使用 Docker,你可以确保应用在任何环境中都能以相同的方式运行,显著提高了应用部署的效率和跨环境的一致性。

容器化、标准化部署与跨环境一致性

Docker 通过容器化技术将应用与运行时环境分离,使得应用能够在不同环境中以一致的方式运行。这种标准化部署不仅减少了环境配置的复杂性,还大大提高了应用开发与部署的效率。Docker 提供的仓库机制进一步增强了组件的可重用性,简化了应用间的协作与共享。

Docker基本概念

镜像(Image)

Docker 镜像是一个只读模板,包含了运行应用所需的所有元素,如操作系统、运行时、应用代码和依赖库等。每个镜像都定义了容器运行时需要的所有组件,通过从基础镜像中构建,可以轻松添加、更新或移除依赖。

容器(Container)

容器是基于镜像创建的运行实例。它在镜像的基础上运行,拥有独立的文件系统、网络和进程隔离。每个容器都能运行任意镜像内的应用,且各个容器之间互不影响。容器的轻量级特性使得它成为快速启动应用、进行开发测试及部署的理想选择。

仓库(Repository)

仓库是镜像的存储库,用于集中管理镜像。Docker Hub 是最知名的公共仓库,用户可以上传、下载或创建私有仓库,以方便管理和共享镜像。

Docker安装与配置

为了开始使用 Docker,你需要在本地计算机上安装 Docker 并进行基本的配置,以确保能够顺利地创建、运行和管理容器。

安装 Docker

在 Windows、macOS 和 Linux 上,你可以从 Docker 的官方网站下载对应的安装包并进行安装。安装过程中注意选择添加“Docker Desktop”组件,以便获得与 Windows 或 macOS 相匹配的功能。

配置环境变量

在 Linux 或 macOS 上,你可能需要设置 DOCKER_HOST 环境变量,以指定 Docker 服务的通信方式。通常,可以通过编辑 .bashrc.zshrc 文件添加以下内容:

export DOCKER_HOST=tcp://192.168.99.100:2376

替换 192.168.99.1002376 为你实际的 Docker 主机地址和端口。

编写Dockerfile

Dockerfile 是用于自动构建 Docker 镜像的文本文件。它包含了构建镜像所需的所有指令。下面通过一个简单的例子来说明如何编写 Dockerfile。

示例 Dockerfile 内容

假设我们想要构建一个包含 Python 3.9 的基础镜像,我们可以创建一个名为 Dockerfile 的文件,并添加以下内容:

# 使用官方 Python 镜像作为基础镜像
FROM python:3.9

# 设置工作目录
WORKDIR /app

# 将本地代码复制到镜像中
COPY . /app

# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

# 设置环境变量
ENV PATH="$PATH:/opt/extra-dir"

# 暴露端口
EXPOSE 8000

# 启动应用
CMD ["python", "app.py"]

执行构建

在包含 Dockerfile 的目录中,运行以下命令来构建镜像:

docker build -t my-python-app .

这里,-t 参数用于指定镜像的标签,my-python-app 是你创建的镜像名称。. 表示从当前目录下的 Dockerfile 开始构建。

检查镜像

构建完成后,你可以通过运行以下命令来检查新创建的镜像:

docker images

这将显示所有已创建的镜像及其详细信息。

运行和管理容器

运行容器

通过以下命令运行刚刚构建的镜像:

docker run -p 8000:8000 my-python-app

这里,-p 参数用于将主机的端口 8000 映射到容器的端口 8000。my-python-app 是我们之前构建的镜像标签。

管理容器

你可以使用 docker ps 命令查看运行中的容器:

docker ps

停止和删除容器

要停止并删除一个容器,可以使用以下命令:

docker stop <container_id> && docker rm <container_id>

<container_id> 替换为实际的容器 ID。

实战案例

创建并运行一个简单的Flask应用容器

创建 Flask 应用

首先,创建一个 Flask 应用。在终端中,运行如下命令创建一个基本的 Flask 应用:

mkdir flask_app
cd flask_app
touch app.py

接下来,在 app.py 文件中编写 Flask 应用代码:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

编写 Dockerfile

flask_app 目录下创建 Dockerfile 文件,并添加以下内容:

# 使用官方 Python 镜像作为基础镜像
FROM python:3.9

# 设置工作目录
WORKDIR /app

# 将本地代码复制到镜像中
COPY . /app

# 安装依赖
RUN pip install Flask

# 设置环境变量
ENV PATH="$PATH:/opt/extra-dir"

# 暴露端口
EXPOSE 5000

# 启动应用
CMD ["python", "app.py"]

构建 Docker 镜像

flask_app 目录中,运行以下命令构建镜像:

docker build -t my-flask-app .

运行容器

使用以下命令运行容器:

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

这将在你的本地服务器上启动 Flask 应用,并通过 http://localhost:5000/ 访问应用。

访问应用

在浏览器中输入 http://localhost:5000/ 并按 Enter。你应该能看到 "Hello, World!" 的欢迎信息。

总结

通过以上步骤,我们从零开始创建了一个基于 Docker 的项目,包括安装 Docker、编写并构建 Dockerfile、运行和管理容器,以及部署 Flask 应用。这个过程涵盖了 Docker 的核心概念和操作,为实际项目部署提供了可靠的基础。Docker 的高效性和跨平台兼容性使得它成为现代应用开发和部署中的重要工具。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消