第五节 Docker 入门实践:从 Hello World 到容器操作
bigegpt 2025-06-24 11:56 6 浏览
一、Docker 容器基础运行
(一)单次命令执行
通过 docker run 命令可以直接在容器中执行指定命令,这是体验 Docker 最快捷的方式:
# 在 ubuntu:15.10 容器中执行 echo 命令
docker run ubuntu:15.10 /bin/echo "Hello World"
命令解析:
- docker:Docker 客户端命令行工具
- run:创建并运行一个容器
- ubuntu:15.10:指定使用的镜像(先查本地,不存在则从 Docker Hub 拉取)
- /bin/echo "Hello World":容器内执行的具体命令
执行流程:
- Docker 检查本地是否存在 ubuntu:15.10 镜像
- 若不存在则自动从 Docker Hub 下载
- 基于镜像创建一个临时容器
- 在容器中执行 /bin/echo "Hello World"
- 命令执行完毕后容器自动退出
二、交互式容器操作
(一)进入容器交互环境
使用 -i 和 -t 参数可以创建一个交互式容器,模拟终端登录体验:
# 以交互模式进入 ubuntu:15.10 容器的 bash 环境
docker run -i -t ubuntu:15.10 /bin/bash
参数说明:
- -t:分配一个伪终端(Terminal),支持命令行交互
- -i:保持标准输入(STDIN)打开,允许用户输入
操作示例:
# 进入容器后查看系统版本
cat /proc/version
# 输出示例:
# Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
# 查看根目录文件
ls
# 输出示例:
# bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
退出容器:
- 输入 exit 命令
- 或使用快捷键 Ctrl+D
三、后台运行容器
(一)守护进程模式启动
通过 -d 参数可以让容器在后台运行(守护进程模式):
# 让容器循环输出 "hello world" 并休眠 1 秒
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
执行结果:
命令执行后会立即返回容器 ID(如 2b1b7a428627),而非直接显示 "hello world"。这是因为容器在后台运行,标准输出未直接关联到当前终端。
(二)查看容器状态
使用 docker ps 命令可以查看正在运行的容器:
# 查看所有运行中容器
docker ps
输出字段说明:
字段 | 说明 |
CONTAINER ID | 容器唯一标识符(可缩写使用) |
IMAGE | 容器使用的镜像名称 |
COMMAND | 容器启动时执行的命令 |
CREATED | 容器创建时间 |
STATUS | 容器当前状态(如 running) |
PORTS | 容器暴露的端口信息 |
NAMES | 容器自动生成的名称 |
(三)查看后台容器日志
通过 docker logs 命令可以获取后台容器的标准输出:
# 通过容器 ID 查看日志
docker logs 2b1b7a428627
# 输出示例:
# hello world
# hello world
# hello world
# ...
# 也可以通过容器名称查看(名称在 docker ps 中获取)
docker logs amazing_cori
四、容器生命周期管理
(一)停止运行中的容器
使用 docker stop 命令可以停止一个正在运行的容器:
# 通过容器 ID 停止容器
docker stop 2b1b7a428627
# 或通过容器名称停止
docker stop amazing_cori
停止流程:
- Docker 向容器发送 SIGTERM 信号(默认等待 10 秒)
- 若容器未正常关闭,发送 SIGKILL 强制终止
(二)查看所有容器(包括已停止的)
# 查看所有容器(包含历史运行过的)
docker ps -a
(三)删除容器
# 删除指定容器(需先停止容器)
docker rm 2b1b7a428627
# 强制删除运行中的容器(不推荐)
docker rm -f 2b1b7a428627
五、容器常用操作命令汇总
(一)基础操作
命令格式 | 作用描述 |
docker run <image> <cmd> | 基于镜像运行命令 |
docker run -i -t <image> | 交互式进入容器 |
docker run -d <image> | 后台运行容器 |
(二)状态查看
命令格式 | 作用描述 |
docker ps | 查看运行中容器 |
docker ps -a | 查看所有容器 |
docker logs <id> | 查看容器日志 |
docker inspect <id> | 查看容器详细信息 |
(三)生命周期管理
命令格式 | 作用描述 |
docker stop <id> | 停止运行中的容器 |
docker start <id> | 启动已停止的容器 |
docker restart <id> | 重启容器 |
docker rm <id> | 删除容器 |
六、进阶实践:容器与宿主机交互
(一)在运行中容器执行命令
即使容器在后台运行,也可以通过 docker exec 命令向其发送新指令:
# 在运行中的容器中执行 date 命令
docker exec 2b1b7a428627 date
(二)进入正在运行的容器
# 进入后台运行的容器(类似 ssh 登录)
docker exec -i -t 2b1b7a428627 /bin/bash
(三)宿主机与容器文件共享
通过 -v 参数可以将宿主机目录挂载到容器中,实现数据共享:
# 挂载宿主机 /data 目录到容器 /app/data
docker run -d -v /data:/app/data ubuntu:15.10 ...
七、容器状态说明
(一)容器的七种状态
- created:已创建但未启动
- restarting:正在重启中
- running / up:运行中
- removing:正在删除(极少见到)
- paused:暂停状态(使用 docker pause 命令)
- exited:已停止(命令执行完毕或手动停止)
- dead:异常终止(可通过 docker logs 查看错误)
相关推荐
- Docker篇(二):Docker实战,命令解析
-
大家好,我是杰哥上周我们通过几个问题,让大家对于Docker有了一个全局的认识。然而,说跟练往往是两个概念。从学习的角度来说,理论知识的学习,往往只是第一步,只有经过实战,才能真正掌握一门技术所以,本...
- docker学习笔记——安装和基本操作
-
今天学习了docker的基本知识,记录一下docker的安装步骤和基本命令(以CentOS7.x为例)一、安装docker的步骤:1.yuminstall-yyum-utils2.yum-con...
- 不可错过的Docker完整笔记(dockerhib)
-
简介一、Docker简介Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,...
- 扔掉运营商的 IPTV 机顶盒,全屋全设备畅看 IPTV!
-
其实现在看电视节目的需求确实大大降低了,折腾也只是为了单纯的让它实现,享受这个过程带来的快乐而已,哈哈!预期构想家里所有设备直接接入网络随时接收并播放IPTV直播(电信点播的节目不是太多,但好在非常稳...
- 第五节 Docker 入门实践:从 Hello World 到容器操作
-
一、Docker容器基础运行(一)单次命令执行通过dockerrun命令可以直接在容器中执行指定命令,这是体验Docker最快捷的方式:#在ubuntu:15.10容器中执行ech...
- 替代Docker build的Buildah简单介绍
-
Buildah是用于通过较低级别的coreutils接口构建OCI兼容镜像的工具。与Podman相似,Buildah不依赖于Docker或CRI-O之类的守护程序,并且不需要root特权。Builda...
- Docker 命令大全(docker命令大全记录表)
-
容器生命周期管理run-创建并启动一个新的容器。start/stop/restart-这些命令主要用于启动、停止和重启容器。kill-立即终止一个或多个正在运行的容器rm-于删除一个或...
- docker常用指令及安装rabbitMQ(docker安装rabbitmq配置环境)
-
一、docker常用指令启动docker:systemctlstartdocker停止docker:systemctlstopdocker重启docker:systemctlrestart...
- 使用Docker快速部署Storm环境(docker部署confluence)
-
Storm的部署虽然不是特别麻烦,但是在生产环境中,为了提高部署效率,方便管理维护,使用Docker来统一管理部署是一个不错的选择。下面是我开源的一个新的项目,一个配置好了storm与mono环境的D...
- Docker Desktop安装使用指南:零基础教程
-
在之前的文章中,我多次提到使用Docker来安装各类软件,尤其是开源软件应用。鉴于不少读者对此有需求,我决定专门制作一期关于Docker安装与使用的详细教程。我主要以Macbook(Mac平台)为例进...
- Linux如何成功地离线安装docker(linux离线安装httpd)
-
系统环境:Redhat7.2和Centos7.4实测成功近期因项目需要用docker,所以记录一些相关知识,由于生产环境是不能直接连接互联网,尝试在linux中离线安装docker。步骤1.下载...
- Docker 类面试题(常见问题)(docker面试题目)
-
Docker常见问题汇总镜像相关1、如何批量清理临时镜像文件?可以使用sudodockerrmi$(sudodockerimages-q-fdanging=true)命令2、如何查看...
- 面试官:你知道Dubbo怎么优雅上下线的吗?你:优雅上下线是啥?
-
最近无论是校招还是社招,都进行的如火如荼,我也承担了很多的面试工作,在一次面试过程中,和候选人聊了一些关于Dubbo的知识。Dubbo是一个比较著名的RPC框架,很多人对于他的一些网络通信、通信协议、...
- 【Docker 新手入门指南】第五章:Hello Word
-
适合人群:完全零基础新手|学习目标:30分钟掌握Docker核心操作一、准备工作:先确认是否安装成功打开终端(Windows用户用PowerShell或GitBash),输入:docker--...
- 松勤软件测试:详解Docker,如何用portainer管理Docker容器
-
镜像管理搜索镜像dockersearch镜像名称拉取镜像dockerpullname[:tag]列出镜像dockerimages删除镜像dockerrmiimage名称或id删除...
- 一周热门
- 最近发表
-
- Docker篇(二):Docker实战,命令解析
- docker学习笔记——安装和基本操作
- 不可错过的Docker完整笔记(dockerhib)
- 扔掉运营商的 IPTV 机顶盒,全屋全设备畅看 IPTV!
- 第五节 Docker 入门实践:从 Hello World 到容器操作
- 替代Docker build的Buildah简单介绍
- Docker 命令大全(docker命令大全记录表)
- docker常用指令及安装rabbitMQ(docker安装rabbitmq配置环境)
- 使用Docker快速部署Storm环境(docker部署confluence)
- Docker Desktop安装使用指南:零基础教程
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)