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 中非常强大的工具,可以通过多种方式来定制容器的行为。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值