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

在运维工作中,镜像启动一个容器的命令的什么?

在运维工作中,使用 Docker 镜像启动容器的核心命令是 docker run。下面详细介绍用法、参数和常见场景:

一、基本命令格式

docker run [选项] 镜像名称[:标签] [命令] [参数...]

关键参数解释

  • -d:后台运行容器(detach 模式)
  • -p:端口映射(宿主机端口:容器端口)
  • --name:指定容器名称(自定义,便于管理)
  • -v:挂载卷(宿主机路径:容器路径)
  • -e:设置环境变量
  • --rm:容器退出时自动删除(临时测试用)
  • --restart=always:容器自动重启(生产环境常用)

二、常用场景示例

1. 最简单的前台运行(测试用)

docker run alpine echo "Hello Docker"
  • 启动 alpine 镜像
  • 执行 echo "Hello Docker" 命令
  • 命令执行完后容器自动退出

2. 后台运行并映射端口(最常用)

docker run -d --name my-nginx -p 80:80 nginx:1.23
  • -d:后台运行
  • --name my-nginx:容器命名为 my-nginx
  • -p 80:80:将宿主机的 80 端口映射到容器的 80 端口
  • nginx:1.23:使用 nginx 镜像的 1.23 版本

3. 挂载数据卷(持久化存储)

docker run -d -v /data/nginx/html:/usr/share/nginx/html nginx
  • -v /data/nginx/html:/usr/share/nginx/html:将宿主机的 /data/nginx/html 目录挂载到容器的 /usr/share/nginx/html 目录
  • 容器内的文件修改会同步到宿主机,实现数据持久化

4. 设置环境变量

docker run -d -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
  • -e MYSQL_ROOT_PASSWORD=123456:设置 MySQL 的 root 密码为 123456
  • 很多镜像通过环境变量配置参数(如数据库连接信息、服务端口等)

5. 交互式终端(进入容器内部)

docker run -it --name my-bash alpine /bin/sh
  • -i:保持标准输入打开
  • -t:分配一个伪终端(Terminal)
  • 进入容器后,可以执行 lscd 等命令

6. 容器退出时自动删除(临时测试)

docker run --rm alpine uname -a
  • --rm:容器退出后自动删除,不保留容器实例
  • 适合临时执行命令,避免残留无用容器

7. 生产环境常用配置(自动重启 + 资源限制)

docker run -d \--name my-app \--restart=always \-m 512m \--cpus=0.5 \-p 8080:8080 \my-image:v1
  • --restart=always:容器崩溃或宿主机重启时,自动重启容器
  • -m 512m:限制容器最多使用 512MB 内存
  • --cpus=0.5:限制容器最多使用 0.5 个 CPU 核心

三、验证容器是否启动成功

# 查看运行中的容器
docker ps# 查看所有容器(包括已停止的)
docker ps -a# 查看容器日志
docker logs my-nginx# 进入运行中的容器
docker exec -it my-nginx bash

四、完整参数参考(选读)

docker run 的参数非常多,常用参数汇总:

参数 作用
-d 后台运行容器
-p 宿主机端口:容器端口 端口映射(如 -p 80:80-p 8080:80
--name 容器名 自定义容器名称(便于管理)
-v 宿主机路径:容器路径 挂载卷(如 -v /data:/app/data
-e 变量名=值 设置环境变量(如 -e DB_HOST=localhost
--rm 容器退出时自动删除
--restart=策略 重启策略(alwayson-failureunless-stopped
-m 内存大小 限制内存(如 -m 512m-m 1g
--cpus=CPU数 限制 CPU(如 --cpus=0.5--cpus=2
-it 交互式终端(用于进入容器)
--network=网络名 指定容器所属的网络

五、总结

启动容器的核心是理解 docker run 的参数组合,根据实际需求选择:

  • 测试:用 --rm-it 快速验证
  • 服务:用 -d-p--restart=always 长期运行
  • 数据持久化:用 -v 挂载卷
  • 资源隔离:用 -m--cpus 限制资源

掌握这些,你就能灵活管理 Docker 容器,满足各种运维场景需求。

http://www.sczhlp.com/news/1014.html

相关文章:

  • python命令行解析模块argparse
  • 学习笔记:一次RMAN还原慢的分析
  • 抖音Next-User Retrieva:生成式冷启动召回
  • 求两个自然数a和b的最大公约数(递归算法)
  • nginx压缩字体ttf的有关配置
  • 如何选择工业电脑?
  • 教你创业SUS
  • 使用 nacos-sdk-csharp 服务订阅机制动态更新Yarp配置的简易Demo
  • Three.js 的第一个工程-创建一个场景
  • nginx配置文件生产环境优化
  • 贪心随笔
  • ubuntu系统ufw开放端口教程
  • 基础算法随笔
  • 技术跃迁!DVP AirCAMERA _1020摄像头小板赋能开发者构建顶级视觉系统
  • 小工具
  • Ubuntu20.04 安装gcc11 g++11, Ubuntu18.04
  • Forward prop in tensorflow
  • aws 上传自定义证书
  • 空间智能赋能城市低空数字底座及智能网联系统建设
  • 扫描线求矩形周长并的注意事项
  • 微店商品详情接口micro.item_get请求参数响应参数解析
  • 游戏服务器优雅关服设计与实现
  • 思通数科 AI 安监系统:工业园安全监管的 “智能防线”
  • snort入侵检测基础
  • Linux防火墙
  • SAP 后继物料简介
  • SQL注入漏洞
  • 使用mysqlshell查询数据库返回json格式数据
  • Centos中将UTC的时区改为CTS时区
  • MyEMS 开源能源管理系统核心代码解读 023