ubuntuが最近22から24になった。
ローカルlinuxを先に
22から24へバージョン上げた
。
xrdpコンテナも
自分のメモ
見ながらバージョン上げたる。
20から22にバージョン上げた時はdanchitnisさんのものを使わせてもらって、いい勉強になった。
さて今回はどうやろ。
compose.ymlを準備#
⭐️の箇所を22から24に変えたらええ。
永続化領域もcl_ubun22からコピーして用意しとく。
1
2
3
4
5
6
7
8
9
10
|
cl_ubu24gvis: ⭐️
image: gvis-ubu24:24gvis ⭐️
privileged: true
hostname: clubu24 ⭐️
ports:
- "33389:3389"
volumes:
- ./nariDockerDat/cl_ubun24:/gvis ⭐️
tty: true
shm_size: 512m
|
Dockerfileを用意#
dockerhubのubuntuの公開具合を見て24.04のタグがあることを確認しとく。
自分が見た時はrollingってタグのdigestがc279a739b31eって入ってた。
digestを検索すると、nobleとlatestと24.04のタグにも同じのがついてる。
今はこれでええんやけど、24.10ってとこのタグがnoneってdigestになって書いてある。
もうすぐ24.10出るってことか?
noneじゃdocker pullして使えんから、24.04指定してdockerfile用意しよか。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
# https://github.com/danchitnis/container-xrdp
FROM ubuntu:24.04 AS ububase
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get install -y \
xfce4 \
xfce4-clipman-plugin \
xfce4-cpugraph-plugin \
xfce4-netload-plugin \
xfce4-screenshooter \
xfce4-taskmanager \
xfce4-terminal \
xfce4-xkb-plugin \
dbus-x11 ⭐️足しとかんとコンテナ実行時にdbusエラー出る
RUN apt-get install -y \
sudo \
wget \
xorgxrdp \
xrdp \
tzdata \
ibus \
ibus-mozc \
language-pack-ja-base \
language-pack-ja \
fonts-noto-cjk \
fonts-noto-color-emoji && \
apt remove -y light-locker xscreensaver && \
apt autoremove -y && \
rm -rf /var/cache/apt /var/lib/apt/lists
RUN locale-gen ja_JP.UTF-8 \
&& echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
&& echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
ENV LANG=ja_JP.UTF-8 \
LANGUAGE=ja_JP:ja \
LC_ALL=ja_JP.UTF-8 \
TZ=Asia/Tokyo
RUN cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
&& echo 'Asia/Tokyo' > /etc/timezone
COPY ./build/ubuntu-run.sh /usr/bin/
RUN mv /usr/bin/ubuntu-run.sh /usr/bin/run.sh
RUN chmod +x /usr/bin/run.sh
# https://github.com/danielguerra69/ubuntu-xrdp/blob/master/Dockerfile
RUN mkdir /var/run/dbus && \
cp /etc/X11/xrdp/xorg.conf /etc/X11 && \
sed -i "s/console/anybody/g" /etc/X11/Xwrapper.config && \
sed -i "s/xrdp\/xorg/xorg/g" /etc/xrdp/sesman.ini && \
echo "xfce4-session" >> /etc/skel/.Xsession
##############
## For gvis
##############
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get install -y \
fonts-ipafont \
git \
curl \
featherpad \
gvfs-backends \
nmon \
vim \
dnsutils \
iputils-ping \
net-tools \
iproute2 \
mysql-client \
libreoffice \
libreoffice-l10n-ja \
libreoffice-dmaths \
libreoffice-ogltrans \
libreoffice-writer2xhtml \
libreoffice-pdfimport \
libreoffice-help-ja \
evince \
file-roller \
ristretto \
software-properties-common \
gnome-calculator && \
apt autoremove -y && \
rm -rf /var/cache/apt /var/lib/apt/lists
RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
RUN install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
RUN /usr/bin/sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
RUN apt install apt-transport-https
RUN apt update
RUN apt install code
RUN apt remove snap
## RUN apt-get install software-properties-common
RUN add-apt-repository ppa:mozillateam/ppa
RUN echo "Package: firefox*" > /etc/apt/preferences.d/mozillateamppa
RUN echo "Pin: release o=LP-PPA-mozillateam" >> /etc/apt/preferences.d/mozillateamppa
RUN echo "Pin-Priority: 1001" >> /etc/apt/preferences.d/mozillateamppa
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt install firefox xul-ext-ubufox
## RUN curl https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
## RUN echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' | sudo tee /etc/apt/sources.list.d/google-chrome.list
## RUN apt-get -y update
## RUN apt-get -y upgrade
## RUN apt install google-chrome-stable libu2f-udev
# 配下の.DS_Storeと._xxx を削除
RUN echo "function removegomi () {" >> /root/.bashrc
RUN echo " find . \( -name '.DS_Store' -or -name '._*' \) -delete -print;" >> /root/.bashrc
RUN echo "}" >> /root/.bashrc
RUN echo "alias rmgomi=removegomi" >> /root/.bashrc
RUN echo "alias sc='cd /gvis/script'" >> /root/.bashrc
RUN echo "alias tree=\"pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g'" \" >> /root/.bashrc
RUN echo "alias dff='df -h | grep -v DockerSys | grep -v "dev/loop"' " >> /root/.bashrc
RUN echo "PATH=/gvis/script/proc:$PATH:$HOME/bin" >> /root/.bashrc
RUN echo "export PATH" >> /root/.bashrc
RUN userdel -r `cat /etc/passwd | grep 1000 | awk -F':' '{print $1}'`
RUN useradd -m -s /usr/bin/bash -u 1000 nari ⭐️なんでかuid=1000はubuntuって名前の一般ユーザがあったので削除してから作成
RUN sudo su - nari
# 配下の.DS_Storeと._xxx を削除
RUN echo "function removegomi () {" >> /home/nari/.bashrc
RUN echo " find . \( -name '.DS_Store' -or -name '._*' \) -delete -print;" >> /home/nari/.bashrc
RUN echo "}" >> /home/nari/.bashrc
RUN echo "alias rmgomi=removegomi" >> /home/nari/.bashrc
RUN echo "alias sc='cd /gvis/script'" >> /home/nari/.bashrc
RUN echo "alias tree=\"pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g'" \" >> /home/nari/.bashrc
RUN echo "alias dff='df -h | grep -v DockerSys | grep -v "dev/loop"' " >> /home/nari/.bashrc
RUN echo "PATH=/gvis/script/proc:$PATH:$HOME/bin" >> /home/nari/.bashrc
RUN echo "export PATH" >> /home/nari/.bashrc
FROM ububase
# Docker config
EXPOSE 3389
ENTRYPOINT ["/usr/bin/run.sh"]
|
dbus関連のモジュールがないとrdpした直後にエラー出てまうのと、uid=1000が使われてしもてたのを潰して自分のidに変えた。
こうしとかな永続化領域のパーミッションについてるuid変えなアカンようになる。
chromeのインストールはgoogle cloudのxrdpの中だけで使うからローカルのコンテナではコメント化。
ビルド実行#
ビルド時間かかるねんなぁ。
ビルドのやり方#
githubから公開元のdockerコンテナ材料を取ってきてビルドする。
だいたいのコンテナはdocker compose使う方法書いてへんからアレンジせなあかんのは今も変わらず。
1
2
3
4
5
|
cd /docker/nariDockerDat/cl_ubun24/download
git clone https://github.com/danchitnis/container-xrdp.git
cd container-xrdp
vi ./ubuntu-xfce/Dockerfile-gvis.txt ⭐️さっき用意したDockerfileを貼り付ける
docker build -f ./ubuntu-xfce/Dockerfile-gvis.txt -t ubu:24gvis .
|
ビルド結果#
何回かビルドでエラーになったけど、廃れたモジュールは記述から外して必要そうなのを書き足した。
最終的にdocker system pruneして実行したビルド。
300秒ぐらいで終わることもあったけど、イメージ置き場にキャッシュが残ってるからかな。
何度かやりなおして10分ぐらいかかった。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
nari@nafslinux-ubu24:/docker/nariDockerDat/cl_ubun24/download/container-xrdp$ docker build -f ./ubuntu-xfce/Dockerfile-gvis.txt -t ubu:24gvis .
[+] Building 588.1s (53/53) FINISHED docker:default
=> [internal] load build definition from Dockerfile-gvis.txt 0.0s
=> => transferring dockerfile: 5.13kB 0.0s
=> [internal] load metadata for docker.io/library/ubuntu:24.04 2.2s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 1.73kB 0.0s
=> [ububase 1/48] FROM docker.io/library/ubuntu:24.04@sha256:e3f92abc0967a6c19d0dfa2d558388 1.6s
=> [ububase 2/48] RUN apt-get -y update 5.0s
=> [ububase 3/48] RUN apt-get -y upgrade 3.1s
=> [ububase 4/48] RUN apt-get install -y xfce4 xfce4-clipman-plugin xfce4-cpu 153.2s
=> [ububase 5/48] RUN apt-get install -y sudo wget xorgxrdp xrdp tzdat 21.3s
=> [ububase 6/48] RUN locale-gen ja_JP.UTF-8 && echo 'LC_ALL=ja_JP.UTF-8' > /etc/defaul 0.8s
=> [ububase 7/48] RUN cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && echo 'Asia/To 0.3s
=> [ububase 8/48] COPY ./build/ubuntu-run.sh /usr/bin/ 0.0s
=> [ububase 9/48] RUN mv /usr/bin/ubuntu-run.sh /usr/bin/run.sh 0.2s
=> [ububase 10/48] RUN chmod +x /usr/bin/run.sh 0.3s
=> [ububase 11/48] RUN mkdir -p /var/run/dbus && cp /etc/X11/xrdp/xorg.conf /etc/X11 && 0.3s
=> [ububase 12/48] RUN apt-get -y update 5.0s
=> [ububase 13/48] RUN apt-get -y upgrade 1.3s
=> [ububase 14/48] RUN apt-get install -y fonts-ipafont git curl featherpad 67.0s
=> [ububase 15/48] RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmo 0.3s
=> [ububase 16/48] RUN install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/ 0.4s
=> [ububase 17/48] RUN /usr/bin/sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com 0.3s
=> [ububase 18/48] RUN apt install apt-transport-https 0.3s
=> [ububase 19/48] RUN apt update 118.0s
=> [ububase 20/48] RUN apt install code 6.0s
=> [ububase 21/48] RUN apt remove snap 1.1s
=> [ububase 22/48] RUN add-apt-repository ppa:mozillateam/ppa 7.0s
=> [ububase 23/48] RUN echo "Package: firefox*" > /etc/apt/preferences.d/mo 0.2s
=> [ububase 24/48] RUN echo "Pin: release o=LP-PPA-mozillateam" >> /etc/apt/preferences.d/mo 0.3s
=> [ububase 25/48] RUN echo "Pin-Priority: 1001" >> /etc/apt/preferences.d/mo 0.2s
=> [ububase 26/48] RUN apt-get -y update 1.9s
=> [ububase 27/48] RUN apt-get -y upgrade 1.2s
=> [ububase 28/48] RUN apt install firefox xul-ext-ubufox 176.0s
=> [ububase 29/48] RUN echo "function removegomi () {" >> /root/.bashrc 0.2s
=> [ububase 30/48] RUN echo " find . \( -name '.DS_Store' -or -name '._*' \) -delete -print 0.2s
=> [ububase 31/48] RUN echo "}" >> /root/.bashrc 0.2s
=> [ububase 32/48] RUN echo "alias rmgomi=removegomi" >> /root/.bashrc 0.3s
=> [ububase 33/48] RUN echo "alias sc='cd /gvis/script'" >> /root/.bashrc 0.3s
=> [ububase 34/48] RUN echo "alias tree="pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/ 0.2s
=> [ububase 35/48] RUN echo "alias dff='df -h | grep -v DockerSys | grep -v "dev/loop"' " 0.3s
=> [ububase 36/48] RUN echo "PATH=/gvis/script/proc:/usr/local/sbin:/usr/local/bin:/usr/sbin 0.3s
=> [ububase 37/48] RUN echo "export PATH" >> /root/.bashrc 0.2s
=> [ububase 38/48] RUN useradd -m -s /usr/bin/bash -u 1101 nari 0.3s
=> [ububase 39/48] RUN sudo su - nari 0.3s
=> [ububase 40/48] RUN echo "function removegomi () {" >> /home/nari/.bashrc 0.3s
=> [ububase 41/48] RUN echo " find . \( -name '.DS_Store' -or -name '._*' \) -delete -print 0.3s
=> [ububase 42/48] RUN echo "}" >> /home/nari/.bashrc 0.2s
=> [ububase 43/48] RUN echo "alias rmgomi=removegomi" >> /home/nari/.bashrc 0.3s
=> [ububase 44/48] RUN echo "alias sc='cd /gvis/script'" >> /home/nari/.bashrc 0.3s
=> [ububase 45/48] RUN echo "alias tree="pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/ 0.2s
=> [ububase 46/48] RUN echo "alias dff='df -h | grep -v DockerSys | grep -v "dev/loop"' " 0.3s
=> [ububase 47/48] RUN echo "PATH=/gvis/script/proc:/usr/local/sbin:/usr/local/bin:/usr/sbin 0.3s
=> [ububase 48/48] RUN echo "export PATH" >> /home/nari/.bashrc 0.3s
=> exporting to image 8.5s
=> => exporting layers 8.5s
=> => writing image sha256:fb376515817dbf1b07c98de365f767a8d6adf450e899e4fd591bf0f1833ae032 0.0s
=> => naming to docker.io/library/ubu:24gvis 0.0s
nari@nafslinux-ubu24:/docker/nariDockerDat/cl_ubun24/download/container-xrdp$
|
speedtest.netで800Mbpsぐらいの速度は出る状態でもこれぐらい。
イメージのサイズ確認してみる。
1
2
3
4
|
nari@nafslinux-ubu24:/docker$ docker images | egrep "22gvis|24gvis"
ubu 24gvis 829170c7ba35 3 minutes ago 4.26GB
ubu 22gvis 3314336c4a98 5 days ago 3.51GB
nari@nafslinux-ubu24:/docker$
|
22のときと比べたら700MBぐらいデカなっとる。
いらんもん入れてへんつもりなんやけどな。
使いながらダイエットしてこ。
ローカルlinuxのxrdpコンテナ#
仮でコンテナ動かしてrdpログインしてからGUIで手動設定してく。
引数のパスワードは都度変える。
docker run -it -v /docker/nariDockerDat/cl_ubun24:/gvis -p 33389:3389 ubu:24gvis nari password yes
普通にrdp接続して開く。
xfceのネズミの壁紙見えて時計がJST、入力メソッドに日本語が使えたらうまいこといってる。

不足してるモジュールあってdbusでエラー出たり、ユーザidの1000がubuntuユーザとかになってて5回ぐらい作り直した。
ホンマの最初のxfce画面が表示できたときはやっぱり嬉しいもんよ。
ここではvscode設定とかsmb接続の認証情報を保存して、xfceの他の細かい設定もやっとく。
今まで記憶に頼ってときどき漏れがあったけどメモっとこ。
firefoxとかvscodeのインストールはdockerfileでやってるけど、GUI設定は手動でやらなアカン。
書いてみたら結構多いな。
-
GUIの上パネルに見える時計を秒単位まで表示と、mozcへの切り替え、thunarのファイル表示を年月日時分秒に設定
-
母艦のubuntu24へsmb接続する認証情報の設定と、読み書きできること、パーミッション崩れがないことを確認
-
xfceのシステムの設定でフォントをIPAゴシックに変更、キーボードを日本語配列にして(次にコンテナ起動したら有効になる)、壁紙設定と背景色を設定
-
ターミナル内でdateって入れて日本語表示できてる確認と、alias設定でフォルダのツリー表示できる確認と、念のためaptの実行
-
GUIの下パネルのほうにブラウザがあってfirefox起動できること、パネルに電卓/スクリーンショット/vscodeの追加
-
firefoxをダークモードにしてフォントをIPAゴシックに変更し、母艦のapacheで公開しているURLをお気に入りに追加し、djangoページの認証情報を覚えさせる
-
vscodeの起動オプションに--no-sandboxを足して.gitフォルダのあるフォルダを開いておき、プラグインにjapanese langpack/vscode-pdf/markdown pdf/gitgraph/git extensionを追加してからgitグラフ表示できるか確認
-
テキストファイルをfeatherpadでダークモードで開く設定して、pdfがプレビューできる、xlsxファイルがlibreoofficeで開けることを確認
-
google cloudのコンテナの場合はchrome起動してgmailとgoogle drive使えるように設定
ubuntu22のrdpにはスクリーンセーバとロック画面の設定あったけどubuntu24にはあらへん。
まぁええか。
GUIの設定は5分もかからず、やってみたらこうなる。

手動設定終わったらコミットしてイメージを置く。
dockerイメージはmacのminikubeに持ってって使うのよね。
そしたらGUIで手動設定した内容がkubernetesのpodで完全に同じ状態を維持して使えてまう。
docker commit `docker ps | grep 24gvis | awk '{print $NF}'` gvis-ubu24:24gvis
macのminikubeの中で動いているxrdpコンテナ#
ローカルlinuxで動くコンテナの背景色をグレーにして動かしておいて、docker saveして作ったイメージをmacの
minikubeに持ってきて
、それをPodとして動かす。

なんかネットの速度遅いな。
別で調べるか。
試行錯誤する箇所もあったけど、dockerの起動オプションで指定してる--data-root /docker/nariDockerSysがdocker system pruneしてもあんまり小さくならん。
コンテナとイメージを全部潰してみても完全には消えてくれん。
母艦のssdに置いたvmdkも100GB程度になってたから、/dockerのパーティションごと作り直した。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
nari@nafslinux-ubu24:/docker$ sudo du -shc *
4.0K DB11backup.sh
509M DockerImages
0 DockerVol.txt
152K _tmp
12G backup
12K compose-ALL.yml
4.0K compose-current.yml
4.0K compose-current20240608.yml
4.0K compose.yml
4.0K djangoDB11backup.sh
4.0K djangoDB11restore.sh
52M docker-compose
4.0K docker.service.20210305.txt
4.0K docker.service.20230204.txt
4.0K dockerStart.sh
4.0K dockerStop.sh
13G nariDockerDat
42G nariDockerSys
67G 合計
nari@nafslinux-ubu24:/docker$
|
合計67GBってあるのに、vmdkは59.6GBってあるのはなんでや?
