ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

連絡先とプライバシーポリシー

(2023-02-02 初稿)

【連絡先】

当サイトの作成者及び連絡先

作成者: ひゃまだ

連絡先:     (←画像です)

 

Amazonアソシエイトについて】

「ひゃまだのblog」、「ひゃまだのアウトドア日記」、「ひゃまだの植物ノート」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。

三者がコンテンツおよび宣伝を提供し、訪問者から直接情報を収集し、訪問者のブラウザにCookie(クッキー)を設定したりこれを認識したりする場合があります。

 

アクセス解析ツールについて】

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。この規約に関して、詳しくは「Googleアナリティクス利用規約」をご覧ください。

 

【個人情報の第三者への開示・提供の禁止】

当サイトは、お客さまよりお預かりした個人情報を適切に管理し、次のいずれかに該当する場合を除き、個人情報を第三者に開示いたしません。
・お客さまの同意がある場合
・お客さまが希望されるサービスを行なうために当社が業務を委託する業者に対して開示する場合
・法令に基づき開示することが必要である場合

 

【免責事項】

当サイトでは各ASPの商品を紹介するアフィリエイトに参加しています。リンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

サービスの利用・商品の購入に関してましては、自己責任でお願いします。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤った情報の場合や、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

 

著作権について】

当サイトで掲載している画像の著作権・肖像権等は各権利所有者に帰属致します。権利を侵害する目的ではございません。記事の内容や掲載画像等に問題がございましたら、各権利所有者様本人がお問い合わせからメールでご連絡ください。できるだけ迅速に対応させて頂きます。

当サイトに掲載している、文章・画像・動画等の著作権は当サイトに帰属します。これらの情報を無断転載することを禁止します。



 

WSL2で、WindowsとLinuxの連携

(2022-12-20 初稿)

ファイル操作

WindowsからWSL2のLinuxファイルを開く方法とその逆でLinuxからWindowsのファイルを開く方法のメモ。

以下のサイトを参照した。

WindowsからLinuxのファイルを開く

エクスプローラーで、\\wsl$ を入力することにより、WSL2にインストールされたディストリビューションのファイルを開くことができる。

LinuxからWindowsのファイルを開く

LinuxからWindowsのファイルを開く場合は、/mnt/{ドライブ名}で開くことができる。

例えば、Cドライブの場合は、/mnt/c。

コマンドの実行

コマンドの実行については、以下のサイトを参照した。

WindowsからLinuxコマンドを実行

Power shellなどで、以下のとおり入力すれば実行できる。

> wsl ls -la
> wsl sudo apt update

LinuxからWindowsコマンドを実行

以下の例のとおり、実行することが可能。

$ explorer.exe .
$ notepad.exe

ただし、Windowsの実行ファイル名がわかりにくいので、以下のサイトを参照のこと。

WindowsLinuxのコマンドを組合せて実行

上記のMicrosoftのサイトにあったが、以下のようにWindowsのコマンドをLinuxの豊富なツールで加工するのが便利そう。

以下は、Linuxで実行する例。

$ ipconfig.exe | grep IPv4 | cut -d: -f2

実行結果をクリップボードにコピーするのも便利そう。

$ ls -la | clip.exe

WindowsLinuxのコマンドを組合せて使うことができて、ますます便利になりそう。

最終的には、LinuxWindowsの良いとこ取りのOSができればいいだろうなぁ…

関連ページ

WSL2のWSLgでGUIを表示する

(2022-12-20 初稿 - )

久しぶりにWSL2を起動したら、WSLgがWindows10及び11で使えるようになって、LinuxGUIアプリが起動できるようになっていたのでメモ。

詳細は以下のサイトを参照のこと。

上記サイトにあるとおり、グラフィックドライバーをインストールする。

筆者のPCはIntelドライバを使っていたので、以下のサイトからダウンロード(サイズがけっこう大きいので注意)。

ドライバを更新した後,

Power shellで以下のコマンドを実行。

> wsl --update
> wsl --shutdown

LinuxWindowsも少しずつ融合して、便利になってきたね。

関連ページ

Identifyで画像情報を取得する

(2022-12-18 初稿 )

Debianで画像の大きさを一括して取得するメモ。

筆者の環境

Linux hoge 5.10.0-20-amd64 #1 SMP Debian 5.10.158-2 (2022-12-13) x86_64 GNU/Linux

画像の情報は、ImagemagickのIndentifyコマンドで取得できる。

Imagemagickがインストールされていない場合は、以下のとおりインストール。

$ sudo apt install imagemagick

画像情報の表示

$ identify example.jpg  
example.jpg JPEG 2250x4000 2250x4000+0+0 8-bit sRGB 1.90697MiB 0.000u 0:00.000

便利なことにidentifyはワイルドカードにも対応しているので、あるディレクトリのすべてのjpgファイルを表示する場合は以下のとおり。

$ identify *.jpg
example1.jpg JPEG 213x227 213x227+0+0 8-bit sRGB 58371B 0.010u 0:00.009
example2.jpg JPEG 2250x4000 2250x4000+0+0 8-bit sRGB 1.90697MiB 0.000u 0:00.000
example3.jpg JPEG 4000x2250 4000x2250+0+0 8-bit sRGB 3869300B 0.000u 0:00.000
example4.jpg JPEG 4000x2250 4000x2250+0+0 8-bit sRGB 3.58419MiB 0.000u 0:00.000
example5.jpg JPEG 2048x1536 2048x1536+0+0 8-bit sRGB 1.98413MiB 0.010u 0:00.005

このうち、example.jpgの画像サイズのみ取得する場合は以下のとおり

$ identify Desktop/example.jpg | cut -f 3 -d ' '
2250x4000

xが邪魔な場合は、sedで空白にすると良い。

$ identify Desktop/example.jpg | cut -f 3 -d ' ' | sed 's/x/ /'
2250 4000

ファイルにリダイレクト後、表計算ソフトなどで読み込んで、最大、最小を表示させることもできるが、awkを使った場合は以下のとおり。

【横最大値
$ identify Desktop/*.jpg | cut -f 3 -d ' ' | sed 's/x/ /' |  awk '{if(m<$1) m=$1} END{print m}'
【縦最大値】
$ identify Desktop/*.jpg | cut -f 3 -d ' ' | sed 's/x/ /' |  awk '{if(m<$2) m=$2} END{print m}'
【横最小値】
$ identify Desktop/*.jpg | cut -f 3 -d ' ' | sed 's/x/ /' |  awk 'BEGIN{m=1000000} {if($1 != "" && m>$1) m=$1} END{print m}'
【縦最小値】
$ identify Desktop/*.jpg | cut -f 3 -d ' ' | sed 's/x/ /' |  awk 'BEGIN{m=1000000} {if($2 != "" && m>$2) m=$2} END{print m}'

関連ページ

DebianでRを使って分散分析とTukey多重検定を必要最小限で実行する

(2022-12-08 初稿 )

先日、必要に迫られて初めてRを使って分散分析とTukey体重検定を行ったので、その時のメモ。

なお、このページには必要最低限のことしか書いてないので、気が向いたら追記するつもり。

なお、当方の環境は以下のとおり。

Linux hoge 5.10.0-19-amd64 #1 SMP Debian 5.10.149-2 (2022-10-21) x86_64 GNU/Linux

Rのインストール

sudo apt install r-base

データの作成

表計算ソフトで表を作って、csvでダウンロードまたはエクスポート。

例では r-test.csvとして保存。

id Value Method
1 2.0 M1
2 3.0 M1
3 2.0 M1
4 6.0 M2
5 7.0 M2
6 8.0 M2
7 10.0 M3
8 11.0 M3
9 12.0 M3

Rの起動

$ R(大文字)

データの読み込み

> dat <- read.csv("r-test.csv")
> attach(dat)   # こうすると、data = dat が省略できる

クリップボードを介した方法については、わかったら追記するかも…(^^ゞ

分散分析

> anova(lm(Value~Method, data = dat))
Analysis of Variance Table
Response: Value
          Df  Sum Sq Mean Sq F value    Pr(>F)    
Method     2 112.889  56.444  72.571 6.256e-05 ***
Residuals  6   4.667   0.778                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Tukey多重検定

> amod <- aov(Value~Method, data = dat)
> TukeyHSD(amod)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = Value ~ Method)

$Method
          diff      lwr       upr     p adj
M2-M1 4.666667 2.457257  6.876077 0.0015596
M3-M1 8.666667 6.457257 10.876077 0.0000493
M3-M2 4.000000 1.790590  6.209410 0.0034732

padjが0.05(5%水準)未満ならばMethod間に差がある。

 

Rを使うと、ものすごく簡単に統計処理ができちゃうんだね。びっくり。

また、必要に迫られたら追記するかも…

関連ページ

Dockerのコンテナやイメージの整理メモ

(2022-11-06 初稿)

Dockerに「--rm」オプションを付けるようにして、終了後に削除されるのである程度はコンテナが整理されているが、ふと気がつくと不要なコンテナやイメージが散在されるようになってしまう。

そこで、以下のサイトを参考に、このページは、Dockerのコンテナやイメージの削除について自分用の備忘録としてアップ。

ぜひ、まずは以下のサイトを参照のこと。

機能 コマンド 備考
コンテナ一覧 docker ps -a  
コンテナ削除 docker rm <ID> 複数のID指定可
コンテナ一括削除 docker rm $(docker ps -a -q)  
イメージ一覧 docker images  
イメージ削除 dcoker rmi <ID>  

 

関連ページ

DockerのrootlessでTensorflowを使うメモ

(2022-11-06 初稿 )

DebianのDockerもrootlessモードに対応しているとのことで、挑戦してみたメモ。メモにもならずlogかな。

最後に、Permission deniedエラーが出て、chmod -Rで逃げたけど、いいのかまだ模索中。

以下、参考にさせていただいたサイト。多謝。m(__)m

筆者の環境。ちなみに、lsb-release(アンダーバーでなくハイフン)とコマンド入力し、コマンドがないと慌てたのはここだけの話。

$ lsb_release -a
Distributor ID:    Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:    11
Codename:    bullseye

 

以下を順番に実行。ちなみに筆者は、既にDockerをrootfulでインストール済みなので必要なパッケージのみインストール

sudo apt install uidmap
sudo apt-get install dbus-user-session

インストール後、ログアウトして再ログイン。

slirp4netns --version
commit: 6a7b16babc95b6a3056b33fb45b74a6f62262dd4
libslirp: 4.4.0

バージョンを確認。4.0.0以上ならOK。未インストールの場合はインストール。

前述のとおり、既にrootfulでDockerをインストールしていたので、一旦、dockerを止める。

$ sudo systemctl disable --now docker.service docker.socket
$ dockerd-rootless-setuptool.sh install   #インストールしたいユーザアカウントで
[ERROR] Aborting because rootful Docker (/var/run/docker.sock) is running and accessible. Set --force to ignore.

dockerを止めたつもりだったが、まだ動いていたようなので、コメントのとおり--forceを付けて再挑戦。

$ dockerd-rootless-setuptool.sh --force install
[INFO] Creating /home/hoge/.config/systemd/user/docker.service
[INFO] starting systemd service docker.service
+ systemctl --user start docker.service
+ sleep 3
+ systemctl --user --no-pager --full status docker.service
● docker.service - Docker Application Container Engine (Rootless)
Loaded: loaded (/home/hoge/.config/systemd/user/docker.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-11-04 15:18:03 JST; 3s ago
   Docs: https://docs.docker.com/go/rootless/
   Main PID: 3332 (rootlesskit)
      Tasks: 32
     Memory: 66.7M
        CPU: 703ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/docker.service
             ├─3332 rootlesskit --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave /usr/bin/dockerd-rootless.sh
             ├─3342 /proc/self/exe --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave /usr/bin/dockerd-rootless.sh
             ├─3361 slirp4netns --mtu 65520 -r 3 --disable-host-loopback --enable-sandbox --enable-seccomp 3342 tap0</

11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.661130347+09:00" level=warning msg="Unable to find cpuset controller"
11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.661890400+09:00" level=info msg="Loading containers: start."
11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.666151823+09:00" level=info msg="skipping firewalld management for rootless mode"
11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.830594829+09:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.832143337+09:00" level=info msg="failed to read ipv6 net.ipv6.conf.<bridge>.accept_ra" bridge=docker0 syspath=/proc/sys/net/ipv6/conf/docker0/accept_ra
11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.832729322+09:00" level=info msg="failed to read ipv6 net.ipv6.conf.<bridge>.accept_ra" bridge=docker0 syspath=/proc/sys/net/ipv6/conf/docker0/accept_ra
11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.938168530+09:00" level=info msg="Loading containers: done."
11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.952969688+09:00" level=info msg="Docker daemon" commit=3056208 graphdriver(s)=fuse-overlayfs version=20.10.21
11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.953873222+09:00" level=info msg="Daemon has completed initialization"
11月 04 15:18:04 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:04.033677440+09:00" level=info msg="API listen on /run/user/1000/docker.sock"
+ DOCKER_HOST=unix:///run/user/1000/docker.sock /usr/bin/docker version
Client: Docker Engine - Community
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.7
 Git commit:        baeda1f
 Built:             Tue Oct 25 18:02:28 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.7
  Git commit:       3056208
  Built:            Tue Oct 25 18:00:19 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.9
  GitCommit:        1c90a442489720eec95342e1789ee8a5e1b9536f
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
+ systemctl --user enable docker.service
Created symlink /home/hoge/.config/systemd/user/default.target.wants/docker.service → /home/hhoge/.config/systemd/user/docker.service.
[INFO] Installed docker.service successfully.
[INFO] To control docker.service, run: `systemctl --user (start|stop|restart) docker.service`
[INFO] To run docker.service on system startup, run: `sudo loginctl enable-linger hoge`

[INFO] Creating CLI context "rootless"
Successfully created context "rootless"
[INFO] Use CLI context "rootless"
Current context is now "rootless"

[INFO] Make sure the following environment variables are set (or add them to ~/.bashrc):
export PATH=/usr/bin:$PATH
Some applications may require the following environment variable too:
export DOCKER_HOST=unix:///run/user/1000/docker.sock

/usr/binには既にPathが通っていたので、DOCKER_HOSTのみ.bashrcに追加。

echo "export DOCKER_HOST=unix:///run/user/1000/docker.sock" >> .bashrc

一般Userでdockerのバージョンを確認。

$ docker version
Client: Docker Engine - Community
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.7
 Git commit:        baeda1f
 Built:             Tue Oct 25 18:02:28 2022
 OS/Arch:           linux/amd64
 Context:           rootless
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.7
  Git commit:       3056208
  Built:            Tue Oct 25 18:00:19 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.9
  GitCommit:        1c90a442489720eec95342e1789ee8a5e1b9536f
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Context:がrootlessになってれば良いみたい。

 

ユーザ権限でdockerを起動

systemctl --user start docker

再起動後もユーザ権限でdockerが起動するように

systemctl --user enable docker
sudo loginctl enable-linger $(whoami)

ここで、PCを再起動。

試しに例題にあったWebサーバでテスト。

$ docker run -d -p 8080:80 --rm --name httpd httpd
Unable to find image 'httpd:latest' locally
latest: Pulling from library/httpd
e9995326b091: Pull complete 
ee55ccd48c8f: Pull complete 
bc66ebea7efe: Pull complete 
5d0f831d3c0b: Pull complete 
e559e5380898: Pull complete 
Digest: sha256:5fa96551b61359de5dfb7fd8c9e97e4153232eb520a8e883e2f47fc80dbfc33e
Status: Downloaded newer image for httpd:latest
23b7bf4179a1986c18a215a77136525ba193de22a46c92a338cf5aba0f6ceb56

クライアントで確認

$ curl localhost:8080
<html><body><h1>It works!</h1></body></html>

psで確認。

$ ps aux | grep docker
hoge        3332  0.0  0.5 1228708 20400 ?       Ssl  15:18   0:00 rootlesskit --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave /usr/bin/dockerd-rootless.sh
hoge        3342  0.0  0.5 1154896 19628 ?       Sl   15:18   0:00 /proc/self/exe --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --disable-host-loopback --port-driver=builtin --copy-up=/etc --copy-up=/run --propagation=rslave /usr/bin/dockerd-rootless.sh
hoge        3368  1.0  2.1 1594892 83828 ?       Sl   15:18   0:09 dockerd
hoge        3383  0.3  1.3 1274040 51424 ?       Ssl  15:18   0:02 containerd --config /run/user/1000/docker/containerd/containerd.toml --log-level info
hoge        3885  0.0  0.0   6032  2160 ?        Ss   15:27   0:00 fuse-overlayfs -o lowerdir=/home/hoge/.local/share/docker/fuse-overlayfs/l/PVZN2LPXHNCEW6DZSHTSTSCZRQ:/home/hoge/.local/share/docker/fuse-overlayfs/l/MPE6K4AGAGC5Y7P2GYJ6KVZCWX:/home/hoge/.local/share/docker/fuse-overlayfs/l/MRQCMVX2BZK3T7KADHXN5LP6CL:/home/hoge/.local/share/docker/fuse-overlayfs/l/2PBHBPS6O6Y2Z3I6OQGPGSNSDA:/home/hoge/.local/share/docker/fuse-overlayfs/l/CRSHLJ6EU2WCATEYB2T7TDM5S7:/home/hoge/.local/share/docker/fuse-overlayfs/l/YGQMMNV4FWTRKYIDGK7L7HVLC2,upperdir=/home/hoge/.local/share/docker/fuse-overlayfs/9bd0acc378b29808b2bf4ec9629e44e0de48eb649bde18decc3202642206407c/diff,workdir=/home/hoge/.local/share/docker/fuse-overlayfs/9bd0acc378b29808b2bf4ec9629e44e0de48eb649bde18decc3202642206407c/work /home/hoge/.local/share/docker/fuse-overlayfs/9bd0acc378b29808b2bf4ec9629e44e0de48eb649bde18decc3202642206407c/merged
hoge        3896  0.0  0.1 1151580 7152 ?        Sl   15:27   0:00 /usr/bin/rootlesskit-docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.17.0.2 -container-port 80
hoge        3902  0.0  0.1 1074732 7032 ?        Sl   15:27   0:00 docker-proxy -container-ip 172.17.0.2 -container-port 80 -host-ip 127.0.0.1 -host-port 8080 -proto tcp
hoge        3919  0.0  0.2 712200 10976 ?        Sl   15:27   0:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 23b7bf4179a1986c18a215a77136525ba193de22a46c92a338cf5aba0f6ceb56 -address /run/user/1000/docker/containerd/containerd.sock
hoge        4330  0.0  0.0   4428   704 pts/0    S+   15:32   0:00 grep docker

ルートで確認して、動いてなければOK。

$ sudo docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

dockerのサービスを確認。

$ cat .config/systemd/user/docker.service 
[Unit]
Description=Docker Application Container Engine (Rootless)
Documentation=https://docs.docker.com/go/rootless/

[Service]
Environment=PATH=/usr/bin:/sbin:/usr/sbin:/home/hoge/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
ExecStart=/usr/bin/dockerd-rootless.sh 
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
Type=simple
KillMode=mixed [Install] WantedBy=default.target

dockerのUserステータスを確認。

$ systemctl --user status docker
● docker.service - Docker Application Container Engine (Rootless)<
     Loaded: loaded (/home/hoge/.config/systemd/user/docker.service; enabled; vendor prese>
     Active: active (running) since Fri 2022-11-04 15:18:03 JST; 18min ago
       Docs: https://docs.docker.com/go/rootless/
   Main PID: 3332 (rootlesskit)
      Tasks: 61
     Memory: 240.6M
        CPU: 20.085s
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/docker.service
             ├─3332 rootlesskit --net=slirp4netns --mtu=65520 --slirp4netns-sandbox=auto -></

11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.832729322+09:00">
11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.938168530+09:00">
11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.952969688+09:00">
11月 04 15:18:03 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:03.953873222+09:00">
11月 04 15:18:04 mou dockerd-rootless.sh[3368]: time="2022-11-04T15:18:04.033677440+09:00">
11月 04 15:27:44 mou dockerd-rootless.sh[3383]: time="2022-11-04T15:27:44.933911582+09:00">
11月 04 15:27:44 mou dockerd-rootless.sh[3383]: time="2022-11-04T15:27:44.934044444+09:00">
11月 04 15:27:44 mou dockerd-rootless.sh[3383]: time="2022-11-04T15:27:44.934080893+09:00">
11月 04 15:27:44 mou dockerd-rootless.sh[3383]: time="2022-11-04T15:27:44.936648060+09:00">
11月 04 15:27:45 mou dockerd-rootless.sh[3959]: time="2022-11-04T15:27:45+09:00" level=war>

tensorflowの実行

$ cd doct-tf     # 自分のtensorflow working directory
$ /usr/bin/docker run -it -u $(id -u):$(id -g) --rm -v $PWD:/tmp -w /tmp tensorflow/tensorflow bash
$ tf-docker /tmp > pip install -r requirements.txt

pipが [Errno 13] Permission denied 他のTerminalで、dokerのrootディレクトリを777のパーミッション

$ sudo chmod -R 777 .local/share/docker
tf-docker /tmp > python example.py
tensorflow docker python [Errno 13] Permission

またも、パーミッションエラーなので、他のTerminalでパーミッションを777に変更

$ sudo chmod -R 777 ./doc-rf

以上でrootlessで無事動作するようになったけど、dockerとUserのWorking DirectoryのPermissionを777して解決するのが良いのかどうか… どなたか教えてください。m(__)m

関連ページ