跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Docker第一个容器
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= Docker第一个容器 = == 介绍 == Docker容器是轻量级、可移植的软件包,包含运行应用程序所需的所有依赖项。本节将指导初学者创建第一个Docker容器,展示从拉取镜像到运行容器的完整流程。通过本教程,您将理解Docker的核心工作流程及其实际价值。 == 前提条件 == * 已安装Docker Engine(版本20.10+) * 终端/命令行基础操作知识 * 2GB以上可用磁盘空间 == 步骤详解 == === 1. 拉取镜像 === Docker容器基于镜像创建。我们以官方<code>hello-world</code>镜像为例: <syntaxhighlight lang="bash"> docker pull hello-world </syntaxhighlight> '''输出示例:''' <pre> Using default tag: latest latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:ffb13da98453e0f04d33a6eee5bb8e46ee50d08ebe17735fc0779d0349e889e9 Status: Downloaded newer image for hello-world:latest docker.io/library/hello-world:latest </pre> '''关键说明:''' * Docker默认从Docker Hub拉取镜像 * <code>latest</code>是未指定标签时的默认值 * 分层下载机制显示每层的唯一哈希值 === 2. 运行容器 === 执行以下命令启动容器: <syntaxhighlight lang="bash"> docker run hello-world </syntaxhighlight> '''典型输出:''' <pre> Hello from Docker! This message shows that your installation appears to be working correctly. ... </pre> === 3. 过程解析 === <mermaid> sequenceDiagram participant User participant Docker_Client participant Docker_Daemon participant Registry User->>Docker_Client: docker run hello-world Docker_Client->>Docker_Daemon: 创建容器请求 alt 镜像不存在本地 Docker_Daemon->>Registry: 拉取hello-world镜像 Registry-->>Docker_Daemon: 返回镜像数据 end Docker_Daemon->>Docker_Daemon: 创建容器进程 Docker_Daemon-->>User: 输出Hello消息 </mermaid> == 进阶操作 == === 交互式容器 === 运行Ubuntu容器并进入bash shell: <syntaxhighlight lang="bash"> docker run -it ubuntu bash </syntaxhighlight> '''参数说明:''' * <code>-i</code>:保持STDIN打开 * <code>-t</code>:分配伪终端 * 退出使用<code>exit</code>命令 === 后台运行容器 === 启动Nginx服务器: <syntaxhighlight lang="bash"> docker run -d -p 8080:80 nginx </syntaxhighlight> '''验证运行:''' <syntaxhighlight lang="bash"> curl http://localhost:8080 </syntaxhighlight> == 容器生命周期管理 == 常用命令示例: {| class="wikitable" |- ! 命令 !! 作用 !! 示例 |- | <code>docker ps</code> || 查看运行中容器 || <code>docker ps -a</code>(显示所有) |- | <code>docker stop</code> || 停止容器 || <code>docker stop <container_id></code> |- | <code>docker rm</code> || 删除容器 || <code>docker rm $(docker ps -aq)</code> |- | <code>docker logs</code> || 查看日志 || <code>docker logs -f <container_id></code> |} == 实际应用案例 == '''场景:''' 快速搭建Python开发环境 <syntaxhighlight lang="bash"> # 一次性运行Python解释器 docker run -it --rm python:3.9-slim python # 挂载本地目录开发 docker run -it -v $(pwd):/app python:3.9 bash </syntaxhighlight> '''优势体现:''' * 无需本地安装Python * 环境隔离不污染主机 * 版本切换只需更改标签 == 常见问题 == '''Q:容器退出后数据会丢失吗?''' A:默认情况下会丢失,需要使用卷(volumes)持久化数据: <syntaxhighlight lang="bash"> docker run -v /host/path:/container/path ... </syntaxhighlight> '''Q:如何查看容器配置?''' A:使用<code>inspect</code>命令: <syntaxhighlight lang="bash"> docker inspect <container_id> | jq .[0].NetworkSettings </syntaxhighlight> == 数学表达 == 容器资源限制计算公式示例: <math> \text{Memory Limit} = \sum_{i=1}^{n} (\text{Container\_Mem}_i \times \text{Scale\_Factor}_i) </math> 其中Scale Factor根据优先级调整。 == 总结 == 通过创建第一个Docker容器,您已经实践了Docker核心工作流: # 镜像获取(pull) # 容器创建(run) # 生命周期管理 # 资源交互配置 下一步建议学习[[Docker镜像构建]]和[[Docker Compose]]多容器管理。 [[Category:集成部署]] [[Category:Docker]] [[Category:Docker基础]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)