🗂
VPS(Rocky Linux 9.3)でnginxをDockerコンテナで起動する方法
VPS で環境構築中です。
今回は、Docker で nginx を動かします。
とりあえず起動
とりあえず、nginx を起動するだけなら、下記でできます。
docker run --name mynginx1 -p 80:80 -d nginx
docker ps で起動していることがわかります。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2bce0957a7db nginx "/docker-entrypoint.…" 2 minutes ago Up 40 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp mynginx1
止めるのは docker stop です。
$ docker stop mynginx1
mynginx1
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2bce0957a7db nginx "/docker-entrypoint.…" 2 minutes ago Exited (0) 4 seconds ago mynginx1
実行するとイメージをダウンロードして、コンテナが起動します。
VPS の 80 ポートが開いていると http で VPS の IP アドレスにアクセスするとサンプル画面が表示されます。
Docker Compose
次に Docker Compose で起動します。
設定ファイルとコンテンツファイルはホスト側で用意します。
ファイル
ディレクトリ構成は以下の通り。
.
├── conf
│ └── default.conf
├── docker
│ └── docker-compose.yaml
└── html
└── index.html
ファイルの中は以下の通りです。
default.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
docker-compose.yaml
version: "3"
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "80:80"
volumes:
# NGINXのコンフィグファイルをホストOSから、ゲストOSに連結する
- ../conf/default.conf:/etc/nginx/conf.d/default.conf
# NGINXのWebアプリ(index.html等)をホストOSから、ゲストOSに連結する
- ../html:/usr/share/nginx/html
index.html
<!DOCTYPE html>
<html>
<body>
Sample Page
</body>
起動
docker ディレクトリで以下のコマンドを実行するとコンテナが起動して、nginx も起動します。
VPS の 80 ポートが開いていると http で VPS の IP アドレスにアクセスすると index.html が表示されます。
docker-compose up -d
停止
docker ディレクトリで以下のコマンドを実行すると、コンテナが終了します。
docker-compose down
参考
Discussion