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
相关推荐
妙妙屋(zy)7 分钟前
基于Astro开发的Fuwari静态博客模版配置CICD流程
服务器·docker
KD杜小帅8 分钟前
日志分析-windows日志分析base--笔记ing
笔记
xinzheng新政1 小时前
纸板制造胶工艺学习1
学习·制造
Fine姐1 小时前
博弈论03——混合纳什均衡的收益求法
笔记·算法
孞㐑¥1 小时前
Linux之网络部分-应用层协议 HTTP
linux·开发语言·c++·经验分享·笔记
zkmall1 小时前
ZKmall开源商城架构工具链:Docker、k8s 部署与管理技巧
docker·架构·开源
楼田莉子2 小时前
C++学习之继承
开发语言·c++·学习·visual studio
Jay Kay3 小时前
从0到1理解大语言模型:读《大语言模型:从理论到实践(第2版)》笔记
人工智能·笔记·语言模型
洛卡卡了3 小时前
面试官问我会不会用 AI,我拿出这个 Ollama + FastGPT 项目给他看
人工智能·后端·docker
KD杜小帅3 小时前
2025年Solar应急响应公益月赛-7月笔记ing
笔记