Help us understand the problem. What is going on with this article?

Windows10にVMwareで仮想サーバを構築し、Dockerを使ってみる

概要

Dockerを使用したときの備忘録も兼ねて、手順を残しておきたいと思います。

仮想環境:VMware Workstation 14 Player
OS:CentOS8

VMware Workstationインストール

インストール手順について記載された記事が多数あるため、
私のほうでは、記載はしません。

以下手順を参考にしてみてください。
Windows10にVMware Workstation Playerをインストール

CentOS8環境構築

インストール手順について記載された記事が多数あるため、
私のほうでは、記載はしません。

以下手順を参考にしてみてください。
CentOS8をVMwareWorkstationにインストール

Dockerインストール

今回以下の記事を参考にさせていただきました。
Docker入門

Dockerインストール後から記載していきます。

Dockerfile作成

  • Tomcat用
/root/tomcat配下
#Tomcatファイル格納ディレクトリ・ログ用ディレクトリ作成
cd /root/tomcat
mkdir files
mkdir logs
ls -l
→files・logsディレクトリが作成されていること

#Tomcatモジュールダウンロード
cd files
wget http://ftp.jaist.ac.jp/pub/apache/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz   

#ダウンロード確認
ls -ltr
→ダウンロードしたファイルが存在すること

#Dokcerfile作成
vim Dockerfile

#以下を追記
FROM centos:8
RUN yum install -y java
ADD files/apache-tomcat-9.0.37.tar.gz /opt/
CMD [ "/opt/apache-tomcat-9.0.37/bin/catalina.sh", "run" ]

  • Nginx用
/root/nginx配下
#設定ファイル格納ディレクトリ・ログ用ディレクトリ作成
cd /root/nginx
mkdir files
mkdir logs
ls -l
→files・logsディレクトリが作成されていること

#Nginx設定ファイル作成
#default.confは、「location /tomcat/」の記載以外は、コンテナ作成時の初期ファイルです。
#今回は事前に取得しております。
cd files
vim default.conf

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /tomcat/ {
        proxy_pass    http://tomcat-1:8080/;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny  all;
    }
}

#Dokcerfile作成
vim Dockerfile

FROM nginx:latest
RUN mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf_org
COPY ./files/default.conf /etc/nginx/conf.d/

イメージ作成

Dockerfileをもとに、イメージを作成する

コンソール
#Tomcatイメージ作成
cd /root/tomcat
docker build -t tomcat:1 .

#Nginxイメージ作成
cd /root/nginx
docker build -t nginx-tomcat:1 .

Dockerネットワーク作成

コンテナ間の通信を可能にするために、作成する

コンソール
docker network create tomcat-network

コンテナ作成

作成したイメージをもとに、コンテナを作成

コンソール
#Tomcatコンテナ
docker run --name tomcat-1 --network tomcat-network -v /root/tomcat/logs:/share/logs -d tomcat:1

#Nginxコンテナ
docker run --name nginx-tomcat-1 --network tomcat-network -p 10080:80 -v /root/nginx/logs:/share/logs -d nginx-tomcat:1

アクセス確認

VMにログインして、Firefoxを開き、以下にアクセス
http://localhost:10080/
→Nginxのページが開くこと

http://localhost:10080/tomcat/
→Tomcat画面が表示されること

まとめ

Dockerを使用することで、環境構築がより簡素化できるため、
積極的に活用していきたい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away