Docker 容器入门基础:Cloud Studio 在线 Linux 环境上手

目录

前言

[一、Docker 核心概念回顾](#一、Docker 核心概念回顾)

[二、Cloud Studio 安装 Docker](#二、Cloud Studio 安装 Docker)

[2.1 查看系统版本](#2.1 查看系统版本)

[2.2 安装 Docker 引擎](#2.2 安装 Docker 引擎)

[2.3 启动 Docker 服务](#2.3 启动 Docker 服务)

[2.4 免 sudo 执行 docker(可选)](#2.4 免 sudo 执行 docker(可选))

[三、Docker 高频命令整理](#三、Docker 高频命令整理)

镜像相关

容器相关

数据卷操作

[文件拷贝 宿主机 ↔ 容器](#文件拷贝 宿主机 ↔ 容器)

[镜像构建与推送 Docker Hub](#镜像构建与推送 Docker Hub)

[Dockerfile 示例 (Python 项目)](#Dockerfile 示例 (Python 项目))

[四、实战案例:Nginx 自定义网页部署](#四、实战案例:Nginx 自定义网页部署)

[步骤 1:创建项目文件](#步骤 1:创建项目文件)

[步骤 2:创建数据卷](#步骤 2:创建数据卷)

[步骤 3:启动 Nginx 容器](#步骤 3:启动 Nginx 容器)

[步骤 4:拷贝配置和网页文件到容器](#步骤 4:拷贝配置和网页文件到容器)

[步骤 5:重载 Nginx 配置生效](#步骤 5:重载 Nginx 配置生效)

[步骤 6:Cloud Studio 预览访问](#步骤 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 -y

2.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:v1

Dockerfile 示例 (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_font

home.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 右上角打开端口面板 ,分别打开 90907777端口,点击预览链接,即可在浏览器看到页面。

数据卷的优势:后续重新创建新容器,只要挂载这两个数据卷,网页和配置数据依然存在,不会丢失。

五、常见踩坑总结

  1. Cloud Studio 重启工作空间,Docker 服务停止,需要重新执行 sudo systemctl start docker
  2. 命令拼写错误:dockrevlume 属于手误,正确为docker imagesdocker volume
  3. 端口访问不了:确认容器正常运行;确认 Cloud Studio 端口面板打开对应端口;检查 nginx 配置重载。
  4. 文件复制不生效:核对容器 ID、容器内路径,Nginx 网页目录/usr/share/nginx/html,配置目录/etc/nginx/conf.d/
  5. 权限不足:命令前面加上sudo执行。

六、总结

Cloud Studio 在线环境非常适合学习 Docker,不用折腾本地环境。 核心流程:安装 Docker 引擎 → 掌握镜像、容器、数据卷命令 → 通过 Dockerfile 构建自定义镜像,结合数据卷完成数据持久化。完成 Nginx 案例之后,可以继续拓展 MySQL、Python 后端项目容器化部署

相关推荐
en.en..1 小时前
LVGL 普通函数指针与结构体函数指针原理
linux·windows·microsoft
byte轻骑兵1 小时前
【BlueZ 】Adapter 模块:蓝牙适配器(主设备)的初始化与核心逻辑
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
流浪0011 小时前
Linux系统篇27——通信(四):System V 消息队列 + 信号量:管道之后,Linux 还藏了哪两样 IPC
linux·运维
山岚的运维笔记1 小时前
mysql 专业笔记 -- 第 14 章:GROUP BY
运维·数据库·笔记·后端·学习·mysql·dba
java_logo1 小时前
Docker 部署 SRS:轻松搭建实时音视频流媒体平台
docker·容器·webrtc·实时音视频·rtmp·http-flv·轩辕镜像
Java后端的Ai之路1 小时前
23、Python - 策略模式
linux·python·策略模式
名字还没想好☜10 小时前
用 systemd 托管后台服务:Restart 策略、日志接管、资源限制与开机自启全踩一遍
运维·docker·kubernetes
动力 continue11 小时前
docker容器大舞台,创建镜像,构造类,基础速通
docker·容器
乌恩大侠11 小时前
GH200 新增 NVMe SSD 分区、格式化与挂载完整流程
运维·服务器·前端