🌉
nomadでdockerの -p 8080:80 を実現する設定
はじめに
いつもDockerで設定していたポートフォワード設定をNomadで同様に設定するにはどうしたらいいんだ?と思って調べたのでメモ。
Dockerではこうしてた
まずはDockerの-p
のおさらい。
-p IP:ホスト側ポート:コンテナ側ポート
https://docs.docker.jp/v1.11/engine/userguide/networking/default_network/binding.html
たとえば、nginxのDockerイメージは80番で待ち受けているので、外部から8080番でアクセスさせたい場合は以下の通り。
$ docker run --name some-nginx -d -p 8080:80 some-content-nginx
nomad ではこうする
同様のことをnomadで実現する場合はbridge-modeを使う。
network {
port "http" {
static = 8080
to = 80
}
}
全体HCLサンプル
job "web" {
datacenters = ["dc1"]
group "nginx" {
network {
port "http" {
static = 8080
to = 80
}
}
service {
name = "http"
port = "http"
provider = "nomad" // おまじない
}
task "nginx" {
driver = "docker"
config {
image = "nginx/nginx"
ports = ["http"]
}
}
}
}
Discussion