docker&nginxでHelloWorld

Dockerのnginxイメージを使用したHelloWorldを行った時のメモ。

前提

mac
・ターミナル上でdockerコマンドを打てる状態にしてある(command not foundにはならない状態)
 
 

1. nginxイメージ(最新版)のダウンロード

$ docker pull nginx:latest でダウンロード。
$ docker images を実行して、

$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              5a3221f0137b        8 weeks ago         126MB

となってnginxの行が存在していれば、きちんとnginxがダウンロードできていることがわかる。
 
 

2. HelloWorld用htmlファイルの用意

その人次第ですが、僕は/Users/【ユーザ名】/Docker/nginx_homeというディレクトリ配下にHelloWorld用のhtmlファイルを置こうと思ったので、その処理を行います。
$ cd /Users/【ユーザ名】/Docker に移動
$ mkdir nginx_home でnginx_homeディレクトリ(フォルダ)を作成
$ cd nginx_home でnginx_homeディレクトリ(フォルダ)に移動
$ echo "Hello World!" > index.html でHelloWorld用Htmlファイルを作成(ファイルの中身はHello World!)
 
 

3. nginxイメージの起動

$ docker run -d -p 8080:80 -v /Users/【ユーザ名】/Docker/nginx_home:/usr/share/nginx/html nginx で、nginxを起動。
GoogleChromeなどのブラウザを開き、URLバーにhttp://localhost:8080/ を入力してエンターを押すと、画面に 「Hello World!」という文言が表示されます。
/usr/share/nginx/htmlというディレクトリは、nginxのデフォルトの公開ディレクトリだそうです。
 
 

4. nginxのコンテナ内に入ってシェルを操作する

$docker ps コマンドを実行して、コンテナ名を確認する。

$ docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
880cc21ba274        nginx               "nginx -g 'daemon of…"   21 minutes ago      Up 21 minutes       0.0.0.0:8080->80/tcp   dazzling_shtern

上記のdazzling_shtern がコンテナ名。
 
 
$ docker exec -it dazzling_shtern bash を実行すると、コンテナ内に切り替えられる。
せっかくなので、HelloWorld用のhtmlファイルでものぞいてみる。

# cd usr/share/nginx/html/ でhtmlファイルを置いているディレクトリに移動。 ($が#に変わっただけなので、実際にコマンドを打つときは$同様 cd 以降を打てば良いです)
 
 
さて、# cat index.html で中身を見てみると・・

# cat index.html 
Hello World!

ということで、ちゃんとhtmlファイルが存在してました〜

 
 

参考サイト

weblabo.oscasierra.net

qiita.com

qiita.com