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

Docker常用命令--docker run

docker run 是 Docker 中最重要的命令之一,用于启动新的容器。这个命令功能强大且灵活,支持许多选项来定制容器的行为。下面介绍 docker run 命令的各个部分,并给出一些使用示例。

基本语法

docker run 的基本语法如下:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • [OPTIONS]: 这些是可选的标志,用于配置容器的运行环境。
  • IMAGE: 要运行的 Docker 镜像的名称。
  • [COMMAND]: 如果需要,可以覆盖镜像中的默认命令。
  • [ARG...]: 传递给命令的参数。

选项详解

通用选项
  • -d, --detach: 以守护进程模式运行容器,在后台运行。
  • --name NAME: 为新创建的容器指定名称。
  • -p, --publish: 将容器内的端口映射到主机。
  • -P, --publish-all: 映射容器内所有公开的端口到主机随机端口。
  • -v, --volume: 将宿主机目录挂载到容器内。
  • --env, -e: 设置环境变量。
  • --restart: 设置容器重启策略。
  • --network: 设置容器使用的网络。
示例
  1. 基础用法:
    启动一个 nginx 容器并将其放在后台运行:

    docker run -d nginx
    
  2. 端口映射:
    将容器内的 80 端口映射到主机的 8080 端口:

    docker run -d -p 8080:80 nginx
    
  3. 命名容器:
    创建一个名为 mynginx 的 nginx 容器:

    docker run -d --name mynginx nginx
    
  4. 挂载卷:
    将宿主机的 /mnt/data 目录挂载到容器内的 /data 目录:

    docker run -d -v /mnt/data:/data nginx
    
  5. 设置环境变量:
    设置环境变量 DEBUG=1 并启动容器:

    docker run -d -e DEBUG=1 nginx
    
  6. 覆盖默认命令:
    启动 nginx 容器但不启动 web 服务器(通常 nginx 的默认命令是 nginx -g "daemon off;"):

    docker run -d nginx tail -f /dev/null
    
  7. 指定容器重启策略:
    设置容器重启策略为 always,即使容器异常退出也会自动重启:

    docker run -d --restart always nginx
    
  8. 指定容器使用的网络:
    将容器连接到名为 mynet 的自定义网络:

    docker run -d --network mynet nginx
    

高级选项

除了上述常用选项外,还有一些较为高级的选项:

  • -it: 交互式运行容器,分配一个伪 tty。
  • --entrypoint: 覆盖容器的默认入口点。
  • --security-opt: 设置安全选项。
  • --cap-add, --cap-drop: 添加或删除容器的权限。
  • --device: 挂载设备到容器。
  • --ulimit: 设置容器的 ulimit。
  • --user, -u: 指定容器内运行的用户。
  • --label: 设置元数据标签。
  • --privileged: 运行特权容器。
  • --read-only: 以只读模式运行文件系统。
示例
  1. 交互式运行容器:
    以交互模式启动一个 bash shell:

    docker run -it ubuntu /bin/bash
    
  2. 覆盖默认入口点:
    使用 ls 命令替换容器默认的 ENTRYPOINT

    docker run -it --entrypoint ls ubuntu
    
  3. 设置用户:
    使用特定用户身份运行容器内的命令:

    docker run -it -u 1000:1000 ubuntu whoami
    
  4. 添加标签:
    为容器添加标签 owner=johnproject=webapp

    docker run -it --label owner=john --label project=webapp ubuntu
    
  5. 运行特权容器:
    运行一个特权容器,该容器可以访问宿主机的资源:

    docker run -it --privileged ubuntu
    

结论

docker run 命令是 Docker 中非常强大的工具,可以通过多种方式来定制容器的行为。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • IPSG简介
  • 轻松入门Linux—CentOS,直接拿捏 —/— <2>
  • 【WEB安全】 PHP基础文件知识完整教学中(超详细)
  • 测试面试宝典(三十六)—— 工作中用fiddler来做什么?
  • ubuntu安装dockergitlab
  • 实战:ZooKeeper 操作命令和集群部署
  • Mybatis基础
  • 9000字干货:从消息流平台Serverless之路,看Serverless标准演进
  • Web3.js 4.x版本事件监听详解:从HTTP到WebSocket的迁移
  • C# 设计倒计时器、串口助手开发
  • Geoscene Pro的数据管理
  • 面试场景题系列--(2)短 URL 生成器设计:百亿短 URL 怎样做到无冲突?--xunznux
  • [Spring] Spring配置文件
  • 秋招突击——7/29——操作系统——网络IO
  • 系统移植(八)u-boot源码解析(未整理)
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 345-反转字符串中的元音字母
  • CAP理论的例子讲解
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Flannel解读
  • go语言学习初探(一)
  • js写一个简单的选项卡
  • js正则,这点儿就够用了
  • Leetcode 27 Remove Element
  • spring boot 整合mybatis 无法输出sql的问题
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 多线程事务回滚
  • 目录与文件属性:编写ls
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 一个完整Java Web项目背后的密码
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​queue --- 一个同步的队列类​
  • #考研#计算机文化知识1(局域网及网络互联)
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • $(function(){})与(function($){....})(jQuery)的区别
  • (007)XHTML文档之标题——h1~h6
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (Python) SOAP Web Service (HTTP POST)
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)计算机毕业设计高校学生选课系统
  • (简单) HDU 2612 Find a way,BFS。
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (十六)视图变换 正交投影 透视投影
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (一)插入排序
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)关于pipe()的详细解析
  • (转)我也是一只IT小小鸟
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .describe() python_Python-Win32com-Excel
  • .net core Swagger 过滤部分Api