05-容器命令

简介: 使用`docker run`可创建并启动容器,支持交互式(-it)或守护式(-d)运行。通过-p映射端口,-v挂载数据卷,--name指定名称,-e设置环境变量。容器可启停、删除、拷贝文件,支持日志查看、进程监控及导出导入。数据卷实现持久化与共享,commit可将容器保存为新镜像。注意权限问题可加--privileged=true解决。(238字)

新建启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用的参数:

● --name:为容器指定一个名称
● -d:后台运行容器并返回容器ID,也即启动守护式容器
● -i:以交互模式(interactive)运行容器,通常与-t同时使用
● -t:为容器重新分配一个伪输入终端(tty),通常与-i同时使用。也即启动交互式容器(前台有伪终端,等待交互)
● -e:为容器添加环境变量
● -P:随机端口映射。将容器内暴露的所有端口映射到宿主机随机端口
● -p:指定端口映射

-p指定端口映射的几种不同形式:

● -p hostPort:containerPort:端口映射,例如-p 8080:80
● -p ip:hostPort:containerPort:配置监听地址,例如 -p 10.0.0.1:8080:80
● -p ip::containerPort:随机分配端口,例如 -p 10.0.0.1::80
● -p hostPort1:containerPort1 -p hostPort2:containerPort2:指定多个端口映射,例如-p 8080:80 -p 8888:3306

启动交互式容器

以交互方式启动ubuntu镜像

-i 交互模式

-t 分配一个伪输入终端tty

ubuntu 镜像名称

/bin/bash(或者bash) shell交互的接口

docker run -it ubuntu /bin/bash

退出交互模式:

方式1:

在交互shell中exit即可退回宿主机

exit;

方式2:使用快捷键ctrl + P + Q

方式1 退出后,容器会停止;

方式2 退出后容器依然正在运行。

启动守护式容器

大部分情况下,我们系统docker容器服务时在后台运行的,可以通过-d指定容器的后台运行模式:

docker run -d 容器名

注意事项:

如果使用docker run -d ubuntu尝试启动守护式的ubuntu,会发现容器启动后就自动退出了。

因为Docker容器如果在后台运行,就必须要有一个前台进程。容器运行的命令如果不是那些一直挂起的命令(例如top、tail),就会自动退出。

列出正在运行的容器

列出所有正在运行的容器:

docker ps [OPTIONS]

常用参数:

● -a:列出当前所有正在运行的容器+历史上运行过的容器
● -l:显示最近创建的容器
● -n:显示最近n个创建的容器
● -q:静默模式,只显示容器编号

容器其他启停操作

启动已经停止的容器

docker start 容器ID或容器名

重启容器

docker restart 容器ID或容器名

停止容器

docker stop 容器ID或容器名

强制停止容器

docker kill 容器ID或容器名

删除容器

删除已经停止的容器:

docker rm 容器ID或容器名

删除容器是 docker rm,删除镜像是 docker rmi,注意区分。

强制删除正在运行的容器:

docker rm -f 容器ID或容器名

一次删除多个容器实例:

docker rm -f ${docker ps -a -q}

或者

docker ps -a -q | xargs docker rm

查看容器日志

docker logs 容器ID或容器名

查看容器内运行的进程

docker top 容器ID或容器名

查看容器内部细节

docker inspect 容器ID或容器名

进入正在运行的容器

进入正在运行的容器,并以命令行交互:

docker exec -it 容器ID bashShell

重新进入:

docker attach 容器ID

docker exec 和 docker attach 区别:

● attach直接进入容器启动命令的终端,不会启动新的进程,用exit退出会导致容器的停止
● exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出不会导致容器的停止

如果有多个终端,都对同一个容器执行了 docker attach,就会出现类似投屏显示的效果。一个终端中输入输出的内容,在其他终端上也会同步的显示。

容器和宿主机文件拷贝

容器内文件拷贝到宿主机:

docker cp 容器ID:容器内路径 目的主机路径

宿主机文件拷贝到容器中:

docker cp 主机路径 容器ID:容器内路径

导入和导出容器

export:导出容器的内容流作为一个tar归档文件(对应import命令);

import:从tar包中的内容创建一个新的文件系统再导入为镜像(对应export命令);

示例:

导出

docker export 容器ID > tar文件名

docker export abc > aaa.tar

导入

cat tar文件 | docker import - 自定义镜像用户/自定义镜像名:自定义镜像版本号

cat aaa.tar | docker import - test/mytest:1.0.1

将容器生成新镜像

docker commit提交容器副本使之成为一个新的镜像。

docker 启动一个镜像容器后, 可以在里面执行一些命令操作,然后使用docker commit将新的这个容器快照生成一个镜像。

docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[tag]

Docker挂载主机目录,可能会出现报错:cannot open directory .: Perission denied。

解决方案:在命令中加入参数 --privileged=true。

CentOS7安全模块比之前系统版本加强,不安全的会先禁止,目录挂载的情况被默认为不安全的行为,在SELinux里面挂载目录被禁止掉了。如果要开启,一般使用 --privileged=true,扩大容器的权限解决挂载没有权限的问题。也即使用该参数,容器内的root才拥有真正的root权限,否则容器内的root只是外部的一个普通用户权限。

容器数据卷

卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过UnionFS,提供一些用于持续存储或共享数据。

特性:卷设计的目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。

特点:

● 数据卷可以在容器之间共享或重用数据
● 卷中的更改可以直接实施生效
● 数据卷中的更改不会包含在镜像的更新中
● 数据卷的生命周期一直持续到没有容器使用它为止

运行一个带有容器卷存储功能的容器实例:

docker run -it --privileged=true -v 宿主机绝对路径目录:容器内目录[rw | ro] 镜像名

可以使用docker inspect查看容器绑定的数据卷。

权限:

● rw:读写
● ro:只读。如果宿主机写入内容,可以同步给容器内,容器内可以读取。

容器卷的继承:

启动一个容器

docker run -it --privileged=true /tmp/test:/tmp/docker --name u1 ubuntu /bin/bash

使用 --volumes-from 继承 u1的容器卷映射配置

docker run -it --privileged=true --volumes-from u1 --name u2 ubuntu

相关文章
|
4月前
|
人工智能 自然语言处理 前端开发
OpenClaw(Clawdbot)深度解析:阿里云部署集成、核心价值与专属skills说明
2026年年初,开源AI助理应用OpenClaw(前身为Clawdbot/Moltbot)快速走红,这款被定义为**“真帮你干活的AI”**的工具,打破了传统AI仅能做内容生成的局限,可通过WhatsApp、Telegram、企业微信等常用聊天软件,实现邮箱清理、邮件发送、日程管理、航班值机等实操性任务。其核心魅力并非搭载了更先进的大模型,而是提出了**AI Agent接口标准化**的全新思路,试图解决当前AI工程领域80%成本浪费在工具格式重复适配的行业痛点。本文将从OpenClaw核心定义、部署实践(含阿里云专属简单步骤)、核心价值与使用场景、实际使用痛点四个维度展开,结合可直接复用的代码
787 4
|
3月前
|
人工智能 安全 API
Docker 容器中运行 AI CLI 工具:用户隔离与持久化卷实战指南
Docker 容器中运行 AI CLI 工具:用户隔离与持久化卷实战指南 在容器化环境中集成 Claude Code、Codex、OpenCode 等 AI 编程工具,听起来简单,实则暗藏玄机。本文将深入解析 HagiCode 项目在...
391 4
|
3月前
|
SQL 关系型数据库 数据库
告别手写SQL? Cursor智能生成实战指南与避坑技巧
本文深度解析Cursor如何通过RAG架构与代码索引实现智能SQL生成,涵盖原理、实战(Text-to-SQL/CTE/解释优化)、方言边界及六大避坑技巧(如@引用、.cursorrules配置、注释增强等),助开发者高效写出准确、安全、符合业务的SQL。
623 2
告别手写SQL?  Cursor智能生成实战指南与避坑技巧
|
4月前
|
人工智能 自然语言处理 数据可视化
喂饭级教程:2026年OpenClaw(Clawdbot)零基础部署接入Discord
在2026年AI自动化办公与跨平台协同需求双重爆发的当下,OpenClaw(原Clawdbot、曾用名Moltbot)凭借“自然语言驱动、全场景任务自动化、多终端无缝适配”的核心优势,成为个人办公提效、轻量团队协同、在线社群管理的优选工具。作为GitHub星标量超19万的开源AI自动化代理平台,它打破了传统AI仅能对话的局限,真正实现“能听指令、能做实事”——无论是文档生成、日程提醒、文件整理,还是联网搜索、简单代码开发、跨工具协同,只需一句口语化指令,就能自动完成全流程操作,无需手动干预,完美适配现代办公与在线社群运营的高效需求,其开源特性也让用户可根据需求灵活扩展功能,适配多样化使用场景。
1625 19
|
3月前
|
人工智能
搞懂这7个配置文件让你的OpenClaw变智能助手
很多人装了满满一堆Skills,却觉得OpenClaw还是"傻白甜"。其实决定AI智商的,不是插件有多少,而是这几个藏在系统底层的配置文件。
4976 8
|
4月前
|
人工智能 Rust 安全
OpenClaw Skills深度玩转指南:2026年阿里云部署OpenClaw/Clawdbot+浏览器与邮件技能实战
如果说OpenClaw与大模型的组合是打造智能AI助理的“大脑”,那么Skills就是赋予它行动能力的“双手”。作为OpenClaw生态的核心扩展模块,Skills通过标准化功能封装,让AI助手能够自主完成网页浏览、信息检索、邮件管理等实际操作,彻底打破“只会说不会做”的局限。2026年最新版OpenClaw已默认集成浏览器操作插件agent-browser v0.2.0,同时支持从Clawhub技能库扩展更多实用功能。本文将先介绍阿里云OpenClaw(原Clawdbot)的快速部署步骤,再详细拆解默认Skills的实战场景与新技能安装方法,搭配可直接复用的指令与代码,让新手也能快速解锁AI
2868 1
|
10月前
|
人工智能 数据可视化 算法
企业想做数智化,数据仓库架构你得先搞懂!
在数智化浪潮下,数据驱动已成为企业竞争力的核心。然而,许多企业在转型过程中忽视了数据仓库这一关键基础。本文深入解析数据仓库的重要性,厘清其与数据库的区别,详解ODS、DWD、DWS、ADS分层逻辑,并提供从0到1搭建数据仓库的五步实战方法,助力企业夯实数智化底座,实现数据治理与业务协同的真正落地。
企业想做数智化,数据仓库架构你得先搞懂!
|
XML 人工智能 数据可视化
ReasonGraph:别让AI成黑箱!这个开源工具把大模型的脑回路画给你看
ReasonGraph是一款开源的可视化分析工具,能将大语言模型的复杂推理过程转化为直观图表,支持50+主流模型和多种推理方法,帮助开发者快速理解AI思考逻辑并优化模型表现。
1044 0
|
Linux 虚拟化 数据安全/隐私保护
银河麒麟V10 VMWare安装保姆级教程
银河麒麟V10 VMWare安装保姆级教程
23173 5
银河麒麟V10 VMWare安装保姆级教程