Docker Composeの構築

Docker Composeを使ってWebサーバーの環境を構築しましょう

前回は docker run コマンドで nginx コンテナを起動しました
今回は Docker Compose を利用して同じ環境を構築します
Docker Compose を利用すると、コンテナの設定を docker-compose.yml ファイルに記録できるため、後から同じ環境を簡単に再現できます
今後 WordPress やデータベースを利用する際にも役立つため、基本的な使い方を確認しましょう

前回の「Dockerのインストール」からの続きです

まずは新しくCompose用のディレクトリを作成します

mkdir ~/compose-test
cd ~/compose-test

次にdocker-compose.ymlを作成します

nano docker-compose.yml

内容は次の通り

services:
  web:
    image: nginx
    # → nginxイメージを使用
    ports:
      - "8082:80"
    # → ホスト8082番をコンテナ80番へ接続
    volumes:
      - ~/myweb:/usr/share/nginx/html
    # → ~/myweb をWeb公開ディレクトリへ接続

ポートをこれまでの 8080 や 8081 と重ならないように 8082 に設定しました

htmlファイルディレクトリは前回「Dockerのインストール」で作成した ~/myweb を指定して、既存の html ファイル(index.html)をそのまま流用しました

Compose コマンドを使ってコンテナを立ち上げます

docker compose up -d

ブラウザでアクセス確認しましょう

http://サーバーIP:8082

これが見えたら成功です

My First Server

My First Server

Hello from Docker!

自分のサーバーが動いています

後片付けをしましょう

docker compose down

次の日も動かしてみましょう

cd ~/compose-test
docker compose up -d

終わったら後片付けは前日と一緒です

今回は nginx コンテナを Docker Compose で起動しました
docker run と比較すると設定内容をファイルとして保存できるため、
同じ環境を何度でも再現できます
今後は Docker Compose を利用して、複数コンテナを利用した環境構築や、
PHP やデータベースを含む環境の構築にも挑戦したいと思います

Docker Composeの便利なところは、
設定内容がdocker-compose.ymlにまとめて保存されることです
数か月後に環境を見直したときも、設定ファイルを見るだけで構成を思い出しやすくなります
ぜひ試して下さい

お疲れ様でした

Docker Composeの構築

Nextcloud

Nextcloud をローカルサーバーに入れて試しています

パワー不足のマシンではちょいとキツイですが、お試しなので良しとしています

実用で使うならパワーのあるマシンで使った方が良さそうです

あと、レンタルサーバーのアプリでも動かしてみましたが、これもキツかったです

オンラインで使うなら、素直に Google Workspace などにした方が良いと思うのですが

ローカルで Google Workspace 的なものを使いたいなら、Nextcloudもアリだと思います

Nextcloud

表計算で出納帳

小規模な会計では現金などの出納帳はExcelやスプレッドシートで十分だと思います

何万件もの取引がある場合は専用の会計アプリの出番だと思いますが

個人的には年間1,000件程度までであれば、表計算ソフトでも十分管理できると思います

こんな感じで作ります

ABCDEF
1日付科目摘要入金出金残高
2
3
4

残高の列を前回の「表計算で残高計算」を参考に数式を設定すると自動で残高計算してくれます
F2 -> =D2-E2
F3 -> =F2+D3-E3
F4から下はF3をコピペ

もちろん
F2 -> =SUM(D$2:D2) – SUM(E$2:E2)
F3から下はF2をコピペ
でも良いのですが、会計帳簿を手書きしている人からすると前者の方が分かりやすいと思うのは自分だけでしょうか

あと、「テーブル機能」使うと楽になりますが、これはお好みでどうぞ

実務では会計ソフトを利用していますが、自治会など比較的小規模な会計であれば、Excelやスプレッドシートでも十分実用になると感じています

表計算で出納帳

表計算で残高計算

ExcelやGoogleスプレッドシートで残高を計算する場合、
私は今でも次の方法を使うことが多いです

最初の行だけ 収入 – 支出 例:( =C2-D2 )

基本は 前残 + 収入 – 支出 例:( =E3+C2-D2 )

前の残高に収入を加え、支出を引く方法です
会計帳簿を記入する手順そのものなので、個人的には最もしっくりきます

あとは残高の列の下の行に基本をコピペするだけ、
これで自動計算してくれます

また、最近になって累計計算で求める方法も知りました

=SUM(C$2:C2) – SUM(D$2:D2)

収入累計から支出累計を引いて残高を求める方法です
こちらは前行を参照しないため、少しプログラム的な考え方に感じます

昔のDOS版Lotus 1-2-3でも累積計算は可能だったようです
ただし当時はCPU性能やメモリ容量が限られていたため、
大量データでは計算負荷が気になる場合もあったと聞いています
しかし現在のパソコンでは、こうした計算も十分実用的な速度で処理できます

また、INDEXを使うと列の追加や行の挿入があっても参照範囲が壊れにくいです

=SUM(INDEX(C$2,1):C2)-SUM(INDEX(D$2,1):D2)

さらに調べていて驚いたのがExcelのテーブル機能です

私は最近までほとんど使ったことがなかったのですが、
実はかなり以前のバージョンから搭載されていた機能でした
テーブル化すると数式の自動入力や範囲の自動拡張などが利用できるため、
帳簿のように行が増えていく表との相性が良さそうです
テーブル機能でも考え方は累積計算と同じですが、
構造化参照を利用するため数式の書き方は少し変わります
これについては別の機会にしましょう

会計担当者の立場では今でも前残高方式が一番分かりやすいと感じていますが、
テーブル機能も含めて別の方法も試してみたいと思います

表計算で残高計算

Docker のインストール

Docker のインストールもよく忘れるのでメモ

Ubuntu ServerへDockerをインストールした際の記録です
最近はApache、PHP、MariaDBを個別にインストールするよりも、
Dockerコンテナを利用することが多くなりました
Dockerを利用すると環境構築が簡単に出来て、
不要になった環境も簡単に削除できます

事前準備
必要パッケージ

sudo apt update
sudo apt install -y ca-certificates curl gnupg

公式リポジトリ追加

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Dockerインストール

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

動作確認

sudo docker run hello-world

成功するとメッセージが表示されます
(英語で “Hello from Docker!” と出ればOK)

sudoなしで使う(重要)

sudo usermod -aG docker $USER

その後
一度ログアウト → 再ログイン

再ログイン後の確認

docker run hello-world

sudoなしで動けば成功です

次のステップ:Webサーバーを立てる
nginxコンテナ起動

docker run -d -p 8080:80 nginx

状態確認

docker ps

nginxが表示されればOK

ブラウザで確認
別PCから

http://サーバーIP:8080

nginxの画面が出れば成功

自分のページ表示
作業ディレクトリ作成

mkdir ~/myweb
cd ~/myweb

HTMLファイル作成

nano index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>My First Server</title>
</head>
<body>
<h1>Hello from Docker!</h1>
<p>自分のサーバーが動いています</p>
</body>
</html>

保存
Ctrl + O → Enter → Ctrl + X

nginxコンテナ起動

docker run -d -p 8081:80 -v ~/myweb:/usr/share/nginx/html nginx

ブラウザで確認すると、このように表示されます
別PCから

http://サーバーIP:8081

My First Server

My First Server

Hello from Docker!

自分のサーバーが動いています

nginxコンテナ停止
検証後は不要なコンテナを停止します

docker ps
でコンテナID確認して
docker stop コンテナID
これでコンテナは停止します

次はDocker Composeを使ってWebサーバー等の環境を構築しましょう

Docker のインストール

Ubuntuのインストール

Ubuntu Server 24.04 LTSのインストール

自宅検証用サーバーを構築した際のメモです
将来サーバーを再構築する際に手順を忘れないように記録しています
今回はUbuntu Server 24.04 LTSをインストールし、SSH接続できる状態まで設定します

parallelsの場合
CPU:4プロセッサ
メモリ:6G
ストレージ:100G
共有:オフ
ネットワークソース:デフォルトのアダプタ
macからLinuxを分離する

実機の場合
CPU・メモリ・ストレージ容量は使用する機器に応じて設定する
(使用するハードウェア構成に従って下さい)

それではインストールを始めます

languageはEnglish

キーボードレイアウトはそれぞれの機種に合わせて

Choose the base for the installation は ubuntu server

IPアドレスは固定にした方が管理しやすい
サーバーへSSH接続する際や、Webサーバーを構築する際に接続先が変わらないためである

インストール時の固定アドレス設定手順
Network connections 画面で、設定するイーサネットポート(例: enp0s3)を選択し、Enterキー
Edit IPv4 を選択します
IPv4 Method を DHCP から Manual に変更します
Subnet: 192.168.xxx.0/24 (サブネットマスク含む)です
Address: 192.168.xxx.xxx (固定したいIP)です
Gateway: 192.168.xxx.1 (ルーターのアドレス)です
Name servers:利用するDNSサーバーを指定する (例:8.8.8.8, 1.1.1.1)
Save を選択します

Proxy address は 必要に応じて

しばらくデフォルトでいいです

Configure a guided storage layout,or create a custom one: は 
Use an entire disk
Set up this as an LVM group
デフォルトです

FILE SYSTEM SUMMARY は そのまま Done で

Confirm destructive action(ディスク書き換えるけど良い?)は Continueで

Profile configuration入力フィールドと手順
Your name: あなたの名前(例: admin)を入力します
Your server’s name: サーバーのホスト名(例: ubuntu-server)を入力します。ネットワーク上で識別される名前です
Pick a username: ログインに使用するユーザー名(例: user1)を入力します
Choose a password: パスワードを入力します
Confirm your password: 上記と同じパスワードを再入力して確認します

About ubuntu pro は skip for now

OpenSSHはインストールします
Install OpenSSH server にチェック

次は何もチェックせずに Done

インストール始まります

インストールが終了したら、クライアントPCからSSHログインします

ログインが成功したら
sudo apt update
sudo apt upgrade -y
sudo reboot を実行します

Ubuntuのインストール