4. クラスター計算機で udocker を利用する: 基本コマンド編-2
基本コマンド編-1に引き続いて、基本的なコマンドの実行を行う
ユーザーを指定してコマンドを実行する: udocker -q run --user=$USER --hostenv --bindhome --hostauth ubuntu コマンド
ユーザーのホスト上での環境変数を引き継いで、udockerを実行する
$ ./udocker -q run --user=$USER --hostenv --bindhome --hostauth ubuntu whoami; pwd
user12345
/home/user12345
-
--user=指定のユーザー
:環境変数の$USERを指定してコンテナ上で利用するユーザーを設定 -
--hostenv
: ホストの環境変数を引き継ぐための設定 -
--bindhome
: ホームディレクトリをそのままバインドするための設定
ここでは架空のユーザー"user12345"の結果を表示している。ユーザーとカレントディレクトリがコンテナ環境で利用できている事がわかる
ここでpythonを実行してみる
$ python --version
Python 2.7.5
$./udocker -q run --user=$USER --hostenv --bindhome --hostauth ubuntu python --version
Error: command not found or has no execute bit set: ['python']
- 最初のコマンドはホスト上で実行され、ホストのpythonのバージョン番号が表示される
- 次のコマンドはコンテナ上で実行され、pythonが存在しないためエラーとなっている
コンテナ上にpythonをapt-get
を利用してインストールしてみる
$ apt-get
bash: apt-get: command not found...
$ ./udocker -q run ubuntu apt-get install -y python
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
file libexpat1 libffi6 libmagic1 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib libsqlite3-0 libssl1.0.0 mime-support python-minimal python2.7
python2.7-minimal
Suggested packages:
python-doc python-tk python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
file libexpat1 libffi6 libmagic1 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib libsqlite3-0 libssl1.0.0 mime-support python python-minimal python2.7
python2.7-minimal
0 upgraded, 14 newly installed, 0 to remove and 0 not upgraded.
Need to get 5714 kB of archives.
After this operation, 25.7 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython2.7-minimal amd64 2.7.12-1ubuntu0~16.04.3 [340 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python2.7-minimal amd64 2.7.12-1ubuntu0~16.04.3 [1261 kB]
...
Setting up libpython2.7-stdlib:amd64 (2.7.12-1ubuntu0~16.04.3) ...
Setting up python2.7 (2.7.12-1ubuntu0~16.04.3) ...
Setting up libpython-stdlib:amd64 (2.7.11-1) ...
Setting up python (2.7.11-1) ...
Setting up libmagic1:amd64 (1:5.25-2ubuntu1) ...
Setting up file (1:5.25-2ubuntu1) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
ログが長いので途中省略
- 最初のコマンドはホスト上で実行され、
apt-get
が存在しないためエラーとなっている - 次のコマンドはコンテナ上で実行され、
--user
が指定されていないので、root権限でapt-get
が実行され、pythonがインストールされる
コンテナ上のpythonのバージョンを確認する
$ ./udocker -q run ubuntu python --version
Python 2.7.12
python 2.7.12がインストールされた事がわかる
ホスト上でrootの権限を持っていなくても、コンテナ上ではroot権限でapt-get
を利用してパッケージがインストールができる事がわかった
(ここではホストのOSはRed Hat Linuxなので、もし、管理権限を持っていて、ホスト上にパッケージのインストールを行うにとすればyum
を利用することになる点に留意)
今日はここまで
Author And Source
この問題について(4. クラスター計算機で udocker を利用する: 基本コマンド編-2), 我々は、より多くの情報をここで見つけました https://qiita.com/percipere/items/1dfb95bc64a2d45f8a6b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .