Wordpress Lab

VPSの学習記録 2

今回の目的

macOSにて構築したDockerコンテナをVPSにデプロイ

今回デプロイするのは静的htmlアプリ

前提

macOSでの、Dockerはインストール済み。

ローカルにDockerプロジェクトを作成

プロジェクトディレクトリと、公開htmlファイルの作成

mkdir my-static-site
cd my-static-site
mkdir html
echo '<!DOCTYPE html>...(中略)...</html>' > html/index.html

プロジェクトディレクトリ直下にdocker-compose.ymlを作成

version: '3'
services: 
  web:
    image: nginx:alpine
    #build: .
    ports:
     - "80:80"
    volumes:
     - ./html:/usr/share/nginx/html:ro

Dockerの起動

docker-compose up -d --build

Dockerの起動状況の確認

docker ps


CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                               NAMES
c61222e614e9   nginx:alpine   "/docker-entrypoint.…"   11 minutes ago   Up 11 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   my-static-site_web_1

Dockerの停止

docker-compose down

DockerのVPSへのデプロイ

VPSにDockerをインストール

# Docker本体のインストール
sudo apt update
sudo apt install -y docker.io

# Docker Composeのインストール
sudo apt install -y docker-compose

Dockerの起動、自動起動設定

sudo systemctl start docker
sudo systemctl enable docker

SSHでアップロード

scp -i ~/.ssh/ssh-key.pem -r my-static-site/ username@000.000.000.000:/home/username/

VPS側のDockerを起動

cd ~/my-static-site
sudo docker-compose up -d

しかし、ブラウザで確認してもDockerコンテナ内のhtmlは表示されず。

Apacheの停止

sudo systemctl stop apache2
sudo systemctl disable apache2
sudo docker-compose up -d
sudo docker ps

CONTAINER ID   IMAGE          PORTS                NAMES
abcd1234       nginx:alpine   0.0.0.0:80->80/tcp   my-static-site_web_1

・再度ブラウザで確認するとコンテナで公開したhtmlページが表示。

← 一覧に戻る