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ファイルが存在してました〜