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

Docker启动容器命令详解

Docker启动容器命令详解

乌龙茶在刚学运行docker容器的时候,只会死记硬背那些参数,不知道其中的含义。理解了其中的意思才能更好的运用,今天就把他们补上。

1.基本命令

一般来讲我们在运行容器的时候都大概是以下情况:

  • docker run [OPTIONS] IMAGE [COMMAND] - 创建并启动容器
    • -d 后台运行
    • -it 交互式终端
    • --name 指定容器名称
    • -p 端口映射(主机端口:容器端口)
    • -v 卷挂载(主机目录:容器目录)
    • --restart 容器重启策略(no, on-failure, always, unless-stopped)

以下是 Docker run 命令中常用选项的全称和解释:

2. 常用运行选项(OPTIONS)详解

(1)-d / --detach:后台运行容器

默认情况下,Docker 容器会占用当前终端。使用 -d 可以让容器在后台运行(detached mode)。

示例:后台运行 Nginx 容器

docker run -d --name my-nginx nginx
  • --name my-nginx:给容器命名(否则 Docker 会随机分配一个名称)。

检查运行中的容器

docker ps

查看容器日志

docker logs my-nginx

(2)-it:交互式运行容器

-it 是两个选项的组合:

  • -i--interactive):保持 STDIN 打开,允许输入。
  • -t--tty):分配一个伪终端(TTY),使容器像本地终端一样交互。

示例:进入 Ubuntu 容器的 Shell

docker run -it --name my-ubuntu ubuntu /bin/bash

运行后,你会进入容器的终端,可以执行 lscat 等命令。

退出容器

  • 输入 exitCtrl+D 退出并停止容器。
  • 输入 Ctrl+P + Ctrl+Q 退出但不停止容器(适用于后台运行)。

(3)-p / --publish:端口映射

Docker 容器默认是隔离的,外部无法直接访问容器内的服务(如 Web 服务器)。使用 -p 可以将 主机端口 映射到 容器端口

格式

-p <主机端口>:<容器端口>

示例:运行 Nginx 并映射端口

docker run -d -p 8080:80 --name my-web nginx
  • 主机 8080 端口 → 容器的 80 端口。
  • 访问 http://localhost:8080 即可看到 Nginx 默认页面。

查看端口映射

docker port my-web

(4)-v / --volume:数据卷挂载

Docker 容器的文件系统是临时的,容器删除后数据会丢失。使用 -v 可以将 主机目录Docker 卷 挂载到容器中,实现数据持久化。

格式

-v <主机路径>:<容器路径>

示例 1:挂载主机目录

docker run -v /host/data:/container/data ubuntu
  • 主机 /host/data 目录 → 容器的 /container/data

示例 2:使用 Docker 卷

docker volume create my-vol  # 创建卷
docker run -v my-vol:/app/data ubuntu
  • 数据存储在 Docker 管理的卷 my-vol 中,即使容器删除,数据仍然存在。

查看数据卷

docker volume ls

(5)--restart:容器重启策略

Docker 容器默认不会自动重启,但可以通过 --restart 设置重启策略:

选项说明
no默认,不自动重启
on-failure容器异常退出时重启
always总是重启(即使手动停止)
unless-stopped除非手动停止,否则总是重启

示例:设置容器自动重启

docker run -d --restart unless-stopped --name my-nginx nginx

3. 其他常用运行选项

选项说明
--rm容器退出后自动删除(适合临时测试)
-e / --env设置环境变量(如 -e MYSQL_ROOT_PASSWORD=123456
--network指定容器使用的网络(如 --network my-net
--link连接其他容器(旧版方式,推荐用 --network

示例:运行 MySQL 并设置密码

docker run -d --name my-mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0

4. 容器生命周期管理

命令说明
docker start <容器>启动已停止的容器
docker stop <容器>停止运行中的容器
docker restart <容器>重启容器
docker rm <容器>删除容器(需先停止)
docker exec -it <容器> <命令>在运行中的容器中执行命令

示例:进入运行中的 Nginx 容器

docker exec -it my-nginx /bin/bash

5. 总结

  • docker run 是运行容器的核心命令,配合 -d-it-p-v 等选项可以实现不同需求。
  • 后台运行-d交互式终端-it
  • 端口映射-p)和 数据卷挂载-v)是生产环境必备技能。
  • 使用 --restart 可以让容器自动重启,提高服务稳定性。

掌握这些命令后,你可以灵活地管理和运行 Docker 容器! 🚀

http://www.dtcms.com/a/306321.html

相关文章:

  • VLLM离线推理本地Qwen3_32B大模型
  • Linux的应用层协议——http和https
  • SpringBoot 整合 自定义MongoDB
  • 大坝安全监测站:对大坝的坝体、坝基、两岸边坡及相关设施进行全方位、实时的安全监测
  • 分层解耦(Controller,Service,Dao)
  • RHCA - CL260 | Day03:配置 RHCS 集群
  • 城市内涝淹水体积估算工作流程(QGIS)
  • 开疆智能Mpdbus转Profinet网关连接电磁流量计配置案例
  • 20250730在荣品的PRO-RK3566开发板的Android13下调通敦泰的FT8206触控芯片【I2C的挂载】
  • IBM Watsonx BI:AI赋能的下一代商业智能平台
  • 八股文场景题
  • 企业微信API接口发消息实战:从0到1的技术突破之旅
  • MySQL 读写分离
  • 论文阅读|NeurIPS 2024|Mamba进一步研究|MSVMamba
  • 飞算科技:原创技术重塑 Java 开发,引领行业数智化新浪潮
  • 网络的学习 2 Socket
  • 面记 | android 应用开发(某半导体公司)
  • LoRaWAN协议,提升公用事业能源效率的“隐形引擎”
  • 动态规划Day5学习心得
  • windows本地使用conda部署Open-webui
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-48,(知识点:BUCK电路的损耗,开关损耗,导通损耗,电感损耗、驱动损耗)
  • BeeWorks Meet:私有化部署,重塑高安全需求行业的视频会议体验
  • ubuntu自动搭建Android平台NDK编译环境
  • C++11 std::function 详解:通用多态函数包装器
  • nav2--安装/教程
  • 中大网校社会工作师培训持续发力,多维度提升服务效能
  • 论文阅读|ArxiV 2024|Mamba进一步研究|VSSD
  • 【AI 数据管理】Text2SQL:当AI成为你和数据库之间的金牌“翻译官”
  • 亚马逊Kiro重塑AI编程:从“氛围编码”到规范驱动的革命
  • 排序算法入门:直接插入排序详解