Vagrantで作成したVM上のDockerでnginxサーバーを稼働しローカルからアクセスできるようにします。
#環境
MacOS 10.12.6 (Sierra)
Vagrant 1.9.7
CentOS 7.3(VM)
Docker 17.06.0-ce
#下準備
VagrantでVMを作成しその上でDockerを利用できる状態であること。
してない場合は下記参照下さい。
VagrantでVM起動に自動でDockerをインストールする
#nginxイメージの取得
イメージはDocker Hub内のOfficialのnginxイメージを使用します。
Official build of Nginx.
#vmに入る
vagrant ssh
#nginxのdockerイメージを取得する
docker pull nginx
#バージョンを指定したい場合はタグで指定する※ない場合は最新(latest)が指定される
# docker pull nginx:1.13.33
#イメージが取得できたか確認
docker images
#nginxのイメージが表示される
#nginxの起動確認
#起動
docker run -d --name nginx_test -p 8080:80 nginx
# nginx_test <- 名前付け
# -d <-- バックグラウンドで実行
# -p 8080:80 <- ホスト(VM)の8080番ポートをコンテナの80番ポートにマッピングする
# nginx <- 使用するイメージ名
#コンテナが稼働しているか確認
docker ps -a
#nginxがupになっている
#表示確認
curl localhost:8080
#nginxのwelcomeページが取得される
#Vagrantホスト(今回はMac)からアクセスする
##VMにアクセスするためのIPを設定する
#ホスト側でVagrantfileを編集
vi Vagrantfile
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
---略----
#config.vm.network "private_network", ip: "192.168.33.10"
↓上記の行をコメントアウトを外し任意のIPを設定
config.vm.network "private_network", ip: "192.168.33.10"
---略----
# SHELL
end
#vagrant再起動
vagrant reload
#VMに入り再度nginxを起動する
vagrant ssh
#起動しているコンテナを確認
docker ps -a
#nginxのステタースがExitedになっている
#再開する
docker start nginx
#再開確認
docker ps -a
#nginxのステタースがupになっている
#アクセスが来るかログを監視
docker logs -f nginx
##ホスト(Mac)側からの表示確認
ブラウザで
http://192.168.33.10:8080/
#IPは設定したもの
にアクセスしてnginxのwelcomeページが表示され
dockerのログにアクセスログが出ることを確認する
#自動でnginxをインストールし起動するようにする
上記手順では手動でイメージのインストール、起動を行いましたが
Vagrantファイルに記述することでvagrant up時に自動で行うように設定します。
vi Vagrantfile
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
---略----
#以下の記述を追加
config.vm.provision "docker" do |d| #dockerをインストール・起動する
d.run "nginx", image: "nginx", args: "-p 8080:80" #nginxを"-p 8080:80"を引数にrunする(自動でnginxイメージを取得)
end
---略----
# SHELL
end
次はコンテンツ編集をローカルでできるようにしたいと思います。
Vagrant-docker-nginx環境でhtmlをローカルで編集できるようにする