Docker 入门实战:从安装到跑起第一个容器

举报
yd_293554343 发表于 2026/10/23 10:11:21 2026/10/23
【摘要】 第一次听说 Docker 的人,常把它想得很复杂。其实一句话就能讲清:Docker 就是把“应用 + 它需要的运行环境”一起打包成一个标准化的“集装箱”,在哪台机器上打开,里面都一模一样。再也不会出现“在我电脑上明明能跑”的尴尬。 一、Docker 解决什么问题传统部署方式里,应用依赖操作系统版本、语言运行时、各种库,换一台服务器就可能水土不服。Docker 用镜像(Image)和容器(Co...

第一次听说 Docker 的人,常把它想得很复杂。其实一句话就能讲清:Docker 就是把“应用 + 它需要的运行环境”一起打包成一个标准化的“集装箱”,在哪台机器上打开,里面都一模一样。再也不会出现“在我电脑上明明能跑”的尴尬。

一、Docker 解决什么问题

传统部署方式里,应用依赖操作系统版本、语言运行时、各种库,换一台服务器就可能水土不服。Docker 用镜像(Image)和容器(Container)两层概念解决它:镜像是只读的模板,容器是镜像跑起来的实例。镜像可以层层复用、随处分发,容器启动只要秒级。

二、安装 Docker(以 Ubuntu 为例)

官方推荐用 apt 安装,大致三步:

sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker

装完验证一下:

docker --version
docker run hello-world

看到 Hello from Docker!,说明安装成功。hello-world 是官方最小测试镜像,跑完即退出。

三、跑起第一个真正有用的容器

用 Nginx 举例,一行命令启动一个 Web 服务器:

docker run -d -p 8080:80 --name my-nginx nginx

参数拆开看:-d 后台运行;-p 8080:80 把容器内 80 端口映射到本机 8080;--name 起个名字方便管理。浏览器打开 http://localhost:8080,就能看到 Nginx 欢迎页。

四、常用命令速查

命令 作用
docker ps / docker ps -a 查看运行中 / 全部容器
docker images 查看本地镜像
docker stop/start/rm 容器名 停止 / 启动 / 删除容器
docker logs -f 容器名 实时看容器日志
docker exec -it 容器名 bash 进入容器内部 shell
docker pull 镜像名 拉取镜像

注意:docker rm 删容器前要先 stop,容器删了里面的数据默认也丢了——重要数据要用卷(见第六节)。

五、写一个自己的镜像:Dockerfile

新建目录,放一个 app.py:

print("Hello, Docker!")

再写 Dockerfile:

FROM python:3.12-slim
WORKDIR /app
COPY app.py .
CMD ["python", "app.py"]

构建并运行:

docker build -t my-app:1.0 .
docker run --rm my-app:1.0

FROM 指定基础镜像,COPY 把文件拷进去,CMD 定义容器启动时执行的命令。三行配置,就把“代码 + Python 环境”打成了一个可移植的包。

六、一个容易踩的坑:数据持久化

容器默认是“无状态”的,删容器数据就没了。需要保留的数据,用卷挂载:

docker run -d -v /home/user/data:/data --name worker my-app:1.0

-v 把宿主机目录映射进容器,数据写在宿主机上,容器删了数据还在。数据库类容器一定要这么做。

七、下一步学什么

掌握上面这些,日常开发够用了。进阶可以看:docker-compose 一键编排多容器、镜像分层与体积优化、私有镜像仓库。建议每学一个命令就亲手敲一遍,Docker 是典型的“动手型”技术,看十遍不如跑一遍。

环境不一致是协作和部署中最磨人的问题之一,Docker 用很低的学习成本把它抹平了。今天花半小时跑通第一个容器,明天部署应用时你会感谢自己。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。