はじめに
先日から始まった「Linux機にナレッジサーバを構築して運用する」プロジェクト。
OS基盤の前に、
何かあっても切り戻しができる VMと異なりリソース消費が少ない
ことから、Dockerを入れてみます。
前提条件
ベースPCは前述したとおり。
Kubuntu 21.04を導入 NWをIPv4のローカルで固定 家庭内のNWからSSH接続できるよう設定
Dockerインストール
以下、全てrootで実施します。
(参考:https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-ja )
# aptitude install apt-transport-https ca-certificates curl software-properties-common
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
# aptitude update
# aptitude install docker-ce # aptitude install docker-compose
# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-09-12 07:54:43 JST; 1min 35s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 51598 (dockerd) Tasks: 9 Memory: 28.6M CGroup: /system.slice/docker.service └─51598 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
以下、通常ユーザで実行します。
$ usermod -aG docker [ユーザ名]
$ sudo systemctl enable docker
docker 動作確認
まずはコンテナが動いているかを確認します。
(参考:https://qiita.com/Esfahan/items/52141a2ad741933d7d4c )
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
→ 何も動いておらず。
$ docker run -i -t centos /bin/bash # cat /etc/redhat-release CentOS Linux release 8.3.2011 → CentOS8.3が起動 # exit
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 99b9e451b8c0 centos "/bin/bash" About a minute ago Exited (0) 14 seconds ago compassionate_allen
$ docker rm [コンテナID]
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
何も動いていないことを再確認。
DockerコンテナからKnowledgeを作成
ここまで来たらあっけなく終わりました。
$ sudo docker pull koda/docker-knowledge $ sudo mkdir /home/manualmaton/knowledge ## コンテナを格納するディレクトリ $ sudo chmod a+w /home/manualmaton/knowledge $ sudo docker run -d -p 80:8080 -v /home/manualmaton/knowledge:/root/.knowledge --name knowledge koda/docker-knowledge
あとは、ブラウザ上から
http://[サーバのIPアドレス]
にアクセスし
正常にアクセス完了。Tomcatやnginxの設定すら不要でした。
残る課題
コンテナの自動起動設定。→ 現状、リスタートしても自動的にサービスが立ち上がらないので、ベースマシン再起動のたびにdocker start knowledgeを入力する必要があります。これを自動起動する設定を行います。 データ(コンテナ)の自動バックアップ
まとめ
なんとなく作ったシステムが実は有用だったと気づいたものの、それを再現するためのメモがなかったことに唖然としました。
「前に取得した知識がどこかで役立つよう」
メモを残しておくことは本当に大事だと思ったわけで。
なにはともあれ、今後は
適当なMarkdownエディタを使って生地を作成 それをKnowledgeに放り込む
スタイルが確立しそうな予感です。