runC でユーザのディレクトリをマウントさせて, データを読ませたりコンテナ内で実行した結果を書き込みたいですよね!
やってみましょう.
$ pwd
/home/docker-user/
$ mkdir data
$ touch data/bora
data
ディレクトリを runtime.json
の mounts に登録します.
"mounts": {
"data": {
"type": "bind",
"source": "/home/docker-user/data",
"options": [
"rbind",
"rw"
]
},
...
すでにあるホスト側のディレクトリの場合, type
には bind
を指定するようです.
config.json
にマウント情報を追加します.
"mounts": [
{
"name": "data",
"path": "/data"
},
ホスト側の /home/docker-user/data
ディレクトリを, コンテナ内では /data
にマウントします.
ディレクトリの権限に応じて, uid, gid を調整します. 今回はホスト側の docker-user アカウントの uid, gid とすることで, ホスト側の docker-user 権限でコンテナを実行することにします.
"process": {
"terminal": true,
"user": {
"uid": 1001,
"gid": 1001,
"additionalGids": null
},
"args": [
"cp", "bora", "dora"
],
"env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"TERM=xterm"
],
"cwd": "/data"
},
実行してみます
$ ls -la data
total 16
drwxrwxr-x 2 docker-user docker-user 4096 Sep 19 12:31 .
drwxr-xr-x 12 docker-user docker-user 4096 Sep 19 12:40 ..
-rw-rw-r-- 1 docker-user docker-user 5 Sep 19 12:25 bora
$ sudo runc start
$ ls -la data
total 16
drwxrwxr-x 2 docker-user docker-user 4096 Sep 19 12:31 .
drwxr-xr-x 12 docker-user docker-user 4096 Sep 19 12:40 ..
-rw-rw-r-- 1 docker-user docker-user 5 Sep 19 12:25 bora
-rw-r--r-- 1 docker-user docker-user 5 Sep 19 12:31 dora
Voila! コンテナ内でファイルがうまくコピーされてホスト側のディレクトリに反映されています.