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
相关推荐
运维栈记2 分钟前
虚拟化网络的根基-网络命名空间
网络·docker·容器
ljt272496066112 分钟前
Compose笔记(六十九)--Pager
笔记
学历真的很重要23 分钟前
LangChain V1.0 Context Engineering(上下文工程)详细指南
人工智能·后端·学习·语言模型·面试·职场和发展·langchain
koo36434 分钟前
pytorch深度学习笔记13
pytorch·笔记·深度学习
崎岖Qiu1 小时前
【OS笔记36】:文件存储空间管理(一)- 空闲区表法
笔记·操作系统·存储管理·文件系统·os
菩提小狗1 小时前
Sqlmap双击运行脚本,双击直接打开。
前端·笔记·安全·web安全
码农小韩1 小时前
基于Linux的C++学习——动态数组容器vector
linux·c语言·开发语言·数据结构·c++·单片机·学习
Hellc0071 小时前
Docker网络冲突排查与解决方案:完整指南
网络·docker·容器
嵌入式-老费2 小时前
外壳3D结构设计(学习的方法)
学习
代码游侠2 小时前
应用——智能配电箱监控系统
linux·服务器·数据库·笔记·算法·sqlite