Debianが必要になったのでやります。入れる候補はなんでもよくて、実機である必要すらないのでさくらサーバでも別PCでも仮想環境でも構わんのですが、使ったことないっていう理由だけでDockerでやってみます。
- Dockerをいれる
- 確認
- Docker HubからDockerイメージを取得
- Hello Worldを忘れていた
- Dockerコンテナをつくる
- ほんまにDebianに入ったのか確認
- software selectionどこいった
- taskselで入れたり消したりしたいとき
- まとめ
Dockerをいれる
たいていDocker for macでインストールするのがふつうっぽいんですが、homebrew-caskでsearch
したらあったのでこれでぶちこみました。
起動するとなんか可愛いのが出て来る
Docker Cloudってなんやねん、事前のリサーチでは一切出てこなかったぞ、と思ったら、Docker Hubとの連携を密にしたsaasらしいです(わからん)。とりあえずDocker Hubと同じIDが使えるので登録しておく
確認
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE
入ってますな
Docker HubからDockerイメージを取得
docker pull <image name>
でいけるらしい。とりあえずDocker Hubで探してみるとオフィシャルのDebianイメージがあったのでいれてみる
docker pull debian
後に確認すると
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE debian latest 1b3ec9d977fb 11 days ago 100MB
よさそうですな
Hello Worldを忘れていた
とりあえずdocker run hello-world
してなんやかんや出たあとに、コンテナのリストを取得するコマンドdocker ps -a
すると、
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 666937145e85 hello-world "/hello" 4 minutes ago Exited (0) 4 minutes ago silly_bell
勝手にhello-worldイメージをdocker hubから引っ張ってきてそのコンテナを作って動かしてるよ、みたいな感じになってるっぽいです qiita.com 邪魔なhello-world消してやってさっさと次にいきます
Dockerコンテナをつくる
リサーチ中はよくわからなかったのでとりあえずいったれや、というノリでここまできましたが、実際やってみるとここでイメージいれたぞ!次はどうすんだ!ってなりました。手順としては、Dockerイメージをつくる→それをもとにDockerコンテナをつくるという流れっぽい。してみるとDockerコンテナはDockerイメージのインスタンス(っぽいもの)ということらしい
とりあえず$ docker run -it debian
することでdebianをベースにしたコンテナが作られる。作成したコンテナやイメージを消したり出たり入ったり停止したり、なんかのコマンドはこちらを参照
ほんまにDebianに入ったのか確認
root@fb7b34a6c5e6:/# cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 9 (stretch)" NAME="Debian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"
よさそうですな
software selectionどこいった
ふつうにDebianいれると最初のコンフィグ?でどんな環境のDebianにするか選択しろと言われるらしい
debian software selection - Google 検索
Dockerでイメージを作ったときはそんなの一切いわれなかった。どういう環境なのか知りたい
調べるとtasksel
コマンドで調べられるらしい。やってみると
root@fb7b34a6c5e6:/# tasksel --list-tasks bash: tasksel: command not found
なるほどね。じゃあこれでどうだ
root@fb7b34a6c5e6:/# apt-get install tasksel Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package tasksel
は???
結局root@fb7b34a6c5e6:/# apt-get update
したあとにtasksel
をインストールしたらいけました。結果はというと
root@fb7b34a6c5e6:/# tasksel --list-tasks u desktop Debian desktop environment u gnome-desktop GNOME u xfce-desktop Xfce u kde-desktop KDE u cinnamon-desktop Cinnamon u mate-desktop MATE u lxde-desktop LXDE u web-server web server u print-server print server u ssh-server SSH server u laptop laptop
uってのはuninstalledなのでつまり最初からなにも入ってません。参考わたしの場合はStarndard System Utilities以外全部いらんので都合がいいです。Starndard System Utilitesの文字が見当たりませんが、調べたらtasksel --task-packages standard | sort
して標準システムユーティリティだけをリストで出力できました。なんかやたらたくさん入っててnanoとかpythonとか要るか????
ってなった
taskselで入れたり消したりしたいとき
さきほど使ったtasksel
はオプションとか無しでそのまま使うとSoftware SelectionがCUIでできるっぽいので試します。
root@fb7b34a6c5e6:/# tasksel debconf: unable to initialize frontend: Dialog debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.) debconf: falling back to frontend: Readline debconf: unable to initialize frontend: Readline debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.) debconf: falling back to frontend: Teletype Software selection ------------------ You can choose to install one or more of the following predefined collections of software. 1. Debian desktop environment 3. ... Xfce 5. ... Cinnamon 7. ... LXDE 9. print server 11. laptop 2. ... GNOME 4. ... KDE 6. ... MATE 8. web server 10. SSH server (Enter the items you want to select, separated by spaces.) Choose software to install:
インストールだけ選べるっぽいですね。。。試しに何も入れずにEnterしてみても選択が終了するだけで意味なかったです。
ほかに、install
とremove
オプションで個別にタスクを指定できるらしいです。試してみたんですが、installすると処理が止まってしまいコンテナがフリーズしたっぽい感じになりました(具体的な状態はどう確かめればいいか知らない)。DockerでGUIが欲しければ別の方法がggれば出てくるっぽいのでそちらをやればいいんじゃないですかね。今回は目的じゃないのでやってません
まとめ
Dockerわからん。これで望む環境が構築できたのかもわからん。でもとりあえずDebianは入れれたしこれでパーフェクトならばめっちゃ楽でいい。