Dockerをinstallする前までのシステム領域コピーして取ってある(/dev/sda8)ので、それをこれ
から作るいろいろなコンテナのベースにする。
$ sudo mkdir ~/myproj/container_root
$ sudo mount -t ext3 /dev/sda8 /mnt2
$ cd /mnt2
$ sudo tar cpf – . | (cd ~/myproj/container_root/; sudo tar xpf -)
$ sudo chroot ~/myproj/container_root /bin/bash
# ls
bin dev home lib64 media mnt2 opt root sbin sys usr
boot etc lib lost+found mnt mnt3 proc run srv tmp var
# cat /etc/slackware-version
Slackware 15.0
# (Ctrl-d)
exit
$ cd ~/myproj/container_root
$ sudo dockerd &
$ sudo tar cpf – . | sudo docker import – slack-15.0.base
ERRO[] Handler for POST /v1.41/images/create returned error: Error processing tar file(exit status 1): write /usr/lib64/gallium-pipe/pipe_iris.so: no space left on device
Error response from daemon: Error processing tar file(exit status 1): write /usr/lib64/gallium-pipe/pipe_iris.so: no space left on device
(システム領域にも余裕がないとダメなようだ、環境変数でユーザー領域をキャッシュにできないか?)
(dockerdがシステム領域上で動作しているからか?pipe_iris.soの方か?ユーザー領域にinstallして
\動かしてみるか?)
(メンドクサイから全部1つに入れてしまうか?Winみたいに。なんだかなー、docker入れればパーティ
\ション(スライス)減らせるが、入れるならパーティションは最大容量が必要だから1個だけがいい?)
(システム領域がポカンといけばユーザーデータもパーに。SSDだとどうなるか分からないが)
(システム領域とmyprojだけくっつけてユーザー領域からリンク貼るか)
システム領域を大きくとって再度実行した。
$ sudo tar cpf – . | sudo docker import – slack-15.0.base
sha256:b59df768235a5c62bfa0b38a25f2af2aced1126024095ced628161d4205bcdcf
$ docker run slack-15.0.base cat /etc/slackware-version
time=”” level=info msg=”starting signal loop” namespace=moby path=/run/docker/containerd/daemon/io.containerd.runtime.v2.task/moby/32478698a63b8baaa79c239a83c0fcdae35ecae6cdd1acb53a329c94d46246c0 pid=3577
Slackware 15.0
INFO[] ignoring event container=32478698a63b8baaa79c239a83c0fcdae35ecae6cdd1acb53a329c94d46246c0 module=libcontainerd namespace=moby topic=/tasks/delete type=”*events.TaskDelete”
INFO[] shim disconnected id=32478698a63b8baaa79c239a83c0fcdae35ecae6cdd1acb53a329c94d46246c0
ERRO[] copy shim log error=”read /proc/self/fd/14: file already closed”
コマンド使ってみて、まぁ面白いが、やっぱよく知るシステム(Slack)でざっと動かしてからDockerで
本番環境を持ってきて試す、のがよさそうだ。
というか、普段Linuxやってるなら本番はディストリ違うとはいえ、パーティション切ってコンテナ
展開してそのまま動かした方が早いな、軽いし、横から動かすよりは。HWは最新カーネル使えばいい。
Win上でLinux動かしたい人向けだなDockerは。
普段Linux使い向けには、パーティション切らずにシステム全体をBackUpしたい、再起動なしですぐ
に動かしたい、ってのには向いてるか。tgzにはできない。
コンテナを共有して標準化するのは良いことかもしれないな、いちいち手作りする必要がなくて。
Dockerコンテナのファイル実体と肥大化する/var/lib/docker/overlay2の正体 #docker
https://www.creationline.com/lab/35518
(/var/lib/dockerからユーザ領域にリンク貼るかな。がしかし昔まだシステムのパーティションを分けて
\いた頃、/varはよく壊れたような。そういう認識なのか?ユーザ領域とはやっぱり分けておくか。myproj
\もガリガリするからこの際ユーザ領域とは分けておくか。つまり当面はこのまま)
結論:
Dockerをinstallする前までのシステムを普段使いとする。こっちの大容量はいろいろ入れて
Web関連の実験用システムにする。Dockerは標準システムを持ってくる時に使う。大容量って言って
も数十GBだし、切り替えメンドクサくなってずっと使ってる気もするが。
ずっと使ってる。(2022.04)
その後:(2022.11)
dockerを使う機会があったのでよく使うコマンドまとめ。忘れていたがdockerはdockerdを立てておい
て、dockerコマンドで使う。前回はdockerコマンドで単発コマンドばかりだったが、普通はコンテナ上で
作業することの方が多いようだ。コンテナへの入り方を探った。
$ sudo dockerd &
(メモ省略)
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1295189916f1 slack-15.0.base “echo /bin:/usr/bin:…” 8 months ago Exited (0) 8 months ago admiring_sammet
79d1118e6870 slack-15.0.base “ls” 8 months ago Exited (0) 8 months ago awesome_bartik
f8318364cdb1 slack-15.0.base “pwd” 8 months ago Exited (0) 8 months ago blissful_driscoll
8413005a2ebc slack-15.0.base “cd /root” 8 months ago Created sweet_engelbart
866bc415f75f slack-15.0.base “cd /home/ore/” 8 months ago Created recursing_agnesi
d1f825af9789 slack-15.0.base “pwd” 8 months ago Exited (0) 8 months ago laughing_saha
015cfe5b861a slack-15.0.base “id” 8 months ago Exited (0) 8 months ago cranky_wiles
7053d2cc32d0 slack-15.0.base “df” 8 months ago Exited (0) 8 months ago agitated_bohr
75b9da388953 slack-15.0.base “cat /etc/slackware-…” 8 months ago Exited (0) 8 months ago peaceful_panini
32478698a63b slack-15.0.base “cat /etc/slackware-…” 8 months ago Exited (0) 8 months ago pedantic_moser
2b08fe1ed4ee hello-world “/hello” 8 months ago Exited (0) 8 months ago busy_driscoll
3a80925780e6 hello-world “/hello” 8 months ago Exited (0) 8 months ago competent_roentgen
c8f786740197 hello-world “/hello” 8 months ago Exited (0) 8 months ago boring_noyce
eeb35714bf41 hello-world “/hello” 8 months ago Exited (0) 8 months ago determined_poincare
6f1a28955b51 hello-world “/hello” 8 months ago Exited (0) 8 months ago inspiring_keldysh
eabc11fd9fbd hello-world “/hello” 8 months ago Exited (0) 8 months ago epic_engelbart
\
$ docker run -it –name test_container slack-15.0.base login
(メモ省略。やっぱりすげーメモリ食いで Firefoxが遅くなった)
$ docker start -i test_container
(メモ省略)
$ docker run -it –name test_container_2 slack-15.0.base /bin/bash
(うまくいった。何故かloginは絶対PATHでなくともOK?。がrootなのでやはりloginの方でいいかな。
\確かにchrootだが、chrootする時にPATHとか設定できないのか?まあいいや今は。コンテナにhome
\も入れておけばPATHやその他の環境変数も設定できるか)
\
後から入るには、docker attch
https://qiita.com/kooohei/items/0e788a2ce8c30f9dba53
\
Dockerコンテナ内のファイルをコンテナにログインせずに操作してみた
https://qiita.com/os1ma/items/11dbb73a3488deaca8e1
(外からemacsで編集したくなったが、ディレクトリ名が長いのでヤメた)
参考情報:
コンテナに入る方法をググったがうまくいかなかったので、上ではloginで入った:
https://qiita.com/tera_shin/items/8a43e904bd15990d3129
https://docs.docker.jp/engine/reference/commandline/run.html
https://qiita.com/Keitaroooo/items/a30bf4eb9310d7b3f7cd
docker コンテナ 1から作る、でググった:
https://knowledge.sakura.ad.jp/2226/ – Docker向けのコンテナをゼロから作ってみよう
docker ベースイメージとは、でググった:
http://docs.docker.jp/v19.03/develop/develop-images/baseimages.html – ベース・イメージの作成
\
http://docs.docker.jp/v19.03/engine/reference/index.html – コマンドライン・リファレンス
https://medium.com/@hiro08gh/%E3%82%82%E3%81%86%E5%BF%98%E3%82%8C%E3%81%AA%E3%81%84docker%E3%81%A7%E3%82%88%E3%81%8F%E4%BD%BF%E3%81%86%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89-d6ae0e0ea2a5 – もう忘れないDockerでよく使うコマンド – Medium
\
docker コマンド コンテナを表示、でググった:
https://unskilled.site/docker-ps%E3%81%A7%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E8%A1%A8%E7%A4%BA%E3%83%BB%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/
https://www.tohoho-web.com/docker/docker_ps.html
\
http://docs.docker.jp/v19.03/engine/userguide/networking/dockernetworks.html – Docker コンテナ・ネットワークの理解
Docker をインストールした全ての環境には、 docker0 と表示されるブリッジ( bridge )ネットワークが現れます。
bridge ネットワークの使用時をのぞけば、これらデフォルト・ネットワークと実際に通信する必要はありません。このように一覧を表示したり調べたりできますが、削除できません。これらは Docker の導入に必要だからです。
https://qiita.com/msi/items/d9cc1a2fd3f0fed3a901 – docker のネットワーク (docker0) 設定変更
\
https://qiita.com/hgaiji/items/97f3f924cab99329c36f – 【Docker】dockerのコンテナからホストにファイルをコピーする
http://docs.docker.jp/v19.03/engine/reference/commandline/cp.html – cp — Docker-docs-ja 19.03 ドキュメント