Docker学习笔记(十二)docker镜像没有vi怎么优雅的编辑文本

镜像最小化原则‌:

  • 避免在生产镜像中安装非必要工具,优先选择 ‌宿主机挂载 ‌ 或 ‌Dockerfile 构建‌ 方案

1、直接通过 Shell 命令修改文件(无需编辑器)

复制代码
# 进入容器
docker exec -it mysql-container bash

# 使用 echo 追加内容(示例:修改绑定地址),如果文件不存在,会直接创建对应文件
echo "我是测试内容1">>/wj/test.txt

# 重启服务(容器内执行)
service mysql restart

2、从宿主机复制文件到容器

复制代码
# 1. 将容器内的配置文件复制到宿主机
docker cp mysql-container:/etc/mysql/my.cnf ./my.cnf

# 2. 在宿主机用本地编辑器(如vim)编辑文件
vim ./my.cnf

# 3. 将修改后的文件复制回容器
docker cp ./my.cnf mysql-container:/etc/mysql/my.cnf

# 4. 重启容器使配置生效
docker restart mysql-container

3、挂载宿主目录到容器(推荐长期方案)

复制代码
# 1. 宿主机创建配置目录
mkdir -p ~/mysql-docker/conf

# 2. 首次运行容器时挂载配置文件目录
docker run -d \
  --name mysql-container \
  -v ~/mysql-docker/conf:/etc/mysql/conf.d \  # 挂载配置目录
  -e MYSQL_ROOT_PASSWORD=your_password \
  mysql:tag

# 3. 在宿主机直接编辑配置文件(自动同步到容器)
vim ~/mysql-docker/conf/custom.cnf

# 4. 重启容器或重载配置
docker exec mysql-container sh -c 'service mysql reload'

4、临时安装编辑器(仅限调试环境)

复制代码
# 进入容器并安装 nano(轻量级编辑器)
docker exec -it mysql-container bash
apt-get update && apt-get install -y nano  # Debian/Ubuntu 镜像
# 或
yum install -y nano                        # CentOS 镜像

# 使用 nano 编辑文件
nano /path/to/file

5、通过 Dockerfile 构建自定义镜像(生产环境推荐)

复制代码
FROM mysql:8.0
# 安装必要工具
RUN apt-get update && apt-get install -y nano
# 添加自定义配置文件
COPY custom.cnf /etc/mysql/conf.d/
#并运行
docker build -t my-mysql .
docker run -d --name my-mysql-container my-mysql
相关推荐
ctlover2 小时前
Python学习第 5 日
学习
六点_dn3 小时前
RabbitMQ学习笔记-部署和使用
笔记·学习·rabbitmq
2501_926978334 小时前
以说明书 DNA 为模板——完整 AGI 的结构图景
前端·人工智能·经验分享·笔记·ai写作
天天爱吃肉82184 小时前
商用车多体动力学实战笔记|第6篇:动力传动系统(发动机、变速箱、分动器、TCS、LSD限滑差速)
大数据·人工智能·笔记·python·嵌入式硬件·汽车
IT19955 小时前
Dify 实战笔记:工作流核心玩法 + 开源 AI 应用全解析
笔记
MartinYeung55 小时前
[论文学习]OSReward:为跨平台计算机使用奖励模型建立标准化评估
人工智能·学习
dong1326975 小时前
Agent Skills学习笔记
笔记·学习
for_ever_love__6 小时前
iOS:网络请求再学习
网络·学习·ios·objective-c
世人万千丶6 小时前
鸿蒙Crash高级捕获与异常监控:全局异常兜底/崩溃栈解析/符号表还原/智能聚类/闭环修复
学习·机器学习·华为·数据挖掘·harmonyos·鸿蒙·聚类
Jul1en_7 小时前
【Claude Code Compact】源码级别的学习上下文压缩
java·前端·学习·github·ai编程