当前位置: 首页 > news >正文

Docker run 语句用法详解

docker run 是 Docker 命令中最核心的指令之一,用于根据指定的镜像创建并启动一个新的容器。本文将深入解析 docker run 的使用方法,包括其基本语法、选项参数以及一些高级用法,帮助你更高效地管理和运行 Docker 容器。

基本语法

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

此命令会基于 IMAGE 创建一个新的容器,并可选地执行 COMMAND 指定的命令及传递给该命令的 ARG 参数。接下来,我们详细探讨 docker run 支持的各种选项。

重要选项说明

运行时配置

  • -d, --detach:以后台模式运行容器,并打印容器ID。
  • -i, --interactive 和 -t, --tty(未直接列出,但常与 -i 一起使用):使容器的标准输入保持打开,并分配一个伪TTY,以便交互式使用。
  • -e, --env:设置环境变量,格式如 -e VAR_NAME=VAR_VALUE
  • -p, --publish:发布容器端口到主机,例如 -p 8080:80 将容器的80端口映射到主机的8080端口。
  • --volume, -v(未直接列出,但常用):挂载宿主机目录或文件到容器中,格式如 -v /host/path:/container/path
  • --name:为容器指定一个名称。

资源限制

  • -m, --memory:限制容器可用内存大小。
  • --cpu-shares:设置CPU份额,影响容器在多容器环境下对CPU的访问权重。

高级选项

  • --restart:定义容器退出后重启策略,如 --restart always 表示始终重启。
  • --rm:容器退出后自动删除容器。
  • --cap-add, --cap-drop:添加或删除容器的Linux功能(capabilities)。

安全与隔离

  • --privileged:给予容器更多权限,接近宿主机权限。
  • --security-opt:设置安全选项,如 SELinux 标签等。
  • --read-only:以只读模式挂载容器的根文件系统。

网络

  • --network-alias:为容器在网络层面设置别名。
  • --network:连接容器到指定网络。
  • --dns:自定义DNS服务器地址。
  • --shm-size:调整 /dev/shm 共享内存大小。

使用示例

启动一个交互式的 Ubuntu 容器,并在其中执行 bash

docker run -it ubuntu bash

以上只是 docker run 命令强大功能的冰山一角。通过组合不同的选项,你可以实现复杂的容器配置和管理需求。建议查阅 Docker 官方文档获取更详尽的信息,以便根据具体场景灵活运用 docker run

相关文章:

  • 【传知代码】Modnet 人像抠图-论文复现
  • 【博主推荐】HTML5实现520表白、情人节表白模板源码
  • 【数据结构】哈夫曼树和哈夫曼编码
  • 全网最全爬取-b站爬取弹幕+评论之js逆向与xml降本增效
  • lua函数执行和虚拟机指令
  • UWB论文:Introduction to Impulse Radio UWB Seamless Access Systems(2):脉冲;超宽带;测距;定位
  • Flutter 中的 CupertinoPicker 小部件:全面指南
  • 【MySQL精通之路】SQL优化(1)-查询优化(11)-多范围查询优化
  • 开源RAG,本地mac启动 dify源码服务
  • 2024年第十七届“认证杯”数学中国数学建模网络挑战赛D题思路(第二阶段)
  • 解锁Nginx跨域谜题:3步打造安全高效的CORS策略
  • 【Centos7+JDK1.8】Jenkins安装手册
  • MySql:多表设计-关联查询
  • slam14讲(第8讲、前端里程计)LK光流、直接法
  • 【pyspark速成专家】3_Spark之RDD编程1
  • bearychat的java client
  • Date型的使用
  • Java的Interrupt与线程中断
  • Js基础知识(四) - js运行原理与机制
  • Laravel5.4 Queues队列学习
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Sass 快速入门教程
  • session共享问题解决方案
  • yii2权限控制rbac之rule详细讲解
  • 坑!为什么View.startAnimation不起作用?
  • 聊一聊前端的监控
  • 人脸识别最新开发经验demo
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 用 Swift 编写面向协议的视图
  • 函数计算新功能-----支持C#函数
  • 整理一些计算机基础知识!
  • #php的pecl工具#
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • %@ page import=%的用法
  • (2)STL算法之元素计数
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (面试必看!)锁策略
  • (三)docker:Dockerfile构建容器运行jar包
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (转)Oracle存储过程编写经验和优化措施
  • (转)创业的注意事项
  • (轉貼) UML中文FAQ (OO) (UML)
  • ../depcomp: line 571: exec: g++: not found
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .gitignore文件—git忽略文件
  • .NET 服务 ServiceController
  • .NET 通过系统影子账户实现权限维持
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET国产化改造探索(一)、VMware安装银河麒麟