рдЙрдкрдХрд░рдг рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
рдбрд╛рдХ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗрд╡рд╛рд▓рд╛ рдордЬрд╝рджреВрд░
рдбреЙрдХрдЯрд░ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рд╣рд▓реНрдХреЗ рд╣рд▓реНрдХреЗ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмрд┐рд▓реНрдХреБрд▓ рд╕рдВрд╕рд╛рдзрди-рдорд╛рдВрдЧ, рдиреНрдпреВрдирддрдо рдУрд╡рд░рд╣реЗрдбред
рдПрдХ рдмрд╛рд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд░реЗрдбрд┐рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рдпрджрд┐ рд╣рдореЗрдВ рдПрдХ рд╣реА рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХрдИ рд░реЗрдбрд┐рд╕ рд╕рд░реНрд╡рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ / etc / redis рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ /etc/init.d рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЖрд╕рд╛рди рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред
рдбреЙрдХрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
docker run -d --name test-redis-server dockerfile/redis
рдпрд╣ рдХрдорд╛рдВрдб Redis рдХрдВрдЯреЗрдирд░ рдХреЛ рдореБрдЦреНрдп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (
index.docker.io ) рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдЧрд╛, рдЗрд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓рд╛рдПрдЧрд╛, рдФрд░ рдирдП рдмрдирд╛рдП рдЧрдП рдХрдВрдЯреЗрдирд░ рдХреЛ рдЯреЗрд╕реНрдЯ-рд░реЗрдбрд┐рд╕-рд╕рд░реНрд╡рд░ рдирд╛рдо рджреЗрдЧрд╛ред
рдпрд╣ рдХрдВрдЯреЗрдирд░ рддрдм рдХрдорд╛рдВрдб рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
docker start test-redis-server
SkyDNS
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдбреЙрдХ рдбреЗрд╡рд▓рдкрд░ рдиреЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╕рдордп --link рдЯреВрд▓ рдкреЗрд╢ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ ENV рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Redis, Postgresql, Elasticsearch, рдЖрджрд┐ рдХреЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдВрдЯреЗрдирд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛ред
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдИрдПрдирд╡реА рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдФрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд░реНрддреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - -рд▓рд┐рдВрдХ рдкреИрд░рд╛рдореАрдЯрд░ред
рдЗрд╕реЗ рд╕реЗрд╡рд╛ рдбрд┐рд╕реНрдХрд╡рд░реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ (рдЖрдк
рдУрдкрди-рд╕реЛрд░реНрд╕ рд╕рд░реНрд╡рд┐рд╕ рдбрд┐рд╕реНрдХрд╡рд░реА рд▓реЗрдЦ рдореЗрдВ рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдРрд╕рд╛ рд╣реА рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ SkyDNSред рдЧреЛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕реНрдерд╛рдиреАрдп DNS рдФрд░ DNS рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ (рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд▓рдЧрднрдЧ 6MB рдореЗрдореЛрд░реА рддрдХ, рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ Go рдмреЗрд╣рдж рдХреБрд╢рд▓ рд╣реИред рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдХрдИ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рд╣реИрдВ, рдЕрдзрд┐рдХрддрдо рдореЗрдореЛрд░реА рдЦрдкрдд 50 рдПрдХ рд╕рд╛рде рд╕рд░рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рдеред рд▓рдЧрднрдЧ 20 рдПрдордмреА)ред
SkyDNS рдЖрдкрдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреАрдЖрдИ (рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ:
SkyDNS ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ DNS рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ SRV, A рдпрд╛ AAAA рд░рд┐рдХреЙрд░реНрдб рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдпрдорд┐рдд рдкреНрд░рд╢реНрди рдмрдирд╛рддреЗ рд╣реИрдВред
рдпрджрд┐ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ SkyDNS Google рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреАрдПрдирдПрд╕ рд╕рд░реНрд╡рд░ (8.8.8.8/8.8.4.4) рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдЧрд╛ред
SkyDNS рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рджрд┐рд▓рдЪрд╕реНрдк рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
<uuid>.<host>.<region>.<version>.<service>.<environment>.skydns.local
рдпрджрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг = рдЙрддреНрдкрд╛рджрди, рдФрд░ рд╕реЗрд╡рд╛ = рд░реЗрдбрд┐рд╕, рддреЛ рдЖрдк redis.production.skydns.local рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд░рд┐рдХреЙрд░реНрдб рд▓реМрдЯрд╛рдПрдЧрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдП рд░рд┐рдХреЙрд░реНрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ)ред
Skydock
рд╕реНрдХрд╛рдИрдбреЙрдХ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ рдЬреЛ рдбреЛрдХрд░ рдФрд░ рд╕реНрдХрд╛рдИрдбрдПрдирдПрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред
рд╕реНрдХрд╛рдИрдбреЙрдХ рд╕реНрдХрд╛рдИрдбрдПрдирдПрд╕ рдбреЛрдореЗрди рд╕реНрдХреАрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ:
<name>.<container-name>.<environment>.skydns.local
рдХрдВрдЯреЗрдирд░-рдирд╛рдо рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдмрд┐рдирд╛ рдбреЙрдХрд░ рдЫрд╡рд┐ рдХрд╛ рдирд╛рдо рд╣реИ (рдЬреИрд╕реЗ рдХреНрд░реЙрд╕реНрдмрд┐рдорд╛рдЗрдХрд▓ / рд░реЗрдбрд┐рд╕ => рд░реЗрдбрд┐рд╕ рдпрд╛ рдЯреЗрд╕реНрдЯ / рдХреВрд▓-рдПрдкреА => рдХреВрд▓-рдПрдкреА)ред
рдирд╛рдо рдЙрд╕ рдХрдВрдЯреЗрдирд░ рдХрд╛
рдирд╛рдо рд╣реИ рдЬрд┐рд╕реЗ --name рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред
рд╕реНрдХрд╛рдИрдбреЙрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдХрд╛рдИрдбрдПрдирдПрд╕ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдбреЙрдХрд░ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЖрдИрдкреА рдкрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдо рдХрдВрдЯреЗрдирд░ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
docker run -d --name redis-test-app dockerfile/redis
рд╣рдо рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ (рдмрд╛рдж рдореЗрдВ рдпрд╣ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рд╣рдо 172.17.42.1 рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреНрдпреЛрдВ рдХрд░рддреЗ рд╣реИрдВ) рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдП рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЖрдИрдкреА рдкрддрд╛ рдЬрд┐рд╕рдореЗрдВ рд░реЗрдбрд┐рд╕ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
dig @172.17.42.1 redis-test-app.redis.dev.skydns.local dev.skydns.local. 27 IN A 172.17.0.3
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реЗрдбрд┐рд╕ рдкреЛрд░реНрдЯ 6379 рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЫрджреНрдо рднрд╛рд╖рд╛ рдореЗрдВ):
redisConn = redis.Connect("redis-test-app.redis.dev.skydns.local:6379")
рд╕реНрдерд╛рдкрдирд╛
рд╣рдо рдбреЙрдХрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрд╣рдореЗрдВ 2 рдХрдВрдЯреЗрдирд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдПрдХ рд╕реНрдХрд╛рдИрдбрдПрдирдПрд╕ рдХреЗ рд╕рд╛рде, рджреВрд╕рд░рд╛ рд╕реНрдХрд╛рдИрдбреЙрдХ рдХреЗ рд╕рд╛рдеред рд╕реНрдХрд╛рдИрдбреЙрдХ рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдВ SkyDNS рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ -p 172.17.42.1:8080:8080 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ - рдпрд╣ рдЖрдкрдХреЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдЕрдкрдиреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ SkyDNS рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
docker pull crosbymichael/skydns docker run -d -p 172.17.42.1:53:53/udp -p 172.17.42.1:8080:8080 --name skydns crosbymichael/skydns -nameserver 8.8.8.8:53 -domain skydns.local
IP 172.17.42.1 docker0 рдкреБрд▓ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдбреЙрдХрдЯрд░ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рд╣рдордиреЗ skydns.local рдбреЛрдореЗрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдЕрдкрдиреА рдкрд╕рдВрдж рдХрд╛ рдХреЛрдИ рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: docker, super.localред skydns.local, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХ рдпрд╣ рд╕реНрдХрд╛рдИрдбрдПрдирдПрд╕ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдЧрд▓рд╛, рд╕реНрдХрд╛рдИрдбреЙрдХ рд▓реЙрдиреНрдЪ:
docker pull crosbymichael/skydock docker run -d -v /var/run/docker.sock:/docker.sock --name skydock -link skydns:skydns crosbymichael/skydock -ttl 30 -environment dev -s /docker.sock -domain skydns.local
рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдЯреАрдЯреАрдПрд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрджрд┐ рдпрд╣ рдЫреЛрдЯрд╛ рд╣реИ - рдЕрдзрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рд╡рд╛рддрд╛рд╡рд░рдг, рддреЛ рдЖрдк рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рддреЗрдЬрд╝реА рд╕реЗ рдЕрдзрд┐рдХ рдмрджрд▓рд╛рд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЕрдзрд┐рдХ - рдХрдо рдЧрддрд┐рд╢реАрд▓, рдЕрдзрд┐рдХ рдХреИрд╢реНрдб рд╡рд╛рддрд╛рд╡рд░рдг) рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг - рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдХрд┐рд╕реА рднреА рд░реЗрдЦрд╛ (рджреЗрд╡, рд╡рд┐рдХрд╛рд╕, рдЙрддреНрдкрд╛рджрди, рдЪрд░рдг, рдХреНрдпреВрдП) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред )ред
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛, рддреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред
рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдЖрдкрдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдХрдВрдЯреЗрдирд░ рдХреЛ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкреНрд░рд╛рдердорд┐рдХ DNS рд╕рд░реНрд╡рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
docker run -d --dns 172.17.42.1 test/cool-api
рдХреВрд▓-рдПрдкреА рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рдХрдВрдЯреЗрдирд░ рд╕реНрдерд╛рдиреАрдп DNS рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛:
cool-api.dev.skydns.local - рдпрд╣ рдХреВрд▓-рдПрдкреАрдЖрдИ рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдЧрд╛ред рд╣рдо рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ nginx рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред
рдпрджрд┐ рдЖрдк рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп --name api1 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣
api1.cool-api.dev.skydns.local рджреНрд╡рд╛рд░рд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ - api1 рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл 1 рдХрдВрдЯреЗрдирд░ред
рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░, рдЖрдк рдЕрдм рдбреЛрдореЗрди рдХреЛ рд╕реАрдзреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдерд╛рдиреАрдп DNS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛:
redis.dev.skydns.local - Redis рдЪрд▓ рд░рд╣реЗ рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдХреЗрд╡рд▓ 1 рдкрддрд╛ рдЪреБрдирд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рд╕реЗ Redis рдХреНрд▓рд╛рдЗрдВрдЯ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧрд╛ред
nginx
рд╕реНрдерд╛рдиреАрдп DNS рдХреЗ рдЗрд╕ рдЬрд╛рджреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рд▓реЛрдб рд╕рдВрддреБрд▓рди - рд╡реЗрдм рд╕рд░реНрд╡рд░ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди
- рдорд╛рдирджрдВрдбреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рд░рд▓ рдХреНрд╡реЗрд░реА рд░реВрдЯрд┐рдВрдЧред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЫрд╡рд┐ рдкрд░реАрдХреНрд╖рдг / рдХреВрд▓ -рдПрдкреА- v1 рдмрдирд╛рддреЗ рд╣реБрдП - рд╣рдо рдПрдкреАрдЖрдИ v1 рдХреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ ( рдХреВрд▓-рдПрдкреАрдЖрдИ-v1.dev.skydns.local ) рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХреВрд▓-рдПрдкреАрдЖрдИ.рджреЗрд╡ . skydns.local рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдВрддреБрд▓рди рдХреЗ рд╕рд╛рде
- рдордХреНрдЦреА рдкрд░ рдЕрдкрдбреЗрдЯ рдХреЛрдб - рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП
рдирд┐рдореНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ nginx рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
server { listen 80; server_name super-cool-domain.com;
рд╣рдо рдХреЗрд╡рд▓ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ nginx рд╕реНрдерд╛рдиреАрдп DNS рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рдХрд╣рд╛рдВ рдЬрд╛рдирд╛ рд╣реИ - $ dns рдЪрд░ рдФрд░ рдЖрдкрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдкреБрд░рд╛рдирд╛ рдкреНрд░реЙрдХреНрд╕реА_рдкрд╛рд╕ рдХрд░реЗрдВред
рдЕрдм, рдПрдХ рдирдпрд╛ рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рд╕реНрдХрд╛рдИрдбреЙрдХ рдЗрд╕реЗ SkyDNS рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдЧрд╛, nginx рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░реЗрдЧрд╛ред рдЬрдм рдХрдВрдЯреЗрдирд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдХрд╛рдИрдбреЙрдХ рд╕реНрдХрд╛рдИрдбрдПрдирдПрд╕ рд╕реЗ рдЕрдкрдирд╛ рдкрддрд╛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред
рдЗрд╕ рддрд░рд╣ рд╕реЗ 2-3 рдХрдВрдЯреЗрдирд░ рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ, рд╣рдо рдЙрдирдХреЗ рдмреАрдЪ рд▓реЛрдб рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЪрд▓реЛ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдирдЧреНрдиреЗрдХреНрд╕ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдкреБрд░рд╛рдиреЗ рдХреЗ рдХрд╛рдо рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ - рдЬрд┐рд╕рд╕реЗ рдлреНрд▓рд╛рдИ рдкрд░ рдЕрдкрдбреЗрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рд╕рдм рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдХреЛрдб рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
рдирд┐рд╖реНрдХрд░реНрд╖
рд╕реНрдХрд╛рдИрдбреЙрдХ рдХреЗ рд▓реЗрдЦрдХ рд╡рд┐рдЪрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдлрд┐рд▓рд╣рд╛рд▓, рдЗрд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реНрдХрд╛рдИрдбрдПрдирдПрд╕ рдЦреБрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓реЗрдЦ рднреА docker repositories рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдирд┐рдЬреА рднрдВрдбрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рд▓рдЧрднрдЧ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИ, рдбреЙрдХрд░ рдФрд░ рд╕реНрдХрд╛рдИрдбрдПрдирдПрд╕ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдХреБрд╢рд▓ рдФрд░ рддреЗрдЬрд╝ рдЧреЛ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдХреБрдЫ рдЬрдЯрд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдПрдХ рдмрд╣реБрдд рд╣реА рд▓рдЪреАрд▓рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк рдХреЗ рдмрд╛рдж рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред