Oracle Linux 8.6容器无法使用dnf/yum/apt-get,如何安装Vim?
在MySQL容器中安装Vim的解决方案
问题原因
你的MySQL容器默认以mysql用户运行,无root权限,因此无法执行dnf/yum等包管理命令;同时Oracle Linux 8默认使用dnf作为包管理器,而非apt-get。
方法一:临时安装(容器运行时)
- 以root身份进入容器:
docker exec -it --user root mysql /bin/bash
- 若安装时提示找不到包,先更新包缓存:
dnf makecache
- 安装Vim:
dnf install -y vim
该方式仅在当前容器生命周期内有效,容器重建后需重新安装。
方法二:永久安装(构建自定义镜像)
如果需要每次启动容器都自带Vim,可通过构建自定义镜像实现:
- 在
docker-compose.yml所在目录创建Dockerfile:
FROM mysql:latest USER root # 安装Vim RUN dnf install -y vim # 切换回默认的mysql用户 USER mysql
- 修改
docker-compose.yml中的image字段为build: .,修改后的配置如下:
version: "3" services: mysql: build: . container_name: mysql ports: - "3306:3306" restart: always environment: MYSQL_ROOT_PASSWORD: "" TZ: "Asia/Seoul" command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci volumes: - /home/ubuntu/docker/data/mysql:/var/lib/mysql
- 重新构建并启动容器:
docker-compose up -d --build
内容的提问来源于stack exchange,提问作者geniemo
相关产品推荐
相关产品推荐

