dockerコンテナにvimをインストールするソリューション

dockerコンテナにvimをインストールするソリューション

物語の始まり

多くのインターネット企業は、0から1への急成長を経て、洗練された経営を行っているに違いありません。特に自社のユーザーに関しては、ユーザーの特性/ニーズ/クズを理解して、どうすれば彼らを満足させることができるかを知る必要があります。そうして初めて、彼らは心からあなたに従うでしょう。

ビジネス ユーザー向けであれば、問題は非常に単純です。さまざまなパートナー企業や業界リーダーを訪問するだけです。それぞれに目的があり、数回の訪問で相互のメリットが明らかになります。

しかし、私たちのようなユーザー志向の企業にとって、1 回限りの調査どころか、ランダムにユーザーを抽出して会社に招待し、アンケート調査を実施した場合、抽出されたユーザー データは代表的なものになるでしょうか。ユーザーから寄せられた質問は、チームの現在の開発の方向性を反映しているでしょうか。

そこで私の最近の仕事は、元のビジネス分析にもう1つのレイヤー、ユーザータグを追加することです。アプリケーション内でのユーザーの行動をマークし、ユーザーの特性と使用習慣を分析します。

中間のプロセスでビッグデータが必要なため、独自のテスト開発環境の構築に docker を使用することにしました。途中で vim をインストールする際に問題が発生しました。

vimをインストールし、hadoop-hive.envを編集します。

CentOS 7 に Docker を使用して Hive イメージをインストールする

$ docker ps
コンテナID イメージ コマンド ポート名
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: コマンドが見つかりません

# イメージが純粋なものであることは理解できるので、コンパイルしてインストールします。/opt# yum install vim
bash: yum: コマンドが見つかりません
/opt#rpm
bash: rpm: コマンドが見つかりません

# curl はまだ信頼できます/opt# wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz
bash: wget: コマンドが見つかりません
/opt# rz
bash: rz: コマンドが見つかりません

/opt# カール
curl: 詳細については、「curl --help」または「curl --manual」を参照してください
/opt# curl -o yum-3.2.28.tar.gz http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz
  % 合計 % 受信 % 転送 平均速度 時間 時間 時間 現在
                                 ダウンロード アップロード 合計使用時間 残り 速度
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
著者 変更履歴 プラグインのインストール TODO callback.py ドキュメント output.py rpmUtils テスト yum yum.spec yummain.py
コピー FAQ Makefile README bin cli.py etc po shell.py utils.py yum-updatesd.py yumcommands.py

/opt/yum-3.2.28# を作る
bash: make: コマンドが見つかりません

この時点で~ 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)"
名前="Debian GNU/Linux"
バージョンID = "7"
バージョン="7 (ぜいぜい)"
ID=デビアン
ANSI_COLOR="1;31"
HOME_URL="http://www.debian.org/"
サポート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 をインストール vim
パッケージリストを読み込んでいます...完了
依存関係ツリーの構築       
状態情報を読み込んでいます...完了
E:

そんなに単純ではないことはわかっています。パッケージ vim が見つからないのは、通常、中国の Debian で使用される apt-get ソースをバイパスする必要があるためです。国内のミラーを構成するだけです。

# オリジナルの `apt-get` ソースファイルをバックアップして再設定します/# mv /etc/apt/sources.list /etc/apt/sources.list.bak
deb http://mirrors.163.com/debian/ jessie メイン 非フリー 貢献
/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アップデート
/opt/yum-3.2.28# apt-get をインストール vim

パッケージリストを読み込んでいます...完了
依存関係ツリーの構築       
状態情報を読み込んでいます...完了
次の追加パッケージがインストールされます:
  libc6 vim-common vim-runtime
推奨パッケージ:
  glibc-doc ロケール ctags vim-doc vim-scripts
次の新しいパッケージがインストールされます:
  vim vim-common vim-runtime
以下のパッケージがアップグレードされます:
  libc6
1 個がアップグレードされ、3 個が新規インストールされ、0 個が削除され、179 個がアップグレードされませんでした。
10.8 MB のアーカイブを取得する必要があります。
この操作の後、29.6 MB の追加ディスク領域が使用されます。
続行しますか? [Y/n]?

その他の方法

また、単純な設定ファイルの置き換えであれば、ホストマシン上の hadoop-hive.env 設定ファイルを編集し、docker cp hadoop-hive.env dc387ff5c56d:/opt を実行してコンテナの指定フォルダにコピーすることもできます。

要約する

Dockerイメージをインストールするときは、システムバージョンカーネルに注意する必要があります。バージョンが間違っている場合、またはバージョン番号がDockerコンテナと一致しない場合、問題が発生します。

これで、docker コンテナに vim をインストールする問題の解決に関するこの記事は終了です。docker に vim をインストールすることに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerコンテナにvimコマンドがない問題を解決する方法
  • Dockerコンテナでvimコマンドが使えない問題を解決する

<<:  ボタンを使用してフォームを送信する代わりに、画像を使用してフォームを送信します。

>>:  Unicode 署名 BOM の詳細な説明

推薦する

Nginxのアクセスボリューム制御の詳細な説明

目的リクエスト アクセス ボリュームを制御するための Nginx ngx_http_limit_co...

MySQL でシンプルな検索エンジンを実装するためのサンプルコード

目次序文導入ngram全文パーサー全文インデックスを作成する検索方法1. 自然言語検索(自然言語モー...

Vueのフロントエンドとバックエンドのポートの不一致の問題を解決する

Vue のフロントエンドとバックエンドのポートが一致していませんconfig index.jsファイ...

XHTML CSS ページをプリンタ ページに変換する

以前は、Web ページのプリンタ対応バージョンを作成するには、印刷したときに見栄えがよくなるようにレ...

MySQL の中国語ソートの詳細と例

MySQL の漢字ソートの詳細な説明デフォルトでは、MySQL は日付、時刻、および英語の文字列の並...

node_modulesを削除して再インストールする方法

目次ステップ1: プロジェクトをインストールするディレクトリにnode_modulesをインストール...

Vue でよく使われる命令 v-if と v-show の違いを簡単に分析します。

目次序文1.v-ショー2.v-if 3. v-showとv-ifの違い1. 原則の違い2. アプリケ...

Vue3コンポーネントの開発詳細

目次1. はじめに2. コンポーネント開発1. コンポーネントの構成2. ヘッダーコンポーネントの開...

mysql データ型変換の実装

1. 問題下図のような表があり、結果値がreference_high値より大きいデータを見つける必要...

Docker MQTT のインストールと使用のチュートリアル

MQTT の紹介MQTT (Message Queuing Telemetry Transport)...

VMware Workstation 15 Pro に Ubuntu 1804 をインストールするチュートリアル (画像とテキスト付き)

このメモはインストール チュートリアルです。実用的な意味はありません。記録のためだけに書いています。...

MySQL コマンドラインモードアクセス操作 MySQL データベース操作

使用環境cmd モードで、mysql --version と入力します (インストールされている M...

Tomcat プロセスの CPU 使用率が高い場合のトラブルシューティング記録を記録する

この記事では主にTomcatプロセスを記録し、TCP接続が多すぎることによるCPU使用率の過剰のトラ...

Nginx リバース プロキシ学習例チュートリアル

目次1. リバースプロキシの準備1. LinuxシステムにTomcatをインストールする2. Tom...

WeChatアプレットはキャンバスを使用して時計を描画します

この記事では、キャンバスを使用してWeChatアプレットに時計を描く具体的なコードを参考までに共有し...