20250706-5-Docker 快速入门(上)-创建容器常用选项_笔记

一、创建容器常用选项



1. 创建容器常用选项



1)常用选项
  • 创建容器常用选项

    • 交互式选项:
      • -i:保持标准输入打开,允许交互式操作
      • -t:分配伪终端,使容器像传统终端一样工作
      • 组合使用:-it常用于进入容器交互模式,如docker exec -it <容器> bash
    • 后台运行:
      • -d:以守护进程方式运行容器
      • 注意事项:纯净操作系统镜像(如centos)直接使用-d会立即退出,因为没有守护进程
    • 终端分配原理:
      • 伪终端作用:当使用-it时,伪终端会作为容器的一号进程来维持容器运行
      • 对比实验:演示了docker run -d centos会退出,而docker run -it -d centos能保持运行
    • 进程保持机制:
      • nginx示例:通过docker top查看nginx容器有主进程和worker进程保持运行
      • centos示例:加-it后伪终端成为一号进程,防止容器退出
  • 设置环境变量

    

    • 参数格式:-e key=value
    • 应用场景:
      • 区分开发/测试/生产环境配置
      • 传递数据库连接等动态参数
    • 示例:-e env=prod设置环境类型为生产环境
    • 容器内验证:通过echo$env可查看传入的变量值
  • 发布容器端口

    参数格式:

    • -P:自动映射所有expose端口到随机宿主机端口
    • -p 宿主机端口:容器端口:指定映射关系
    • 示例:-p 88:80将容器80端口映射到宿主机88端口
    • 访问验证:通过浏览器访问宿主机IP:88测试端口映射
  • 指定容器名称

    

    • 参数格式:--name 容器名
    • 管理优势:
      • 替代难记的容器ID
      • 提高可读性和管理效率
    • 示例:--name web为nginx容器命名
  • 设置容器主机名

    参数格式:-h 主机名

    • 示例:-h web设置容器内主机名
    • 验证方法:进入容器执行hostname命令查看
  • 容器重启策略

    
    • 参数格式:--restart=策略
    • 策略类型:
      • no:不自动重启(默认)
      • always:总是重启
      • on-failure:失败时重启
    • 生产建议:使用always确保服务高可用
    • 重要特性:主机重启后docker会自动拉起配置了always的容器
  • 查看容器详细信息

    

    • 命令:docker inspect 容器
    • 输出内容:
      • 网络配置(IP、网关等)
      • 存储驱动信息
      • 挂载点详情
    • 应用场景:调试容器问题时获取完整配置信息
  • 容器读写层与数据持久性

    

    • 存储位置:/var/lib/docker/overlay2/
    • 读写层特性:
      • 容器修改保存在读写层(UpperDir)
      • 删除容器会同时删除读写层数据
    • 数据查看:
      • 通过docker inspect找到UpperDir路径
      • 在宿主机可直接查看容器内文件
    • 持久化建议:重要数据应使用volume或bind mount
2)资源限制
  • 内存限制:
    • -m/--memory: 设置容器可使用的最大内存量,如500m表示500MB,1g表示1GB
    • --memory-swap: 控制允许交换到磁盘的内存量
    • --memory-swappiness: 设置容器使用SWAP分区的百分比(0-100),默认-1表示继承宿主机设置
    • --oom-kill-disable: 禁用OOM Killer机制
  • CPU限制:
    • --cpus: 指定容器可使用的CPU核心数量,如1表示1核,1.5表示1.5核
    • --cpuset-cpus: 限制容器使用特定的CPU核心编号,如"0-3"表示使用0到3号核心
    • --cpu-shares: 设置CPU使用的相对权重
  • 必要性:
    • 防止单个容器资源耗尽影响宿主机和其他容器
    • 避免"造反"现象:当某个容器异常消耗资源时,不会拖垮整个宿主机
    • 在多容器环境下实现资源制衡,确保各容器公平使用资源
  • 实际应用:
    • 典型限制示例:docker run -m="500m" --cpus="1" -d nginx
    • 内存单位支持:MB(m)、GB(g)等标准单位
    • CPU核心数支持小数形式,如0.5表示半个核心
  • 配置建议:
    • 根据服务类型合理分配资源:Web服务通常需要更多内存,计算服务需要更多CPU
    • 生产环境必须设置资源限制,开发环境可适当放宽
    • 监控容器实际资源使用情况,动态调整限制参数
  • 注意事项:
    • 资源限制不是绝对的,极端情况下仍可能影响系统稳定性
    • 设置过小的限制可能导致服务性能下降
    • CPU共享权重(--cpu-shares)和核心绑定(--cpuset-cpus)通常只在特殊场景使用
二、知识小结

知识点

核心内容

考试重点/易混淆点

难度系数

创建容器常用选项

-d后台运行、-it分配伪终端、-e环境变量、-p端口映射、--name容器命名、--restart重启策略

-it组合作用:①进入容器交互界面 ②作为纯净系统守护进程

⭐⭐⭐

容器资源限制

--memory内存限制(如500M)、--cpusCPU核数限制(如1.5核)

关键区别:默认无限制 vs 显式限制可防止资源抢占

⭐⭐⭐⭐

容器数据持久化

读写层存储在/var/lib/docker/containers/ID,容器删除即丢失数据

易混淆点:重启容器≠删除容器,数据不会丢失

⭐⭐⭐

容器网络基础

-p 宿主机端口:容器端口实现端口暴露(如-p 8888:80)

重点验证:通过宿主机IP:端口访问容器服务

⭐⭐

镜像与容器关系

镜像需包含守护进程(如nginx),否则需-it维持运行

典型对比:nginx镜像(自带进程)vs centos镜像(需伪终端)

⭐⭐⭐⭐

容器状态管理

docker ps -l查看最新容器、docker top查看进程、docker inspect查看详情

关键命令:docker exec -it ID bash进入运行中容器

⭐⭐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/88033.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/88033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

插值与拟合(3):B样条曲线

在路径规划问题中&#xff0c;通常会用到B样条来平滑路径&#xff0c;本文实现并封装了三次准均匀开放B样条曲线&#xff0c;供大学学习使用。作者提供了三套代码方案。可以用于不同平台&#xff1a;方案1&#xff1a;MATLAB&#xff1b;方案2&#xff1a;标准C&#xff1b;方案…

[免费]基于Python豆瓣电影数据分析及可视化系统(Flask+echarts+pandas)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的于Python豆瓣电影数据分析及可视化系统(Flaskechartpandas)【论文源码SQL脚本】&#xff0c;分享下哈。项目介绍随着如今电影越来越多&#xff0c;各种各样的烂片和捞钱的商业片也层出不穷&#xff0c;而有意…

SQL127 月总刷题数和日均刷题数

SQL127 月总刷题数和日均刷题数 withtemp as (selectDATE_FORMAT(submit_time, "%Y%m") as submit_month,count(question_id) as month_q_cnt,round(count(question_id) / day(last_day(max(submit_time))),3) as avg_day_q_cntfrompractice_recordwhereyear(submit…

unity luban接入

1.找到luban官网并下载他的例子和.net8.0的sdk安装 官网地址如下 快速上手 | Luban 参考大佬教程如下 Luban新版本接入教程_哔哩哔哩_bilibili 2.找到他的luban_examples-main示例下的两个文件MiniTemplate和tool 3.MiniTemplate这个文件复制一份到项目工程下&#xff0c;自…

Django服务开发镜像构建

最后完整的项目目录结构1、安装依赖pip install django django-tables2 django-filter2、创建项目和主应用django-admin startproject configcd configpython manage.py startapp dynamic_models3、配置settings.py将项目模块dynamic_models加入进来&#xff0c;django_tables2…

20250706-3-Docker 快速入门(上)-常用镜像管理命令_笔记

一、配置加速器&#xfeff;1. Docker Hub简介与地址&#xfeff;公共镜像仓库: 由Docker公司维护的公共镜像仓库&#xff0c;包含大量容器镜像默认下载源: Docker工具默认从这个公共镜像库下载镜像访问地址: https://hub.docker.com镜像搜索功能: 可通过浏览器访问图形化管理系…

【unity游戏开发——优化篇】使用Occlusion Culling遮挡剔除,只渲染相机视野内的游戏物体提升游戏性能

注意&#xff1a;考虑到优化的内容比较多&#xff0c;我将该内容分开&#xff0c;并全部整合放在【unity游戏开发——优化篇】专栏里&#xff0c;感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言实战1、确保所有静止的3D物体都标记为Occluder Static静态遮挡体和Occludee …

通用业务编号生成工具类(MyBatis-Plus + Spring Boot)详解 + 3种调用方式

在企业应用开发中&#xff0c;我们经常需要生成类似 BZ -240704-0001 这种“业务编号”&#xff0c;它通常具有以下特点&#xff1a;前缀&#xff1a;代表业务类型&#xff0c;如 BZ 表示包装日期&#xff1a;年月日格式&#xff0c;通常为 yyMMdd序列号&#xff1a;当天内递增…

前端相关性能优化笔记

1.打开速度怎么变快 - 首屏加载优化2.再次打开速度怎么变快 - 缓存优化了3.操作怎么才顺滑 - 渲染优化4.动画怎么保证流畅 - 长任务拆分2.1 首屏加载指标细化:1.FP(First Paint 首次绘制) 2.FCP(First contentful Paint 首次内容绘制)&#xff0c;FP 到 FCP 中间其实主要是 SPA…

7.7晚自习作业

实操作业02&#xff1a;Spark核心开发 作业说明 请严格按照步骤操作&#xff0c;并将最终结果文件&#xff08;命名为&#xff1a;sparkcore_result.txt&#xff09;于20点前上传。结果文件需包含每一步的关键命令执行结果文本输出。 一、数据读取与转换操作 上传账户数据$…

手机FunASR识别SIM卡通话占用内存和运行性能分析

手机FunASR识别SIM卡通话占用内存和运行性能分析 --本地AI电话机器人 上一篇&#xff1a;手机无网离线使用FunASR识别SIM卡语音通话内容 下一篇&#xff1a;手机通话语音离线ASR识别商用和优化方向 一、前言 书接上一文《阿里FunASR本地断网离线识别模型简析》&#xff0c;…

虚幻引擎Unreal Engine5恐怖游戏设计制作教程,从入门到精通从零开始完整项目开发实战详细讲解中英字幕

和大家分享一个以前收集的UE5虚幻引擎恐怖游戏开发教程&#xff0c;这是国外一个大神制作的视频教程&#xff0c;教程从零开始到制作出一款完整的游戏。内容讲解全面&#xff0c;如蓝图基础知识讲解、角色控制、高级交互系统、高级库存系统、物品检查、恐怖环境氛围设计、过场动…

多人协同开发时Git使用命令

拉取仓库代码 # 拉取远程仓库至本地tar_dir路径 git clone gitgithub.com:your-repo.git target_dir # 默认是拉取远程master分支&#xff0c;下面拉取并切换到自己需要开发的分支上 # 假设自己需要开发的分支是/feature/my_branch分支 git checkout -b feature/my_branch orig…

线性表——双向链表

线性表——双向链表1. 双向链表的实现1.1 简单图例1.2 结点的定义1.3 新结点的创建1.4 链表的初始化1.5 结点的插入1.5.1 头部插入&#xff08;头插&#xff09;1.5.2 尾部插入&#xff08;尾插&#xff09;1.5.3 任意位置&#xff08;前&#xff09;插入1.6 结点的删除1.6.1 头…

Java后端技术博客汇总文档

文章目录 前言Java后端汇总链接Java基础知识点数据结构算法&#xff08;Java实现&#xff09;算法知识点合集算法刷题算法竞赛AcWing课程蓝桥杯AB组辅导课合集&#xff08;更新中…&#xff09; 源码分析redission 数据库SQL ServerMySQLRedis -Canal JUC并发编程JVMNetty日志框…

QT 菜单栏设计使用方法

目录 常用设置函数 多个QAction的单选设置 ​​​​​​​菜单相关类 ​​​​​​​ 系统菜单的生成和响应 使用代码添加系统菜单 使用UI设计器设计系统菜单 使用Qt设计及界面时&#xff0c;常用的两种方式添加菜单&#xff0c;第一使用UI界面添加&#xff0c;第二种 在…

AIGC领域AI艺术,打造个性化艺术作品

AIGC领域AI艺术,打造个性化艺术作品 关键词:AIGC、AI艺术、生成对抗网络、个性化创作、深度学习、艺术风格迁移、创意计算 摘要:本文深入探讨了AIGC(人工智能生成内容)在艺术创作领域的应用,重点分析了如何利用AI技术打造个性化艺术作品。文章从技术原理出发,详细解析了生…

基于Flask+Jinja2的快捷教务系统(后端链接到新版正方教务系统)

快捷教务系统&#xff08;Easy Educational Administration Management System, EasyEAMS&#xff09; 项目简介 EasyEAMS 是一个基于 Flask Jinja2 的现代化教务系统 Web 应用。学生可通过网页端登录&#xff0c;在线查询个人信息、成绩、课表、学业生涯、通知、选课等。系…

EDM自动化与出海独立开发实用教程

随着互联网全球化发展&#xff0c;越来越多的独立开发者&#xff08;Indie Developer&#xff09;选择将自己的产品推向海外市场。如何高效地获客、激活用户、提升转化率&#xff0c;成为出海过程中必须解决的问题。EDM&#xff08;电子邮件营销&#xff09;自动化&#xff0c;…

「日拱一码」017 深度学习常用库——TensorFlow

目录 基础操作 张量操作&#xff1a; tf.constant 用于创建常量张量 tf.Variable 用于创建可训练的变量张量 tf.reshape 可改变张量的形状 tf.concat 可将多个张量沿指定维度拼接 tf.split 则可将张量沿指定维度分割 数学运算&#xff1a; tf.add 张量的加运算 tf.su…