白猫のメモ帳

C#とかJavaとかJavaScriptとかHTMLとか機械学習とか。

UbuntuにDockerをインストールする

WindowsマシンのネットワークにSambaのサーバを表示させる - 白猫のメモ帳
前回の続きです。(続きじゃないかな…?)

参考にさせていただきました。
kinsta.com
qiita.com

前回まででNASとしての機能の準備ができたので、今度はもろもろのアプリケーションを引っ越していきます。
直接インストールしていったりしてももちろん良いのですが、せっかくなのでDockerを使って構築してみることにします。
なんか間違えたりしたときも変なゴミを残したりせずにやりなおしが簡単だし、環境の再構築もしやすいのがGoodです。

インストール

まずは前準備。

$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release

前回のwsddと同じようにaptの取得先を追加、証明書を登録してからインストールです。

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt install docker-ce docker-ce-cli containerd.io

サクッと終わります。

sudoなしでdockerコマンドが叩きたい

デフォルトだとsudoをつけないとdockerコマンドが叩けませんのでちょっとごにょごにょします。
dockerのユーザグループにユーザを追加。

$ sudo gpasswd -a shironeko docker
$ getent group docker
docker:x:999:shironeko

ちなみにグループへの追加はこれでもできる。
aオプションつけ忘れると既存のグループが外れたりするのが怖い。

$ sudo usermod -aG shironeko docker

一旦ログアウトしてから再度ログインするとsudoなしでdockerコマンドが叩けるようになっています。
ちなみにこの一旦ログアウトっていうのがポイントで、Dockerfileでグループをごにょごにょしようとするとハマったりします。

とりあえずなんか動かしてみる

まだなにもないです。

$ docker ps
CONTAINER ID   IMAGE   COMMAND    CREATED    STATUS    PORTS    NAMES

とりあえずhellow-world。
docker pullでイメージ取ってこれるけど、いきなりrunしても勝手にダウンロードしてくれて親切。

$ docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.
~略~

Docker Composeもちゃんとある。

$ docker compose version
Docker Compose version v2.16.0

これでDockerの準備ができました。
次はコンテナを使ってMySQLとかnginxとかを構築していきます。