docker容器中安裝vim問題解決
故事的開始
很多互聯網公司, 業務走過 0-1 的野蠻生長之後必定需要精細化管理; 尤其是 面向自己用戶 這一塊, 你需要像個渣男一樣瞭解你的用戶特點 / 需要 / 才知道怎樣哄人傢開心; 人傢才會死心塌地跟著你.
如果是 面向企業(to B)用戶, 問題很簡單: 去拜訪不同的合作公司/業內翹楚, 大傢都是帶有目的性, 互惠互利一來二去就清楚瞭;
但像我們這種 面向用戶(to C) 用戶, 如果隨機抽樣用戶邀請到公司;問券調查;且不說一次性, 抽樣用戶數據是否具有代表性? 用戶提出的問題是否是團隊的目前發展方向?
所以最近的工作在原有業務分析上再加一層: 用戶標簽. 標記用戶在你應用中行為, 分析用戶特點, 使用習慣
中間過程中需要大數據, 所以自己做測試開發選擇使用 docker 搭建環境, 中間遇到安裝 vim 問題記錄
裝個 vim 編輯 hadoop-hive.env
在 centos 7 上使用 docker 安裝 hive 鏡像
$ docker ps CONTAINER ID IMAGE COMMAND PORTS NAMES dc387ff5c56d bde2020/hive:2.1.0-postgresql-metastore "entrypoint.sh /bin/…" 0.0.0.0:10000->10000/tcp, 10002/tcp hive-server $ docker exec -it dc387ff5c56d /bin/bash # vim 編輯 hadoop-hive.env /opt# vi hadoop-hive.env bash: vi: command not found # 鏡像講究純凈可以理解, 編譯安裝吧 /opt# yum install vim bash: yum: command not found /opt# rpm bash: rpm: command not found # 還是 curl 靠得住 /opt# wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz bash: wget: command not found /opt# rz bash: rz: command not found /opt# curl curl: try 'curl --help' or 'curl --manual' for more information /opt# curl -o yum-3.2.28.tar.gz http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 864k 100 864k 0 0 276k 0 0:00:03 0:00:03 --:--:-- 667k # 你也純凈得太過分瞭吧 /opt# tar -zxvf yum-3.2.28.tar.gz /opt/yum-3.2.28# ls AUTHORS ChangeLog INSTALL PLUGINS TODO callback.py docs output.py rpmUtils test yum yum.spec yummain.py COPYING FAQ Makefile README bin cli.py etc po shell.py utils.py yum-updatesd.py yumcommands.py /opt/yum-3.2.28# make bash: make: command not found
這時~ bash: make: command not found 嗯? 連個 make 編譯命令都沒有. 現在容器都 玩得都這麼野 的瞭嗎
大意瞭沒有閃, 居然是 debian
不對, 會不會鏡像不是 centos 7 的
# 查看 linux 內核版本 /opt/yum-3.2.28# cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 7 (wheezy)" NAME="Debian GNU/Linux" VERSION_ID="7" VERSION="7 (wheezy)" ID=debian ANSI_COLOR="1;31" HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support/" BUG_REPORT_URL="http://bugs.debian.org/"
PRETTY_NAME=”Debian GNU/Linux 7 (wheezy)” 喲西好傢夥, 居然是 debian. 讓我查查 apt-get 安裝命令
/opt/yum-3.2.28# apt-get install vim Reading package lists... Done Building dependency tree Reading state information... Done E:
我就知道事情並不簡單 Unable to locate package vim 國內通常是因為 Debian 使用的 apt-get 源在國外需要翻墻導致. 配置國內鏡像就好
# 將原 `apt-get`源文件備份, 再配置 /# mv /etc/apt/sources.list /etc/apt/sources.list.bak deb http://mirrors.163.com/debian/ jessie main non-free contrib /opt/yum-3.2.28# echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list /opt/yum-3.2.28# echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list /opt/yum-3.2.28# echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list /opt/yum-3.2.28# echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list # 更新 apt-get, 安裝 vim /opt/yum-3.2.28# apt-get update /opt/yum-3.2.28# apt-get install vim Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libc6 vim-common vim-runtime Suggested packages: glibc-doc locales ctags vim-doc vim-scripts The following NEW packages will be installed: vim vim-common vim-runtime The following packages will be upgraded: libc6 1 upgraded, 3 newly installed, 0 to remove and 179 not upgraded. Need to get 10.8 MB of archives. After this operation, 29.6 MB of additional disk space will be used. Do you want to continue [Y/n]? y
其他方法
除此之外, 如果隻是簡單的 配置文件替換. 還能通過在宿主機 編輯好 hadoop-hive.env 配置文件, docker cp hadoop-hive.env dc387ff5c56d:/opt 復制到容器指定文件夾下.
總結
安裝 docker 鏡像是需要留意系統版本內核; 搞錯版本 / 版本號和 docker 不匹配容器出現問題
到此這篇關於docker容器中安裝vim問題解決的文章就介紹到這瞭,更多相關docker安裝vim內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- docker 編輯Dockerfile 添加php7.2 acpu的問題
- 在Debian11上安裝Openresty服務(Nginx+Lua)的詳細教程
- docker 環境搭建、docker 與容器常用指令大全(推薦)
- docker容器下配置jupyter notebook的操作
- centos搭建部署docker環境的詳細步驟