2020.04.27
Dockerでnginxサーバを立ち上げHTMLをブラウザ上に表示させてみた。
Web界隈ではDockerはできて当たり前という噂を聞きました。。市場も急速に上がっています。身につけておいて損はないスキルと思い、手を出してみました。
Dockerの詳しい概要はネットにいくらでもあるので本記事では省きます。
一言で言うと軽量な仮想環境で簡単に共有できる優れモノだそうです。
これからの環境構築ではデファクトスタンダードになりつつある(もうなってる?)技術とのこと。
前提
Docker Hubアカウント作成
OS: Windows10 Home
Docker ToolBoxをインストール前提で進めます。インストールが済んでいない方は下記URLから。
https://qiita.com/idani/items/fb7681d79eeb48c05144
nginxコンテナをたちあげてみる
下記コマンドでコンテナを立ち上げてみます。 ※Docker Hub参照
$ docker run --name some-nginx -d -p 8080:80 nginx
上記コマンドでnginxコンテナを作成します。
run... docker runコマンドはpull,create,startを一括で実行するコマンドです。
--name<名前>… 上記コマンドに沿って説明すると起動したコンテナに名前(some-nginx)を付けるということです。
-d… コンテナの実行をバックグラウンドで行うオプション
-p… ポート番号の設定で、ローカルのポート番号:コンテナ側のポート番号を設定します。
上記コマンド実行後、ブラウザから確認。nginxのデフォルトページが表示されていればOK。
URLはhttp://[ IPアドレス ]:8080で開きます。
ホスト側のポート番号は$ docker-machine ip default で確認できます。
デフォルトページを確認できたら、一応 $ docker stop "コンテナ名" で停止させましょう。(停止させないとconflictが発生しました)
マウントポイントとなるディレクトリを作成
PC上の任意の場所にhello.htmlファイル(表示させたいファイル)を置くディレクトリを作成してみます。
自分は/c/Users/hogehoge/直下にディレクトリを作成しました。
$ mkdir docker-test
$ mkdir html
$ vi test.html
test.html
<!DOCTYPE html>
<html>
<meta http-equiv="content-type" charset="utf-8">
<body>
<h1>インド行きたい</h1>
<p>カレー食いたい</p>
</body>
</html>
ディレクトリを作成し終わったら、runコマンドで起動させてみます。コマンドの詳細は詳しく書いていきます。
※下記コマンドを実行する前に、カレントディレクトリが先ほど作成したHTMLファイルの場所であることを確認してください。
$ docker run --name test-nginx -v /c/Users/hogehoge/docker-test/html:/usr/share/nginx/html:ro -d -p 8080:80 nginx
-v… ホストマシン上のディレクトリをコンテナにマウント。マウント対象のディレクトリは絶対パスによって参照されます。
-v [ホスト側の対象ディレクトリの絶対パス]:[コンテナの絶対パス]:[オプション] といった感じでパスを指定してあげます。
ro… read onlyのことで読み取り専用という意味です。
コマンドを実行後、ブラウザを確認するとHTMLが反映されていると思います。
所感
Dockerを軽く触ってみましたが、ローカルを汚さず色々環境を試せるのは便利だなーと初学者ながら思いました。まだ触り部分しか触れてないので、Dockerの神髄はまだ体験できていません。次はRailsの環境構築をしてみようと思います。