镜像最小化原则:
- 避免在生产镜像中安装非必要工具,优先选择 宿主机挂载 或 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