目录
前言
一、Docker 核心概念回顾
二、Cloud Studio 安装 Docker
2.1 查看系统版本
2.2 安装 Docker 引擎
2.3 启动 Docker 服务
2.4 免 sudo 执行 docker(可选)
三、Docker 高频命令整理
镜像相关
容器相关
数据卷操作
文件拷贝 宿主机 ↔ 容器
镜像构建与推送 Docker Hub
Dockerfile 示例 (Python 项目)
四、实战案例:Nginx 自定义网页部署
步骤 1:创建项目文件
步骤 2:创建数据卷
步骤 3:启动 Nginx 容器
步骤 4:拷贝配置和网页文件到容器
步骤 5:重载 Nginx 配置生效
步骤 6:Cloud Studio 预览访问
五、常见踩坑总结
六、总结
前言
很多同学做开发学习时,本地安装 Docker 会遇到 Windows/WSL 冲突、虚拟机占用资源高等问题。Cloud Studio 在线开发环境提供开箱即用的 Linux 实例,可以直接在浏览器完成 Docker 学习、镜像构建、容器部署、数据卷挂载全套操作,无需本地配置环境。
本文结合 Docker 核心概念、常用命令、Nginx 完整实战案例,记录在 Cloud Studio (Linux) 部署 Docker 的全过程,同时修正日常敲命令常见笔误,适合 Docker 入门练习。
环境说明:Cloud Studio Ubuntu 工作空间;部分免费实例权限受限,Docker 操作需要
sudo管理员权限。
一、Docker 核心概念回顾
表格
| 名词 | 说明 |
|---|---|
| 镜像 (Image) | 相当于类、模板,只读模板,用来创建容器,例如 nginx、mysql 镜像 |
| 容器 (Container) | 镜像运行后的实例,独立隔离运行环境,可读写 |
| 仓库 (Registry) | 存放镜像的仓库,默认 Docker Hub,可以拉取、推送自定义镜像 |
| 数据卷 (Volume) | 实现宿主机和容器之间数据持久化同步,容器删除数据不会丢失 |
| Dockerfile | 文本脚本,自动化编写镜像构建步骤,一键生成自定义镜像 |
二、Cloud Studio 安装 Docker
⚠️重要提示:Cloud Studio 工作空间重启之后,Docker 服务不会自动保留,需要重新启动 Docker 服务。
2.1 查看系统版本
打开 Cloud Studio 内置终端
cat /etc/os-release绝大多数实例为 Ubuntu 系统,下面安装命令适配 Ubuntu。
2.2 安装 Docker 引擎
# 更新软件源 sudo apt update # 安装依赖工具 sudo apt install ca-certificates curl gnupg lsb-release -y # 添加Docker官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 添加Docker软件源 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 更新源并安装docker sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y2.3 启动 Docker 服务
# 启动docker服务 sudo systemctl start docker # 设置开机自启(Cloud Studio重启失效,仅本地虚拟机生效) sudo systemctl enable docker # 验证是否安装成功,运行hello-world测试容器 sudo docker run hello-world踩坑:部分 Cloud Studio 环境不支持
systemctl,执行报错,使用后台启动方式
sudo dockerd &2.4 免 sudo 执行 docker(可选)
每次敲 docker 命令加 sudo 比较麻烦,可以把当前用户加入 docker 用户组。
sudo usermod -aG docker $USER执行完成后,关闭当前终端,重新打开新终端生效。
三、Docker 高频命令整理
镜像相关
# 查看本地全部镜像 docker images # 拉取镜像 格式 docker pull 镜像名:标签 docker pull nginx:latest # 搜索镜像 docker search mysql # 删除镜像 docker rmi nginx:latest容器相关
# 查看正在运行容器 docker ps # 查看所有容器(包含停止的) docker ps -a # 运行容器 # --name 指定容器名称 -d 后台运行 -p 宿主机端口:容器端口 -e 设置环境变量 -v 挂载数据卷 docker run --name my-nginx -d -p 8080:80 nginx # 启动停止的容器 docker start 容器ID/容器名 # 停止运行中的容器 docker stop 容器ID/容器名 # 删除已经停止的容器 docker rm 容器ID/容器名 # 进入正在运行容器内部 docker exec -it 容器名 bash数据卷操作
数据卷实现容器数据持久化,容器销毁数据依然保留。
# 列出所有数据卷 docker volume ls # 创建数据卷 docker volume create nginx_html # 删除数据卷 docker volume rm nginx_html文件拷贝 宿主机 ↔ 容器
# 宿主机本地文件复制到容器 docker cp 本地路径 容器ID:容器内路径 # 容器文件复制到宿主机本地 docker cp 容器ID:容器内路径 本地路径镜像构建与推送 Docker Hub
# 根据Dockerfile构建镜像 -t 指定镜像名:标签 docker build -t my-python:v1 . # 给镜像打tag,用于推送hub docker tag my-python:v1 用户名/my-python:v1 # 登录Docker Hub docker login -u 你的用户名 # 推送镜像到仓库 docker push 用户名/my-python:v1Dockerfile 示例 (Python 项目)
新建Dockerfile文件,无后缀名
FROM python:3.10-slim # 设置环境变量 ENV HOME=/app \ PORT=5000 # 设置工作目录 WORKDIR $HOME # 将requirements.txt复制到工作目录 COPY requirements.txt $HOME/requirements.txt # 安装依赖 RUN pip install -r requirements.txt # 复制当前目录下的所有文件到工作目录 COPY . /app # 暴露端口 EXPOSE $PORT # 运行程序 CMD ["python", "web.py"]四、实战案例:Nginx 自定义网页部署
业务目标:自定义 html 页面、自定义 Nginx 配置文件,使用数据卷挂载,Cloud Studio 预览访问网页。 注意:Cloud Studio 不能直接访问容器内部端口,需要映射宿主机端口,在右上角端口面板打开预览。
步骤 1:创建项目文件
在工作空间创建文件夹my_font,存放网页和配置文件
mkdir my_font cd my_fonthome.html自定义页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Docker测试页面</title> </head> <body> <h1>ni hao 你好欢迎来到我的第一个镜像网页</h1> <p>Cloud Studio + Nginx Docker容器部署成功</p> </body> </html>home.conf自定义 nginx 配置
server { listen 10000; root /usr/share/nginx/html; index home.html; }步骤 2:创建数据卷
docker volume create nginx_html docker volume create nginx_conf # 查看创建好的数据卷 docker volume ls步骤 3:启动 Nginx 容器
docker run --name nginx \ -d \ -p 9090:80 \ -p 7777:10000 \ -v nginx_html:/usr/share/nginx/html \ -v nginx_conf:/etc/nginx/conf.d/ \ nginx-p 9090:80:宿主机 9090 端口映射容器 80 端口-p 7777:10000:宿主机 7777 端口映射容器 10000 端口-v挂载两个数据卷,页面文件、配置持久化
步骤 4:拷贝配置和网页文件到容器
# 获取容器ID docker ps # 将本地文件复制进容器,替换为你的实际容器ID docker cp my_font/home.html 容器ID:/usr/share/nginx/html docker cp my_font/home.conf 容器ID:/etc/nginx/conf.d/步骤 5:重载 Nginx 配置生效
docker exec -it 容器ID nginx -s reload步骤 6:Cloud Studio 预览访问
Cloud Studio 右上角打开端口面板,分别打开9090和7777端口,点击预览链接,即可在浏览器看到页面。
数据卷的优势:后续重新创建新容器,只要挂载这两个数据卷,网页和配置数据依然存在,不会丢失。
五、常见踩坑总结
- Cloud Studio 重启工作空间,Docker 服务停止,需要重新执行
sudo systemctl start docker - 命令拼写错误:
dockre、vlume属于手误,正确为docker images、docker volume - 端口访问不了:确认容器正常运行;确认 Cloud Studio 端口面板打开对应端口;检查 nginx 配置重载。
- 文件复制不生效:核对容器 ID、容器内路径,Nginx 网页目录
/usr/share/nginx/html,配置目录/etc/nginx/conf.d/。 - 权限不足:命令前面加上
sudo执行。
六、总结
Cloud Studio 在线环境非常适合学习 Docker,不用折腾本地环境。 核心流程:安装 Docker 引擎 → 掌握镜像、容器、数据卷命令 → 通过 Dockerfile 构建自定义镜像,结合数据卷完成数据持久化。完成 Nginx 案例之后,可以继续拓展 MySQL、Python 后端项目容器化部署