お一人様用Misskeyを立てて、お仕事備忘録を実現するマイクロブログSNSを作る – 1. Docker準備編

お一人様用Misskeyを立てて、お仕事備忘録を実現するマイクロブログSNSを作る – 1. Docker準備編

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の準備は完了です。

次回、Misskeyをインストールしていきます

サーバ関連カテゴリの最新記事