百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

第五节 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":容器内执行的具体命令

执行流程:

  1. Docker 检查本地是否存在 ubuntu:15.10 镜像
  2. 若不存在则自动从 Docker Hub 下载
  3. 基于镜像创建一个临时容器
  4. 在容器中执行 /bin/echo "Hello World"
  5. 命令执行完毕后容器自动退出


二、交互式容器操作

(一)进入容器交互环境

使用 -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

停止流程:

  1. Docker 向容器发送 SIGTERM 信号(默认等待 10 秒)
  2. 若容器未正常关闭,发送 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 ...


七、容器状态说明

(一)容器的七种状态

  1. created:已创建但未启动
  2. restarting:正在重启中
  3. running / up:运行中
  4. removing:正在删除(极少见到)
  5. paused:暂停状态(使用 docker pause 命令)
  6. exited:已停止(命令执行完毕或手动停止)
  7. 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删除...