庭をつくる

13 min read読了の目安(約12200字

草を生やす ために自分のPCのお庭を整備した。
実機は普通のDELLノートPCです。以下、VirtualBox & Ubuntu, WSL2 & Docker を自PCに入れた作業記録的なもの。

OS 名: Microsoft Windows 10 Home
システム モデル: Inspiron 5400 2n1
システムの種類: x64-based PC
プロセッサ: 1 プロセッサインストール済みです。
[01]: Intel64 Family 6 Model 126 Stepping 5 GenuineIntel ~998 Mhz
システム ロケール: ja;日本語
物理メモリの合計: 16,148 MB

VirtualBox & Ubuntu

Windows10にVirtualBoxとUbuntuをインストール
[Java] UbuntuにJavaの開発環境を構築&実行確認
【最新】UbuntuでJavaの環境を構築する方法

コピペ出来ない問題は以下で解決。

http://blog.kondoyoshiyuki.com/2019/12/14/enable-copy-and-paste-on-virtualbox/

メモリ

当初1GBにしていたが、2GBにして再起動。

ディスクサイズ

仮想ディスク拡張
パーティションのリサイズ

systemd-resolved crashed with SIGABRT in epoll_wait()

というエラーが出まくる件:

https://github.com/systemd/systemd/issues/9431#issuecomment-400423075

The stack trace in the bug shows the SIGABRT being triggered in the portmapper code, and that means NIS is causing this. Hence, yupp, please turn off the IP sandboxing stuff for logind and it should work again. Also see the NEWS file about this.

Consider asking your distro to include a drop-in for logind that turns off the IP sandbox, so that everybody who installs nss-nis automatically gets the IP sandbox turned off, and things just work again for NIS.

Anyway, let's close this here, the IP sandbox for logind was announced, and I don't think we should really change anything in systemd regarding this. Hope that makes sense. Closing.

Linux NISクライアントがハングアップする というのがあったので対処してみたところ一旦、安定するようになった。

Java

sudo apt update
sudo apt install default-jdk
java -version

を順に打つ。以下もセット。

export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
e99h2121@e99h2121-VirtualBox:~$ java -version
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
e99h2121@e99h2121-VirtualBox:~$ ^C
e99h2121@e99h2121-VirtualBox:~$ lsmod | grep vbox
vboxvideo              32768  0
drm_vram_helper        20480  1 vboxvideo
vboxguest             348160  5
drm_kms_helper        184320  2 vmwgfx,vboxvideo
drm                   491520  7 vmwgfx,drm_kms_helper,drm_vram_helper,vboxvideo,ttm

続いて maven install
sudo apt install maven

intellij IDEA community edition はソフトウェアセンターからインストール。
エディションの違いは以下

https://www.jetbrains.com/ja-jp/idea/features/editions_comparison_matrix.html

Vim

Vimの使い方はこれを見る。

https://prev.net-newbie.com/linux/commands/vi.html

書き込み用にファイルを開けません sudoについて を実施。

Git

Ubuntu Git
コマンドで使うgithubの使い方

e99h2121@e99h2121-VirtualBox:~$ ssh-keygen -t rsa -C "yourmail@gmail.com" -f ~/.ssh/git

e99h2121@e99h2121-VirtualBox:~$ sudo vim /home/e99h2121/.ssh/git.pub

WSL2 & Docker

WSL 2 GPUをサポートした「Docker Desktop」が開発者向けにプレビュー

まず以下でOK。
WSL2の初歩メモ
Windows 10 用 Windows Subsystem for Linux のインストール ガイド

PS C:\Users\s5551> wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

image.png

Windows 10 Home で WSL 2 + Docker を使う
話はややこしいのでWindows 10 Homeでも使えて、インストールも超簡単な「Docker Desktop for Windows」登場 (1/2) 参照。
ポイントは Windows 10 Home でも Docker が使える という部分。

PS C:\Users\s5551> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2
PS C:\Users\s5551> wsl lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:        20.04
Codename:       focal

で、たどり着いた。
image.png
チュートリアル。
image.png

ただしこの状態ではVirtualBoxが起動しないようなので、以下Windows ハイパーバイザー プラットフォーム にチェックを付ける。

(PCではなく)WSL2のみを終了、再起動する方法

PS C:\Users\s5551> wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  docker-desktop-data    Running         2
  docker-desktop         Running         2

例:wsl -t Ubuntu-20.04 なんてやれば停止。

WindowsでDocker Hubからイメージをダウンロードしたりアップロードしたりしてみる
アカウント作成

docker images …ローカルにあるイメージ一覧

PS C:\Users\s5551> docker images
REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
docker101tutorial   latest    924127fb921e   27 hours ago   27.7MB
alpine/git          latest    ed0ba0fc6585   8 days ago     28.4MB

Docker イメージとコンテナ

イメージを元に具体化されたコンテナが生成される。

  • イメージ...オブジェクト指向で言うクラス。
  • コンテナ...イメージから作られた実行プロセス。

docker pull イメージ名:タグ名

https://hub.docker.com/_/python
docker pull python
PS C:\Users\s5551> docker pull python
Using default tag: latest
latest: Pulling from library/python
6c33745f49b4: Pull complete
ef072fc32a84: Pull complete
c0afb8e68e0b: Pull complete
d599c07d28e6: Pull complete
f2ecc74db11a: Pull complete
26856d31ce86: Pull complete
a463ae07b5f3: Pull complete
54f24c50f14e: Pull complete
168ee6df05fe: Pull complete
Digest: sha256:39c16d1a064c0239939d4ed52923b736c25b389e6ea439d5652b8fc9564ede76
Status: Downloaded newer image for python:latest
docker.io/library/python:latest

Dockerfile

予め test.php を同階層に作っておく。

<?php
  echo "hoge";
?>

docker build -t testphpimg . で以下成功。

PS C:\workspaces\docker> docker build -t testphpimg .
[+] Building 63.7s (8/8) FINISHED
 => [internal] load build definition from Dockerfile                                                               0.0s
 => => transferring dockerfile: 32B                                                                                0.0s
 => [internal] load .dockerignore                                                                                  0.0s
 => => transferring context: 2B                                                                                    0.0s
 => [internal] load metadata for docker.io/library/centos:centos7                                                  2.2s
 => [1/3] FROM docker.io/library/centos:centos7@sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430  18.3s
 => => resolve docker.io/library/centos:centos7@sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d8904924307  0.0s
 => => sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e 1.20kB / 1.20kB                     0.0s
 => => sha256:e4ca2ed0202e76be184e75fb26d14bf974193579039d5573fb2348664deef76e 529B / 529B                         0.0s
 => => sha256:8652b9f0cb4c0599575e5a003f5906876e10c1ceb2ab9fe1786712dac14a50cf 2.75kB / 2.75kB                     0.0s
 => => sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc 76.10MB / 76.10MB                  13.7s
 => => extracting sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc                          4.0s
 => [internal] load build context                                                                                  0.0s
 => => transferring context: 62B                                                                                   0.0s
 => [2/3] RUN yum -y install httpd php                                                                            42.0s
 => [3/3] COPY test.php /var/www/html/                                                                             0.1s
 => exporting to image                                                                                             1.0s
 => => exporting layers                                                                                            1.0s
 => => writing image sha256:6aa0edc0ac67770528143b22aed347994ecf53f9f99bde18577ffcd3014e460a                       0.0s
 => => naming to docker.io/library/testphpimg                                                                      0.0s

PS C:\workspaces\docker> docker images
REPOSITORY          TAG       IMAGE ID       CREATED          SIZE
testphpimg          latest    6aa0edc0ac67   57 seconds ago   348MB
docker101tutorial   latest    924127fb921e   28 hours ago     27.7MB
alpine/git          latest    ed0ba0fc6585   8 days ago       28.4MB
python              latest    d1eef6fb8dbe   10 days ago      885MB

docker run -d -p 8080:80 --name testphpimg testweb:latest すると見事動作。

image.png

注意: . を忘れると以下エラー。

PS C:\workspaces\docker> docker build -t testphpimg
"docker build" requires exactly 1 argument.
See 'docker build --help'.

https://stackoverflow.com/questions/28996907/docker-build-requires-1-argument-see-docker-build-help

docker run したあとは

Docker コマンドチートシート
DockerでCentOS 7のイメージを利用してみよう

docker ps -a
docker stop
docker start
docker kill [id], docker rm [id]

CentOS

Docker上でCentOSを動かす

PS C:\workspaces\docker> docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED      STATUS      PORTS                  NAMES
232fd3657947   testphpimg:latest   "/usr/sbin/httpd -DF…"   3 days ago   Up 3 days   0.0.0.0:8080->80/tcp   testphpimg
b88a7af1d6ff   docker101tutorial   "/docker-entrypoint.…"   4 days ago   Up 4 days   0.0.0.0:80->80/tcp     docker-tutorial
PS C:\workspaces\docker> docker run -i -t -d centos /bin/bash
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
7a0437f04f83: Pull complete
Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
Status: Downloaded newer image for centos:latest
f0abfce18a91a5fc65f5fee89dea901c373f271716ec93143f5af3950a21dda8
PS C:\workspaces\docker> docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS                  NAMES
f0abfce18a91   centos              "/bin/bash"              29 seconds ago   Up 22 seconds                          nifty_hoover
232fd3657947   testphpimg:latest   "/usr/sbin/httpd -DF…"   3 days ago       Up 3 days       0.0.0.0:8080->80/tcp   testphpimg
b88a7af1d6ff   docker101tutorial   "/docker-entrypoint.…"   4 days ago       Up 4 days       0.0.0.0:80->80/tcp     docker-tutorial

docker attach (Container ID)

Cowsay

sudo apt install cowsay

e99h2121@e99h2121-VirtualBox:~$ cowsay 2021 de arimasu maika!
 ________________________
< 2021 de arimasu maika! >
 ------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||