简介:本文面向开发者、运维人员及技术团队,系统讲解Docker容器化部署的核心概念、常用命令、Python与C++容器部署实战,以及存储与磁盘空间管理。通过“外卖比喻”理解容器化优势,掌握镜像与容器管理,快速上手Python与C++容器化开发,并学会优化存储空间。
在传统开发环境中,开发者常面临“在我机器上能运行,换台机器就报错”的困境。无论是本地开发、测试环境迁移,还是团队协作,环境配置的差异常导致项目部署失败。Docker通过容器化技术,将应用及其依赖打包成标准化镜像,实现“一次封装,到处运行”,彻底解决环境不一致问题。
适用人群:开发者、运维人员、架构师、技术团队负责人
部署目标:掌握Docker核心命令,完成Python与C++应用的容器化部署,并学会管理镜像与容器存储。
镜像是一个只读的文件系统,包含应用代码、运行时环境(如Python解释器)、依赖库(如NumPy)及系统配置。它类似于光盘或游戏安装包,不运行时仅占用磁盘空间,不可修改。
通过docker run命令启动镜像后,会生成一个容器。容器是镜像的动态实例,拥有独立的进程空间、网络接口和文件系统。它类似于外卖套餐——镜像(套餐内容)被封装在容器(餐盒)中,用户可直接使用。
仓库用于存储和分发镜像,类似于应用商店。开发者可从公共仓库(如Docker Hub)拉取镜像,也可将自定义镜像推送至私有仓库供团队共享。
Docker采用客户端-服务器架构,核心组件包括:
docker --version验证)。/var/lib/docker)。| 命令 | 作用 | 示例 |
|---|---|---|
docker pull |
拉取镜像 | docker pull python:3.9 |
docker run |
启动容器 | docker run -it python:3.9 /bin/bash |
docker ps |
查看运行中容器 | docker ps -a(显示所有容器) |
docker stop/start |
停止/启动容器 | docker stop my_container |
docker rm |
删除容器 | docker rm my_container |
docker rmi |
删除镜像 | docker rmi python:3.9 |
docker exec |
在运行中容器执行命令 | docker exec -it my_container python script.py |
步骤1:拉取Python镜像
docker pull python:3.9
步骤2:准备Python脚本
创建hello.py文件,内容如下:
print("Hello, Docker!")
步骤3:进入容器执行脚本(推荐方式)
# 启动容器并挂载本地目录docker run -it -v $(pwd):/app python:3.9 /bin/bash# 在容器内执行cd /apppython hello.py
步骤4:直接执行(一次性)
docker run --rm -v $(pwd):/app python:3.9 python /app/hello.py
步骤5:执行单行代码
docker run --rm python:3.9 python -c "print('Hello, Docker!')"
步骤1:拉取GCC镜像
docker pull gcc:latest
步骤2:准备C++代码
创建main.cpp文件,内容如下:
#include <iostream>int main() {std::cout << "Hello, Docker!" << std::endl;return 0;}
步骤3:编译并运行
# 启动容器并挂载本地目录docker run -it -v $(pwd):/app gcc:latest /bin/bash# 在容器内编译与运行cd /appg++ main.cpp -o main./main
docker run -v /host/path:/container/path python:3.9
docker run -v $(pwd):/app python:3.9
docker image prune -a
docker container prune
Hello, Docker!。docker logs my_container)。--cpus、--memory)。本文通过“外卖比喻”帮助读者理解Docker容器化优势,系统讲解了镜像与容器的管理命令,并通过Python与C++实战案例演示了容器化部署流程。最后,介绍了存储优化与运维技巧,助力开发者高效管理容器化应用。掌握Docker后,你将告别环境配置难题,专注于代码开发本身!