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 の詳細な説明

推薦する

MySQL インデックスの原理と使用例の分析

この記事では、例を使用して MySQL インデックスの原理と使用方法を説明します。ご参考までに、詳細...

MySqlサブクエリINの実装と最適化

目次IN が遅いのはなぜですか? INとEXISTSのどちらが速いでしょうか?効率を向上させるにはど...

MySQL InnoDB ReplicaSet の簡単な紹介

目次01 InnoDBレプリカセットの紹介02 InnoDBレプリカセットの制限03 導入前に知って...

Vue3はJingdong製品詳細ページの虫眼鏡効果コンポーネントをカプセル化します

この記事では、Jingdong製品詳細ページの虫眼鏡効果コンポーネントに似たvue3カプセル化の具体...

js で下線とキャメルケースの変換を実装する (複数の方法)

目次適用シナリオ:方法 1: 正規表現 (推奨)方法2: 配列のreduceメソッドを使用する方法3...

W3C チュートリアル (7): W3C XSL アクティビティ

スタイル シートは、ドキュメントの表示方法、発音方法、または入力方法を記述します。XSL 言語は、X...

フォーム要素の簡単な実装コードでは登録を例に挙げています

コード実装:コードをコピーコードは次のとおりです。 <!DOCTYPE html> &l...

MySQL ストレステストツール Mysqlslap の使用

1. MySQL独自のストレステストツールMysqlslap mysqlslap は、mysql に...

オンライン MYSQL 同期エラーのトラブルシューティング方法の概要 (必読)

序文フェイルオーバーが発生した後、よくある問題は同期エラーです。データベースが小さい場合は、ダンプし...

テーブルレイアウトの長所と短所、そして推奨されない理由

テーブルの欠点1. テーブルは他の HTML タグよりも多くのバイトを占有します。 (ダウンロード時...

Docker の NFS-Ganesha イメージを使用して NFS サーバーを構築する詳細なプロセス

目次1. NFS-Ganeshaの紹介2. NFS-Ganeshaの設定3. NFS-Ganesha...

MySQL の文字セット utf8 を utf8mb4 に変更する方法

MySQL 5.5 の場合、文字セットが設定されていない場合、MySQL のデフォルトの文字セットは...

JS上級編ES6の6つの継承方法

目次1. プロトタイプチェーン継承2. コンストラクタによる継承3. 組み合わせ継承4. プロトタイ...

IE アドレスバーのアイコン表示問題を解決する 3 つの手順

<br />この Web ページ制作スキル チュートリアルは、Web サイトのアイコンを...

CentOS 8.4 での Docker パッケージのオフラインインストールの問題について

使用する仮想マシンは、サーバー環境をシミュレートする CentOS 8.4 です。外部ネットワークに...