Twitter(X)の代替となる?マイクロブログSNSのMisskey(みすきー)を自前の仮想化基盤上に展開します。
通常は、見知らぬ方との交流のため…という感じなのですが、今回は完全にローカルに閉じた状態(外:インターネットからのアクセスを許可しない)で自分だけで利用する想定です。
構成概要
大まかな環境としては以下の通り。
- OSはUbuntu 22.04
- MisskeyはDocker compose版を利用することで、お手軽インストールを目指す
- Misskeyの待ち受けポートは3000として、別途Docker版のnginxをリバースプロキシとして立てる(複数インスタンスの作成や、公開する際のことを一応考慮する。ただし、完全にクローズド環境にしてしまう場合はDocker立てるのが面倒なので、Misskey本体の待ち受けポートを80にしてしまうでもいいと思う。)
- 一般ユーザ xxxx のホーム配下に docker フォルダを作成して、その中に関連ファイルを配置していく
Ubuntu 22.04初期インストール後の確認
$ sudo apt info docker [sudo] xxxx のパスワード: Package: docker Version: 1.5-2 Priority: optional Section: universe/x11 Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Paul Tagliamonte <paultag@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 9,216 B Depends: wmdocker Download-Size: 1,316 B APT-Sources: http://jp.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages Description: 移行用パッケージ This is a transitional package for system tray docking application. It can safely be removed.
↑無償版Dockerと有償版Dockerが別れたことによって、古いDockerがインストールされたまま更新されていない、らしい。
ので、以下コマンドで新しいDockerを導入する所から始めます。
Docker CE(無償版Docker)のインストール
Docker公式GPGキーを追加
$ sudo apt-get update $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
リポジトリの追加
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ※ここまでのコマンドの確認 ※Ubuntu 22.04 LTSのコードネーム「jammy」になっていることと、安定版「stable」になっていることを確認する $ cat /etc/apt/sources.list.d/docker.list deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu jammy stable
パッケージの更新&インストール状態の確認
$ sudo apt-get update ※最初に調べた「docker」ではなく、今入れた無償版の「docker-ce」を確認する $ sudo apt info docker-ce Package: docker-ce Version: 5:24.0.6-1~ubuntu.22.04~jammy Priority: optional Section: admin Maintainer: Docker <support@docker.com> Installed-Size: 96.6 MB Depends: containerd.io (>= 1.6.4), docker-ce-cli, iptables, libseccomp2 (>= 2.3.0), libc6 (>= 2.34), libdevmapper1.02.1 (>= 2:1.02.97), libsystemd0 Recommends: apparmor, ca-certificates, docker-ce-rootless-extras, git, libltdl7, pigz, procps, xz-utils Suggests: aufs-tools, cgroupfs-mount | cgroup-lite Conflicts: docker (<< 1.5~), docker-engine, docker-engine-cs, docker.io, lxc-docker, lxc-docker-virtual-package Replaces: docker-engine Homepage: https://www.docker.com Download-Size: 22.6 MB APT-Sources: https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages Description: Docker: the open-source application container engine Docker is a product for you to build, ship and run any application as a lightweight container . Docker containers are both hardware-agnostic and platform-agnostic. This means they can run anywhere, from your laptop to the largest cloud compute instance and everything in between - and they don't require you to use a particular language, framework or packaging system. That makes them great building blocks for deploying and scaling web apps, databases, and backend services without depending on a particular stack or provider. N: 追加レコードが 25 件あります。表示するには '-a' スイッチを付けてください。
Docker CEのインストール
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin ※インストール後にバージョン確認 $ sudo docker version Client: Docker Engine - Community Version: 24.0.6 API version: 1.43 Go version: go1.20.7 Git commit: ed223bc Built: Mon Sep 4 12:31:44 2023 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 24.0.6 API version: 1.43 (minimum version 1.12) Go version: go1.20.7 Git commit: 1a79695 Built: Mon Sep 4 12:31:44 2023 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.22 GitCommit: 8165feabfdfe38c65b599c4993d227328c231fca runc: Version: 1.1.8 GitCommit: v1.1.8-0-g82f18fe docker-init: Version: 0.19.0 GitCommit: de40ad0 ※docker composeも確認 $ docker compose version Docker Compose version v2.21.0
Dockerの動作確認
$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 719385e32844: Pull complete Digest: sha256:dcba6daec718f547568c562956fa47e1b03673dd010fe6ee58ca806767031d1c Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/ ※動作確認ができたら、不要なコンテナを削除する $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cb96ba3bf3f6 hello-world "/hello" 2 minutes ago Exited (0) 2 minutes ago fervent_euler $ sudo docker rm cb96ba3bf3f6 cb96ba3bf3f6 $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ここまでで、下地となるDockerの準備は完了です。
[…] […]