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

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

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

相关文章:

  • FAQ - VMware vSphere Web 控制台中鼠标控制不了怎么办?
  • Cursor学习总结
  • 正则表达式基本语法和Java中的简单使用
  • LiteIDE中配置golang编译生成无CMD窗口EXE的步骤
  • Mybatis——04
  • 【Python】基于OpenAI API实现PDF发票信息提取
  • Linux 基础入门操作 第十一章 图形界面设计
  • 【day2】数据结构刷题 栈
  • 【linux】线程概念与控制
  • 05STM32定时器-01定时器概述
  • C#测试基于OllamaSharp调用本地DeepSeek模型
  • AI基础01-文本数据采集
  • TCP/IP协议的三次握手和四次挥手
  • python爬虫Redis数据库
  • Win32桌面编程:ACLUI.DLL,EditSecurity(IntPtr hwndOwner, ISecurityInformation psi)
  • Unity代码热更新和资源热更新
  • Elasticsearch原生linux部署集群 和docker部署集群
  • 基于深度学习的相位调制算法步骤
  • Noe.js 原生 http 模块 vs Express 框架对比
  • 【leetcode题解】贪心算法
  • AI重构SEO关键词优化路径
  • docker安装在D盘/docker迁移到D盘
  • 用数组模拟循环队列
  • js中console 打印有哪些格式?
  • XSS Game(DOM型) 靶场 通关
  • GitHub 发现 ruby-saml 严重漏洞,账户安全岌岌可危
  • 手撕算法——链表
  • 基于springboot的“衣依”服装销售平台(043)
  • linux_git使用
  • 【Json RPC框架】框架介绍与环境搭建(Ubuntu 22.04)