рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдБ

Docker рдореЗрдВ PostgreSQL: рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд░рдг-рджрд░-рдЪрд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

Docker рдореЗрдВ PostgreSQL рдЪрд▓рд╛рдиреЗ рдХреА рдЖрдкрдХреА рд╕рдВрдкреВрд░реНрдг рдЧрд╛рдЗрдбтАФрд╕реЗрдЯрдЕрдк рд╕реЗ рд▓реЗрдХрд░ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕реЛрдВ рддрдХтАФрддрд╛рдХрд┐ рдЖрдкрдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрд┐рдирд╛ рд╕рд┐рд░рджрд░реНрдж рдХреЗ рдирд┐рдЦрд░реЗред
┬╖ 15 рдорд┐ре░ рдкрдврд╝реЗрдВ

AI рдХреЗ рд╕рд╛рде рдЦреЛрдЬреЗрдВ

PostgreSQL рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рд╡реЗрд╢ рд╕реЗрдЯ рдХрд░рдирд╛ рдШрдВрдЯреЛрдВ рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдЯреНрд░рдмрд▓рд╢реВрдЯрд┐рдВрдЧ рдирд╣реАрдВ рдорд╛рдБрдЧрдирд╛ рдЪрд╛рд╣рд┐рдПтАФрдФрд░ Docker рдХреЗ рд╕рд╛рде, рдРрд╕рд╛ рд╣реЛрддрд╛ рднреА рдирд╣реАрдВ рд╣реИред

Docker рдЖрдкрдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдмреЗрдкрд░рд╡рд╛рд╣, рдХреБрдЫ рд╣реА рдорд┐рдирдЯреЛрдВ рдореЗрдВ PostgreSQL рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХрд╛ рд╕рд░рд▓ рддрд░реАрдХрд╛ рджреЗрддрд╛ рд╣реИред рдХреЗрд╡рд▓ рджреЛ-рддреАрди рдХрдорд╛рдВрдб рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЕрд▓рдЧ-рдерд▓рдЧ рдПрдХ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реЗ рдЬреБрдбрд╝реА рдЭрдВрдЭрдЯреЗрдВ рдирд╣реАрдВ рд╣реЛрддреАрдВред

Docker рдореЗрдВ PostgreSQL рдЖрдкрдХреЛ рдмрд┐рдирд╛ рд▓реЛрдХрд▓ рд╕реЗрдЯрдЕрдк рдЦрд░рд╛рдм рд╣реЛрдиреЗ рдХреЗ рдбрд░ рдХреЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрдЬрд╝рд╛рджреА рджреЗрддрд╛ рд╣реИред рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрдЬрд╝ рдмрдирд╛, рд╕рдВрд╢реЛрдзрд┐рдд рдпрд╛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, PostgreSQL рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдЬрд╝рди рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЬрд╝рд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рд╕рд╛рдлрд╝ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░реАрд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ Docker рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ PostgreSQL рдЪрд▓рд╛рдиреЗ рд╕реЗ рдЬреБрдбрд╝реА рд╣рд░ рдЬрд╝рд░реВрд░реА рдмрд╛рдд рдмрддрд╛рдКрдБрдЧрд╛ рддрд╛рдХрд┐ рдЖрдкрдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЕрдиреБрднрд╡ рд╕реБрдЧрдо рд░рд╣реЗред

>PostgreSQL рдХрд╛ рдЬрд╝реНрдпрд╛рджрд╛ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ? рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рдХреЛрд░реНрд╕ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред

Docker рдореЗрдВ PostgreSQL рдХреНрдпреЛрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ?

Docker рд╕реЗ рдкрд╣рд▓реЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗрдЯрдЕрдк рдХрд╛ рдорддрд▓рдм рдЕрдХреНрд╕рд░ рд▓рдВрдмреА рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЧрд╛рдЗрдбреНрд╕ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛, рд╕рд┐рд╕реНрдЯрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╕реБрд▓рдЭрд╛рдирд╛, рдФрд░ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЬрд╝ рдХреЛ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдореИрдиреЗрдЬ рдХрд░рдирд╛ рд╣реЛрддрд╛ рдерд╛ред Docker рдЗрд╕ рдкреИрд░реЗрдбрд╛рдЗрдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

>рдЖрдЦрд╝рд┐рд░ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдХреНрдпрд╛? рдЗрд╕рдХрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛, рдЖрдо рдЙрдкрдпреЛрдЧ-рдХреЗрд╕, рдФрд░ рд╕рдВрд╕рд╛рдзрди рдЬрд╛рдиреЗрдВред

Docker рдореЗрдВ PostgreSQL рдЪрд▓рд╛рдиреЗ рдХреЗ рдлрд╛рдпрджреЗ

Docker PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдЪрд▓рд╛рдиреЗ рдХрд╛ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рддрд░реАрдХрд╛ рджреЗрддрд╛ рд╣реИред рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рддрд░реАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд▓рд╛рдн рд╣реИрдВ:

  • рд╕рд░рд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдФрд░ рд╕реЗрдЯрдЕрдк: Docker рдХреЗ рд╕рд╛рде рдЖрдк рдПрдХ рд╣реА рдХрдорд╛рдВрдб рдореЗрдВ PostgreSQL рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдм рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░, рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЬрд╝, рдпрд╛ рдЬрдЯрд┐рд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╕реЗ рдирд╣реАрдВ рдЬреВрдЭрдирд╛ рдкрдбрд╝рддрд╛ред рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдордЭрджрд╛рд░реА рднрд░реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░реА-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдЖрддрд╛ рд╣реИ рдФрд░ рддреБрд░рдВрдд рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИред
  • рдЯреАрдореЛрдВ рдореЗрдВ рдПрдХрд╕рдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг: рдЖрдкрдХреА рдЯреАрдо рдореЗрдВ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдмреЗрдкрд░рд╡рд╛рд╣, рд╡рд╣реА PostgreSQL рд╕реЗрдЯрдЕрдк рд░рд╣рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдЯреАрдореЛрдВ рдореЗрдВ рдЖрдо тАЬрдореЗрд░реА рдорд╢реАрди рдкрд░ рддреЛ рдЪрд▓ рд░рд╣рд╛ рд╣реИтАЭ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛ рдЦрддреНрдо рд╣реЛрддреА рд╣реИред
  • рджреВрд╕рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рд╕реЗ рдЕрд▓рдЧрд╛рд╡: Docker рдХрдВрдЯреЗрдирд░ рдЕрд▓рдЧ-рдерд▓рдЧ рдЪрд▓рддреЗ рд╣реИрдВ, рдпрд╛рдиреА рдЖрдкрдХрд╛ PostgreSQL рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЖрдкрдХреА рдорд╢реАрди рдХреЗ рдЕрдиреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдореЗрдВ рджрдЦрд▓ рдирд╣реАрдВ рджреЗрддрд╛ред рдЖрдк рдмрд┐рдирд╛ рдЯрдХрд░рд╛рд╡ рдХреЗ PostgreSQL рдХреЗ рдХрдИ рд╡рд░реНрдЬрд╝рди рд╕рд╛рде рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдЯрд╛рдирд╛ рднреА рдЙрддрдирд╛ рд╣реА рдЖрд╕рд╛рди рд╣реИтАФрдмрд╕ рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реЛрдХреЗрдВ рдФрд░ рд╣рдЯрд╛ рджреЗрдВред
  • рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рд╡рд░реНрдЬрд╝рди рдирд┐рдпрдВрддреНрд░рдг: Docker рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдареАрдХ-рдареАрдХ PostgreSQL рд╡рд░реНрдЬрд╝рди рдмрддрд╛рдиреЗ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдЖрдк рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреНрд░реЛрдбрдХреНрд╢рди рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рд╕рдЯреАрдХ рдореЗрд▓ рдмреИрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдЧреНрд░реЗрдбреНрд╕ рдХреЛ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрд▓рдЧ рд╕реЗ рдЯреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • рд╕рдВрд╕рд╛рдзрди-рдХреБрд╢рд▓рддрд╛: Docker рдХрдВрдЯреЗрдирд░ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣рд▓реНрдХреЗ рд╣реЛрддреЗ рд╣реИрдВред рдпреЗ рдХрдо рд╕рдВрд╕рд╛рдзрди рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рднреА рд╕рдорд╛рди рдЕрд▓рдЧрд╛рд╡ рд▓рд╛рдн рджреЗрддреЗ рд╣реИрдВред рдпрд╛рдиреА рдЖрдк PostgreSQL рдХреЛ рдЕрдиреНрдп рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЦрд╛рд╕ рдЕрд╕рд░ рдбрд╛рд▓реЗред

Docker рдореЗрдВ PostgreSQL рдХрдм рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ

рдХрдВрдЯреЗрдирд░рд╛рдЗрдЬрд╝реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╡рд░реНрд╖реЛрдВ рддрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдВрдд рд╣реЛрдХрд░ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдБ рдХрд┐ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕рдХреЗ рдЕрдирдЧрд┐рдирдд рд▓рд╛рдн рд╣реИрдВред

рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХреБрдЫ рдХрд╛ рд╣реА рдЬрд╝рд┐рдХреНрд░ рдХрд░реВрдБрдЧрд╛:

  • рд▓реЛрдХрд▓ рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рд╡реЗрд╢: PostgreSQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП Docker рдмрд┐рдирд╛ рд▓реЛрдХрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрджрд▓реЗ рддреЗрдЬрд╝ рд╢реБрд░реБрдЖрдд рдХрд╛ рддрд░реАрдХрд╛ рджреЗрддрд╛ рд╣реИред рдЖрдк рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдареАрдХ рд╡рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд░реНрдЬрд╝рди рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд┐рд▓рд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд▓реЛрдХрд▓ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдбрд┐рдкреНрд▓реЙрдп рд╣реЛрдиреЗ рдкрд░ рднреА рд╕рд╣реА рдЪрд▓реЗред
  • рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░: рдпрджрд┐ рдЖрдк рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬрд╝ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ Docker рдЬрд╝рд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рд╣рд░ рд╕рд░реНрд╡рд┐рд╕ рдХреЛ рдЙрд╕рдХрд╛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рджреЗрдиреЗ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рд╕рд░реНрд╡рд┐рд╕реЛрдВ рдХреЗ рдмреАрдЪ рдмреЗрд╣рддрд░ рдЕрд▓рдЧрд╛рд╡ рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдЯреАрдореЗрдВ рдЕрдкрдиреА рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЬрд╝ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдореИрдиреЗрдЬ рдХрд░ рдкрд╛рддреА рд╣реИрдВред
  • CI/CD рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреНрд╕ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг: Docker рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП-рдирдП рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдмрдирд╛рдирд╛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред рд╣рд░ рдЯреЗрд╕реНрдЯ рд░рди рд╕рд╛рдлрд╝ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЯреЗрд╕реНрдЯ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдмрдврд╝рддреА рд╣реИред┬а
  • рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХрд╛ рд╡рд┐рдХрд╛рд╕: Docker рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рджреЗрддрд╛ рд╣реИред рдЖрдк рдкреНрд░реЛрдбрдХреНрд╢рди-рдЬреИрд╕реЗ рдбрд┐рд╕реНрдкреЛрдЬрд╝реЗрдмрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
  • Kubernetes рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯреНрд╕: рдпрджрд┐ рдЖрдк рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП Kubernetes рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Docker рдореЗрдВ PostgreSQL рдЪрд▓рд╛рдирд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИред рдЖрдкрдХрд╛ рд▓реЛрдХрд▓ рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рд╡реЗрд╢ рдкреНрд░реЛрдбрдХреНрд╢рди Kubernetes рд╕реЗрдЯрдЕрдк рд╕реЗ рдХрд╛рдлрд╝реА рдореЗрд▓ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡рд┐рдХрд╛рд╕-рд╕реЗ-рдкреНрд░реЛрдбрдХреНрд╢рди рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╕рд╣рдЬ рдмрдирддрд╛ рд╣реИред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, Docker рдореЗрдВ PostgreSQL рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ, рдкрд░ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдкреНрд░реЛрдбрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реНрдерд╛рдпрд┐рддреНрд╡, рдмреИрдХрдЕрдк, рдФрд░ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдЬреИрд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдЪрд╛рд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ рд╣реИрдВред

рдореИрдВ рдЗрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд░ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдЖрдЧреЗ рдХреЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реВрдБрдЧрд╛ред

Docker рдореЗрдВ PostgreSQL рд╕реЗрдЯ рдЕрдк рдХрд░рдирд╛

Docker рдореЗрдВ Postgres рдбреЗрдЯрд╛рдмреЗрд╕ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╕ Docker рдЗрдВрдЬрди рдХреА рдЬрд╝рд░реВрд░рдд рд╣реЛрдЧреАред

рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдкреНрд░реАрд░рд┐рдХреНрд╡рд┐рдЬрд╝рд┐рдЯреНрд╕ рдХрд╡рд░ рдХрд░рдиреЗ рдФрд░ Docker рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рддреНрдордХ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдЪрд▓рд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд▓реЗ рдЪрд▓реВрдБрдЧрд╛ред

рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ

Docker рдореЗрдВ PostgreSQL рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ Docker рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрджрд▓рддрд╛ рд╣реИред Windows рдФрд░ macOS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ Docker Desktop рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдореИрдиреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред рдЗрд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Docker рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред

Linux рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреА рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрд╢рди рдХреЗ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рд╕реЗ рд╕реАрдзреЗ Docker Engine рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Ubuntu рдкрд░:

sudo apt update
sudo apt install docker.io
sudo systemctl enable --now docker

Docker рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ рдХрд┐ рдЖрдк рдмреБрдирд┐рдпрд╛рджреА рдЯрд░реНрдорд┐рдирд▓ рдХрдорд╛рдВрдб рдФрд░ Docker рдХреА рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВтАФрдЬреИрд╕реЗ рдЗрдореЗрдЬ, рдХрдВрдЯреЗрдирд░, рдФрд░ рд╡реЙрд▓реНрдпреВрдотАФрд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВред DataCamp рдХреА рдпреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдВрдЧреА:

PostgreSQL Docker рдЗрдореЗрдЬ рдкреБрд▓ рдХрд░рдирд╛

PostgreSQL рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ Docker Hub рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ PostgreSQL Docker рдЗрдореЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреА рд╣реЛрдЧреАред рдпрд╣ рдЗрдореЗрдЬ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдХрд╛рдо рдХрд░рддреА рд╣реИред

рд▓реЗрдЯреЗрд╕реНрдЯ PostgreSQL рдЗрдореЗрдЬ рдкреБрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдирд╛ рдЯрд░реНрдорд┐рдирд▓ рдпрд╛ рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рдЦреЛрд▓реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдБ:

docker pull postgres

рдпрд╣ рдХрдорд╛рдВрдб PostgreSQL рдХрд╛ рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╡рд░реНрдЬрд╝рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдЬрд╝рди рдЪрд╛рд╣рд┐рдП, рддреЛ рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдмрддрд╛рдЗрдП:

docker pull postgres:17

Image 1 - Pulling the latest stable version of PostgreSQL database image

рдЫрд╡рд┐ 1 - PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдореЗрдЬ рдХреЗ рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╡рд░реНрдЬрд╝рди рдХреЛ рдкреБрд▓ рдХрд░рдирд╛

рдХреБрдЫ рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ PostgreSQL рдЗрдореЗрдЬ рдЯреИрдЧреНрд╕:

  • postgres:latest - рд╕рдмрд╕реЗ рд╣рд╛рд▓ рдХрд╛ рд╕реНрдерд┐рд░ PostgreSQL рд╡рд░реНрдЬрд╝рди
  • postgres:17 - PostgreSQL рд╡рд░реНрдЬрд╝рди 14.x (рд╡рд░реНрдЬрд╝рди 17 рдХрд╛ рдирд╡реАрдирддрдо рдкреИрдЪ)
  • postgres:17.4 - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдЬрд╝рди (рдпрд╣рд╛рдБ 17.4)ред
  • postgres:bookworm - Debian Bookworm Linux рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрд╢рди рдкрд░ рдмрдирд╛ PostgreSQLред

рдЖрдк рд╕рднреА рдЙрдкрд▓рдмреНрдз рдЯреИрдЧреНрд╕ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ PostgreSQL Docker Hub рдкреЗрдЬ рдкрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

Docker рдХрдВрдЯреЗрдирд░ рдореЗрдВ PostgreSQL рдЪрд▓рд╛рдирд╛

рдПрдХ рдмрд╛рд░ рдЖрдкрдХреЗ рдкрд╛рд╕ PostgreSQL рдЗрдореЗрдЬ рд╣реЛ, рддреЛ рдЖрдк рдПрдХ рд╣реА рдХрдорд╛рдВрдб рд╕реЗ рдХрдВрдЯреЗрдирд░ рдмрдирд╛ рдФрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

docker run --name postgres-db -e POSTGRES_PASSWORD=mypassword postgres

Image 2 - Starting a PostgreSQL container

рдЫрд╡рд┐ 2 - PostgreSQL рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рдирд╛

рдпрд╣ рдХрдорд╛рдВрдб postgres-db рдирд╛рдо рд╕реЗ рдирдпрд╛ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ PostgreSQL рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдмреБрдирд┐рдпрд╛рджреА рдХрдорд╛рдВрдб рдХреА рд╕реАрдорд╛рдПрдБ рд╣реИрдВред рдореИрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдБ:

docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mypassword \
  -e POSTGRES_USER=myuser \
  -e POSTGRES_DB=mydatabase \
  -p 5432:5432 \
  -v postgres-data:/var/lib/postgresql/data \
  -d postgres

Image 3 - Starting a PostgreSQL container with env variables in detached mode

рдЫрд╡рд┐ 3 - рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдбрд┐рдЯреИрдЪреНрдб рдореЛрдб рдореЗрдВ PostgreSQL рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рдирд╛

рдЖрдЗрдП рдЗрди рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ:

  • рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕:
    • POSTGRES_PASSWORD: PostgreSQL рд╕реБрдкрд░рдпреВрдЬрд╝рд░ рдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ (рдЖрд╡рд╢реНрдпрдХ)ред
    • POSTGRES_USER: рдЗрд╕ рдирд╛рдо рд╕реЗ рдирдпрд╛ рд╕реБрдкрд░рдпреВрдЬрд╝рд░ рдмрдирд╛рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ "postgres" рд╣реЛрддрд╛ рд╣реИ)ред
    • POSTGRES_DB: рдЗрд╕ рдирд╛рдо рд╕реЗ рдирдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддреМрд░ рдкрд░ рдпреВрдЬрд╝рд░рдиреЗрдо)ред
  • рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ (-p 5432:5432) рдХрдВрдЯреЗрдирд░ рдХреЗ PostgreSQL рдкреЛрд░реНрдЯ (5432) рдХреЛ рдЖрдкрдХреЗ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдХреЗ рдЙрд╕реА рдкреЛрд░реНрдЯ рд╕реЗ рдореИрдк рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк localhost:5432 рдХреЗ рдЬрд╝рд░рд┐рдП PostgreSQL рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
  • рд╡реЙрд▓реНрдпреВрдо рдорд╛рдЙрдВрдЯрд┐рдВрдЧ (-v postgres-data:/var/lib/postgresql/data) postgres-data рдирд╛рдо рдХрд╛ Docker рд╡реЙрд▓реНрдпреВрдо рдмрдирд╛рддреА рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рдмрд╛рд╣рд░ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд░рдЦрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдХрдВрдЯреЗрдирд░ рд░реБрдХрдиреЗ рдпрд╛ рд╣рдЯрдиреЗ рдкрд░ рднреА рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╣рддрд╛ рд╣реИред
  • -d рдлрд╝реНрд▓реИрдЧ рдХрдВрдЯреЗрдирд░ рдХреЛ рдбрд┐рдЯреИрдЪреНрдб рдореЛрдб рдореЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реИред рдЖрд╕рд╛рди рднрд╛рд╖рд╛ рдореЗрдВ рдХрд╣реЗрдВ рддреЛ рдХрдВрдЯреЗрдирд░ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред

рдЖрдк рдпрд╣ рдЬрд╛рдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрдВрдЯреЗрдирд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ:

docker ps

Image 4 - Listing all running containers

рдЫрд╡рд┐ 4 - рд╕рднреА рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рд╕реВрдЪреА

рдЕрдЧрд▓реЗ рдЦрдВрдб рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдЖрдкрдХреЗ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧ-рдХреЗрд╕ рдХреЗ рд▓рд┐рдП PostgreSQL рдХрдВрдЯреЗрдирд░ рдХреЛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рджрд┐рдЦрд╛рдКрдБрдЧрд╛ред

Docker рдореЗрдВ PostgreSQL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛

рдкрд┐рдЫрд▓реЗ рдЦрдВрдб рдХрд╛ рдмреЗрд╕рд┐рдХ рд╕реЗрдЯрдЕрдк рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЙрдиреНрдирдд рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдк рдЕрдкрдиреЗ PostgreSQL рдХрдВрдЯреЗрдирд░ рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

рдпрд╣реА рдЗрд╕ рдЦрдВрдб рдХрд╛ рдордХрд╕рдж рд╣реИред

рд╡реЙрд▓реНрдпреВрдореНрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдпреА рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗрдЯ рдХрд░рдирд╛

Docker рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдХрд┐ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЬреАрд╡рдирдЪрдХреНрд░ рд╕реЗ рдЖрдЧреЗ рднреА рдмрдирд╛ рд░рд╣реЗред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрдВрдЯреЗрдирд░ рд╣рдЯрд╛рдиреЗ рдкрд░ рдЙрд╕рдХреЗ рдЕрдВрджрд░ рдХрд╛ рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╢рд╛рдпрдж рд╣реА рд╡рд╛рдВрдЫрдиреАрдп рд╣реЛрддрд╛ рд╣реИред

Docker рд╡реЙрд▓реНрдпреВрдореНрд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рджреЗрддреЗ рд╣реИрдВтАФрдпреЗ рдбреЗрдЯрд╛ рдХреЛ рдХрдВрдЯреЗрдирд░ рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд╣рд░ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВред

рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдПрдХ рдирд╛рдорд┐рдд рд╡реЙрд▓реНрдпреВрдо рдмрдирд╛рдПрдБ:

docker volume create postgres-data

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рд╡реЙрд▓реНрдпреВрдо рд╡рд┐рд╡рд░рдг рдЗрд╕ рдХрдорд╛рдВрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

docker volume inspect postgres-data

Image 5 - Listing volume details

рдЫрд╡рд┐ 5 - рд╡реЙрд▓реНрдпреВрдо рд╡рд┐рд╡рд░рдг рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛

рдЕрдм, PostgreSQL рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рд╡реЙрд▓реНрдпреВрдо рдХреЛ PostgreSQL рдбреЗрдЯрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ:

docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -v postgres-data:/var/lib/postgresql/data \
  -d postgres

-v postgres-data:/var/lib/postgresql/data рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдорд┐рдд рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдХрдВрдЯреЗрдирд░ рдХреА рдбреЗрдЯрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рд╕рд╛рд░рд╛рдВрд╢ рд░реВрдк рдореЗрдВ, PostgreSQL рдХреЗ рд▓рд┐рдП рд╡реЙрд▓реНрдпреВрдо рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреЗ рдпреЗ рд▓рд╛рдн рд╣реИрдВ:

  • рдХрдВрдЯреЗрдирд░ рд╣рдЯрд╛рдиреЗ рдкрд░ рднреА рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИред
  • рдЖрдк рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реЛрдХ, рд╢реБрд░реВ рдпрд╛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ рдбреЗрдЯрд╛ рдЦреЛрдПред
  • рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдХрд░ рдЖрдк рдбреЗрдЯрд╛ рдХрд╛ рдмреИрдХрдЕрдк рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
  • рдмрд╛рдЗрдВрдб рдорд╛рдЙрдВрдЯреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди (рдЦрд╛рд╕рддреМрд░ рдкрд░ macOS рдФрд░ Windows рдкрд░)ред

PostgreSQL рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯреНрд╕ рдПрдХреНрд╕рдкреЛрдЬрд╝ рдХрд░рдирд╛

рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░ рдЪрд▓ рд░рд╣реЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рд╕реЗ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ PostgreSQL рдкреЛрд░реНрдЯ (5432) рдХреЛ рд▓реЛрдХрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдХреНрд╕рдкреЛрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ рдХрдВрдЯреЗрдирд░ рдХреЗ 5432 рдкреЛрд░реНрдЯ рдХреЛ рд╣реЛрд╕реНрдЯ рдХреЗ рдЙрд╕реА рдкреЛрд░реНрдЯ рд╕реЗ рдореИрдк рдХрд░рдирд╛:

docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -p 5432:5432 \
  -d postgres

-p 5432:5432 рдкреИрд░рд╛рдореАрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХрд╛ 5432 рдкреЛрд░реНрдЯ рд╣реЛрд╕реНрдЯ рдХреЗ 5432 рдкреЛрд░реНрдЯ рд╕реЗ рдореИрдк рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЗ рд╣реЛрд╕реНрдЯ рдкрд░ 5432 рдкреЛрд░реНрдЯ рдкрд╣рд▓реЗ рд╕реЗ PostgreSQL рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд░реНрд╡рд┐рд╕ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ, рддреЛ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдкреЛрд░реНрдЯ рд╕реЗ рдореИрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -p 5433:5432 \
  -d postgres

рдЕрдм рдХрдВрдЯреЗрдирд░ рдХрд╛ 5432 рдкреЛрд░реНрдЯ рдЖрдкрдХреЗ рд╣реЛрд╕реНрдЯ рдкрд░ 5433 рдкреЛрд░реНрдЯ рд╕реЗ рдореИрдк рд╣реИред рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ 5432 рдХреА рдЬрдЧрд╣ 5433 рдкреЛрд░реНрдЯ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреЛрд░реНрдЯ рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕реЗрдЬрд╝ (0.0.0.0) рдкрд░ рдПрдХреНрд╕рдкреЛрдЬрд╝ рд╣реЛрддрд╛ рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ localhost рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -p 127.0.0.1:5432:5432 \
  -d postgres

рдпрд╣ рдХреЗрд╡рд▓ рдЖрдкрдХреА рд▓реЛрдХрд▓ рдорд╢реАрди рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдЕрдиреНрдп рдорд╢реАрдиреЛрдВ рд╕реЗ рдирд╣реАрдВред

PostgreSQL рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛

рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рддреЗ рд╕рдордп рдЖрдк рдХрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ PostgreSQL рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛тАФрд╣рд╛рд▓рд╛рдБрдХрд┐ рдЕрдХреЗрд▓рд╛ рдирд╣реАрдВтАФрдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдпреЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -e POSTGRES_USER=myuser \
  -e POSTGRES_DB=mydatabase \
  -e POSTGRES_INITDB_ARGS="--data-checksums" \
  -e POSTGRES_HOST_AUTH_METHOD=scram-sha-256 \
  -d postgres

рдФрд░ рдпреЗ рдЙрдирдореЗрдВ рд╕реЗ рд╣рд░ рдПрдХ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ:

  • POSTGRES_PASSWORD: рд╕реБрдкрд░рдпреВрдЬрд╝рд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ (рдЖрд╡рд╢реНрдпрдХ)ред
  • POSTGRES_USER: рд╕реБрдкрд░рдпреВрдЬрд╝рд░ рдХрд╛ рдирд╛рдо рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ "postgres")ред
  • POSTGRES_DB: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╛рдо рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдпреВрдЬрд╝рд░ рдиреЗрдо рд╣реЛрддрд╛ рд╣реИ)ред
  • POSTGRES_INITDB_ARGS: PostgreSQL рдХреЗ initdb рдХрдорд╛рдВрдб рдХреЛ рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯреНрд╕ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред
  • POSTGRES_HOST_AUTH_METHOD: рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди рдореЗрдердб рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк PostgreSQL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдФрд░ рдЙрдиреНрдирдд рдмрджрд▓рд╛рд╡ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреБрдЫ рдЕрдХреНрд╕рд░ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА PostgreSQL рд╕реЗрдЯрд┐рдВрдЧреНрд╕:

  • max_connections: PostgreSQL рдХрд┐рддрдиреЗ рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░реЗрдЧрд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 100)ред
  • shared_buffers: рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдореЗрдореЛрд░реА рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ (рдкреНрд░реЛрдбрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдХреНрд╕рд░ рдХрдо рд╣реЛрддрд╛ рд╣реИ)ред
  • work_mem: рдХреНрд╡реЗрд░реА рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реАред
  • maintenance_work_mem: рдореЗрдВрдЯреЗрдиреЗрдВрд╕ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реАред

рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБтАФрдорд╛рди рд▓реЗрдВ my-postgres-conf:

max_connections = 200
shared_buffers = 1GB
work_mem = 16MB
maintenance_work_mem = 256MB

рдЕрдм, рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рддреЗ рд╕рдордп рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ:

docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -v ./my-postgres.conf:/etc/postgresql/postgresql.conf \
  -v postgres-data:/var/lib/postgresql/data \
  -d postgres \
  -c 'config_file=/etc/postgresql/postgresql.conf'

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдкрд░рд╕рд┐рд╕реНрдЯреЗрдВрд╕, рдиреЗрдЯрд╡рд░реНрдХ рдПрдХреНрд╕реЗрд╕, рдФрд░ PostgreSQL рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдХреЗ рдЖрдк рдЕрдкрдиреА рдЬрд╝рд░реВрд░рдд рдХреЗ рдореБрддрд╛рдмрд┐рдХрд╝ Docker-рдЖрдзрд╛рд░рд┐рдд PostgreSQL рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╕ postgres:latest рдЗрдореЗрдЬ рддреЛ рдмрд╕ рдЖрдзрд╛рд░ рд╣реИтАФрдмрд╣реБрдд рдХреБрдЫ рдЖрдк рдЯреНрдпреВрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдЧрд▓реЗ рдЦрдВрдб рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ Docker рдореЗрдВ рдЪрд▓ рд░рд╣реЗ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рджрд┐рдЦрд╛рдКрдБрдЧрд╛ред

Docker рдореЗрдВ рдЪрд▓ рд░рд╣реЗ PostgreSQL рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛

рдЕрдм рдЬрдмрдХрд┐ рдЖрдкрдХрд╛ PostgreSQL рдХрдВрдЯреЗрдирд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЕрдЧрд▓рд╛ рдХрджрдо рдЙрд╕рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдирд╛ рд╣реИред рдЖрдЦрд╝рд┐рд░ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдЪрд▓рд╛рддреЗ рд╣реА рдХреНрдпреЛрдВ рд╣реИрдВ?

рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░рд╛рдЗрдЬрд╝реНрдб PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рджрд┐рдЦрд╛рдКрдБрдЧрд╛: рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди psql рдЯреВрд▓ рд╕реЗ рдФрд░ рдПрдХ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗред

рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрдкрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдВрдЯреЗрдирд░ рдЗрд╕ рдХрдорд╛рдВрдб рд╕реЗ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдБ:

docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -e POSTGRES_USER=myuser \
  -e POSTGRES_DB=mydatabase \
  -v postgres-data:/var/lib/postgresql/data \
  -p 5432:5432 \
  -d postgres

psql рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛

psql рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЯреВрд▓ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ PostgreSQL рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ SQL рдХрдорд╛рдВрдб рдХреЗ рдЬрд╝рд░рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред┬а

рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ, рд▓реЗрдХрд┐рди рдпреВрдЬрд╝рд░ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рди рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ:

docker exec -it postgres-db psql -U myuser -d mydatabase

Image 6 - Connecting to Postgres database using psql

рдЫрд╡рд┐ 6 - psql рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Postgres рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛

рдФрд░ рдмрд╕!

рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдХрдорд╛рдВрдб рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдпрд╣ рд╣реИ:

  • docker exec -it postgres-db: "postgres-db" рдирд╛рдо рдХреЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБред
  • psql -U myuser -d mydatabase: psql рд╢реБрд░реВ рдХрд░реЗрдВ, "myuser" рдХреЗ рд░реВрдк рдореЗрдВ "mydatabase" рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реБрдПред

рдпрджрд┐ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рджрд┐рдХреНрдХрдд рд╣реЛ рд░рд╣реА рд╣реИ, рддреЛ рдпреЗ рдЖрдо рдмрд╛рддреЗрдВ рдЬрд╛рдБрдЪреЗрдВ:

  • docker ps рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХрдВрдЯреЗрдирд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
  • docker port postgres-db рд╕реЗ рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВред

GUI рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛

рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ CLI рдХреА рдмрдЬрд╛рдп рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдЯреВрд▓ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВтАФрдореИрдВ рднреАред pgAdmin PostgreSQL рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдп рдФрд░ рдореБрдлрд╝реНрдд рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд▓реЗрдХрд┐рди DBeaver, DataGrip, рдпрд╛ TablePlus рдЬреИрд╕реЗ рдЕрдиреНрдп рдЯреВрд▓реНрд╕ рдореЗрдВ рднреА рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓рддреА-рдЬреБрд▓рддреА рд╣реИред

pgAdmin рдХрд╛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕рд░рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░реВрдБрдЧрд╛ред

рдорд╛рди рд▓реЗрдВ рдЖрдкрдиреЗ рдЗрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рдЦреЛрд▓рд╛ рд╣реБрдЖ рд╣реИ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреИрдирд▓ рдореЗрдВ "Servers" рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ "Register > Server" рдЪреБрдиреЗрдВред рдЕрдм, General рдЯреИрдм рдореЗрдВ рдЕрдкрдиреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдПрдХ рдирд╛рдо рджреЗрдВ:

Image 7 - pgAdmin general tab

рдЫрд╡рд┐ 7 - pgAdmin рдХрд╛ General рдЯреИрдм

рдлрд┐рд░ "Connection" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдБ рдФрд░ рдпреЗ рд╡рд┐рд╡рд░рдг рднрд░реЗрдВ:

  • Host name/address: localhost
  • Port: 5432 (рдпрд╛ рдЬреЛ рднреА рдкреЛрд░реНрдЯ рдЖрдкрдиреЗ рдореИрдк рдХрд┐рдпрд╛ рд╣реИ)
  • Maintenance database: mydatabase
  • Username: myuser
  • Password: рдЖрдкрдХрд╛ PostgreSQL рдкрд╛рд╕рд╡рд░реНрдб

Image 8 - pgAdmin connection tab

рдЫрд╡рд┐ 8 - pgAdmin рдХрд╛ Connection рдЯреИрдм

рдЕрдВрдд рдореЗрдВ, рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "Save" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:

Image 9 - Successful connection

рдЫрд╡рд┐ 9 - рд╕рдлрд▓ рдХрдиреЗрдХреНрд╢рди

рдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рдиреЗ рдкрд░, рдЖрдк рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╡реИрд╕рд╛ рд╣реА рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рд▓реЛрдХрд▓ рдЗрдВрд╕реНрдЯреЙрд▓реНрдб рдпрд╛ рдХреНрд▓рд╛рдЙрдб-рдкреНрд░реЛрд╡рд┐рдЬрд╝рдиреНрдб PostgreSQL рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВред Docker рдХреА рдЦреВрдмрд╕реВрд░рддреА рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдирдЬрд╝рд░рд┐рдП рд╕реЗ рдХреЛрдИ рдлрд╝рд░реНрдХ рдирд╣реАрдВтАФрдпрд╣ рдмрд╕ рджрд┐рдП рдЧрдП рдкрддреЗ рдкрд░ рдЙрдкрд▓рдмреНрдз рдПрдХ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред

>рдХреНрдпрд╛ рдЖрдкрдХреЛ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдкрд╣реБрдБрдЪ рдЪрд╛рд╣рд┐рдП? рдЬрд╛рдиреЗрдВ рдХрд┐ Python рд╕реЗ рдХреИрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВред

рдЕрдЧрд▓реЗ рдЦрдВрдб рдореЗрдВ, рдореИрдВ рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реЛрдХрдиреЗ, рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рд╕рд╣рд┐рдд PostgreSQL рдХрдВрдЯреЗрдирд░ рдореИрдиреЗрдЬ рдХрд░рдирд╛ рдХрд╡рд░ рдХрд░реВрдБрдЧрд╛ред

Docker рдореЗрдВ PostgreSQL рдореИрдиреЗрдЬ рдХрд░рдирд╛

рдХрдВрдЯреЗрдирд░ рдореЗрдВ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдЪрд▓рд╛рдирд╛ рдФрд░ рдЙрд╕рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдирд╛ рдПрдХ рдмрд╛рдд рд╣реИ, рдкрд░ рдЙрд╕реЗ рдореИрдиреЗрдЬ рдХрд░рдирд╛ рдЕрд▓рдЧ рдХреМрд╢рд▓ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдХрдорд╛рдВрдбреНрд╕ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рдореИрдВ рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реЛрдХрдирд╛-рд╢реБрд░реВ рдХрд░рдирд╛, рд▓реЙрдЧреНрд╕ рджреЗрдЦрдирд╛, рдФрд░ PostgreSQL рд╡рд░реНрдЬрд╝рди рдХреЛ рдЕрдкрдбреЗрдЯ рд░рдЦрдирд╛ рдЬреИрд╕реЗ рдЬрд╝рд░реВрд░реА рдСрдкрд░реЗрд╢рдВрд╕ рдХрд╡рд░ рдХрд░реВрдБрдЧрд╛ред

PostgreSQL рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реЛрдХрдирд╛, рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдирд╛, рдФрд░ рд╣рдЯрд╛рдирд╛

Docker рдХреЗ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ рдЖрдкрдХреЛ PostgreSQL рдХрдВрдЯреЗрдирд░ рдХреЗ рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЛ рдореИрдиреЗрдЬ рдХрд░рдиреЗ рджреЗрддреЗ рд╣реИрдВред

рдЪрд▓ рд░рд╣реЗ PostgreSQL рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП:

docker stop postgres-db

рдЗрд╕реА рддрд░рд╣, рдЬрдм рдЖрдкрдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛ:

docker start postgres-db

Image 10 - Stopping and starting the container

рдЫрд╡рд┐ 10 - рдХрдВрдЯреЗрдирд░ рд░реЛрдХрдирд╛ рдФрд░ рд╢реБрд░реВ рдХрд░рдирд╛

рдпрджрд┐ рдЖрдк рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВтАФрдЬреЛ рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИтАФрддреЛ рдпрд╣ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

docker restart postgres-db

рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрдм рдЖрдк рдХрд┐рд╕реА рдХрдВрдЯреЗрдирд░ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдХрд╛рдо рдирд┐рдкрдЯрд╛ рдЪреБрдХреЗ рд╣реЛрдВ рдФрд░ рдЙрд╕реЗ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛрдВ, рддреЛ рдпреЗ рджреЛ рдХрдорд╛рдВрдб рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ:

docker stop postgres-db
docker rm postgres-db

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдХрдВрдЯреЗрдирд░ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рдбрд┐рд▓реАрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рдпрджрд┐ рдЖрдкрдиреЗ рд╡реЙрд▓реНрдпреВрдо рд╕рд╣реА рддрд░рд╣ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рдмрдирд╛рдП рдЧрдП postgres-data рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рд░рд╣реЗрдЧрд╛ред

рдЖрдк рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрдВрдЯреЗрдирд░ рд╣рдЯ рдЧрдпрд╛ рд╣реИ:

docker ps -a

рдпрд╣рд╛рдБ -a рдлрд╝реНрд▓реИрдЧ рд╕рднреА рдХрдВрдЯреЗрдирд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдмрдВрдж рдХрд┐рдП рд╣реБрдП рднреАред рдпрджрд┐ рдХрдВрдЯреЗрдирд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рдЯ рдЧрдпрд╛, рддреЛ рд╡рд╣ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦреЗрдЧрд╛:

Image 11 - Listing all containers

рдЫрд╡рд┐ 11 - рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рд╕реВрдЪреА

рд▓реЙрдЧреНрд╕ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг

рдЬрдм рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдпрд╛ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЙрдирд┐рдЯрд░ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВ, рддреЛ рд▓реЙрдЧреНрд╕ рджреЗрдЦрдирд╛ рдкрд╣рд▓рд╛ рдЕрдЪреНрдЫрд╛ рдХрджрдо рд╣реИред

рдЕрдкрдиреЗ PostgreSQL рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓реЙрдЧреНрд╕ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

docker logs postgres-db

рдпрд╣ рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдЕрдм рддрдХ рдХреЗ рд╕рднреА рд▓реЙрдЧреНрд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд▓реЙрдЧреНрд╕ рдмрд╣реБрдд рдЬрд╝реНрдпрд╛рджрд╛ рд╣реЛрдВ, рддреЛ рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВтАФрдорд╛рди рд▓реЗрдВ рдЖрдЦрд╝рд┐рд░реА 50 рд▓реЙрдЧреНрд╕ рддрдХ:

docker logs --tail 50 postgres-db

Image 12 - Viewing container logs

рдЫрд╡рд┐ 12 - рдХрдВрдЯреЗрдирд░ рд▓реЙрдЧреНрд╕ рджреЗрдЦрдирд╛

рджреВрд╕рд░реА рдУрд░, рдпрджрд┐ рдЖрдк рд▓реЙрдЧреНрд╕ рдХреЛ рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдореЗрдВ рдлреЙрд▓реЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

docker logs -f postgres-db

Image 13 - Viewing container logs in real time

рдЫрд╡рд┐ 13 - рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдореЗрдВ рдХрдВрдЯреЗрдирд░ рд▓реЙрдЧреНрд╕ рджреЗрдЦрдирд╛

рдпрд╣ рдЦрд╛рд╕рдХрд░ рдХрдиреЗрдХреНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдпрд╛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рджреЗрдЦрдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИред

рд▓реЙрдЧреНрд╕ рдХреЛ рдлреЙрд▓реЛ рдХрд░рдирд╛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП Ctrl+C/CMD+C рджрдмрд╛рдПрдБред

Docker рдореЗрдВ PostgreSQL рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛

рд╕рдордп рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдирдП рдлрд╝реАрдЪрд░реНрд╕, рдкрд░рдлрд╝реЙрд░реНрдореЗрдВрд╕ рд╕реБрдзрд╛рд░, рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдкреИрдЪ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП PostgreSQL рд╡рд░реНрдЬрд╝рди рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд▓рд┐рдЦрддреЗ рд╕рдордп postgres:17.4 рд▓реЗрдЯреЗрд╕реНрдЯ рд╡рд░реНрдЬрд╝рди рд╣реИ, рд▓реЗрдХрд┐рди рдорд╛рди рд▓реЗрдВ postgres:17.5 рд░рд┐рд▓реАрдЬрд╝ рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдЦрдВрдб рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд░реНрдЬрд╝рди рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдЯреЗрд╕реНрдЯ PostgreSQL рдЗрдореЗрдЬ (рдпрд╛ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдЬрд╝рди) рдкреБрд▓ рдХрд░реЗрдВ:

docker pull postgres:17.5

рдлрд┐рд░, рдореМрдЬреВрджрд╛ рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реЛрдХреЗрдВ рдФрд░ рд╣рдЯрд╛рдПрдБ:

docker stop postgres-db
docker rm postgres-db

рдЕрдВрдд рдореЗрдВ, рдЙрд╕реА рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╕рд╛рде рдирдпрд╛ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдЗрдП:

docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -e POSTGRES_USER=myuser \
  -e POSTGRES_DB=mydatabase \
  -v postgres-data:/var/lib/postgresql/data \
  -p 5432:5432 \
  -d postgres:17.5

рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╡рд╣реА рд╡реЙрд▓реНрдпреВрдо (postgres-data) рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдкрдХрд╛ рд╕рд╛рд░рд╛ рдореМрдЬреВрджрд╛ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╣реЗрдЧрд╛ред

рдпрджрд┐ рдЖрдк рдмрдбрд╝реЗ рд╡рд░реНрдЬрд╝рди (рдЬреИрд╕реЗ 17 рд╕реЗ 18) рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ PostgreSQL рд╕реНрдЯрд╛рд░реНрдЯ рд╣реЛрдиреЗ рдкрд░ рдЬрд╝рд░реВрд░реА рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЕрдкрдиреЗ-рдЖрдк рдЪрд▓рд╛рддрд╛ рд╣реИред рдмрд╕ рдпреЗ рдмрд╛рддреЗрдВ рдзреНрдпрд╛рди рд░рдЦреЗрдВ:

  • рдмрдбрд╝реЗ рд╡рд░реНрдЬрд╝рди рдЕрдкрдЧреНрд░реЗрдб рдкрд╣рд▓реЗ рдиреЙрди-рдкреНрд░реЛрдбрдХреНрд╢рди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВред
  • рдмрдбрд╝реЗ рд╡рд░реНрдЬрд╝рди рдЕрдкрдЧреНрд░реЗрдб рд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдВред
  • PostgreSQL рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯреНрд╕ рдореЗрдВ рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬреЗрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

рдЕрдкрдЧреНрд░реЗрдб рд╕реЗ рдкрд╣рд▓реЗ рдмреИрдХрдЕрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

docker run --rm -v postgres-data:/data -v $(pwd):/backup postgres:17.4 \
  bash -c "pg_dumpall -U myuser > /backup/postgres_backup.sql"

рдпрд╣ рдЖрдкрдХреЗ рдореМрдЬреВрджрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ SQL рдмреИрдХрдЕрдк рдлрд╝рд╛рдЗрд▓ рдмрдирд╛ рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛрдиреЗ рдкрд░ рдЖрдк рдбреЗрдЯрд╛ рд░реАрд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХреЗрдВред

>рд╣рдорд╛рд░рд╛ PostgreSQL Basics Cheat Sheet Docker рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рддреБрд░рдВрдд рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд▓реЗ рдЦрдВрдб рдореЗрдВ, рдореИрдВ Docker рдореЗрдВ PostgreSQL рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕реЛрдВ рдкрд░ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдЯрд┐рдкреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

Docker рдореЗрдВ PostgreSQL рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕

Docker рдХреА рд▓рдЪреАрд▓рд╛рдкрди рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рдореИрдВ рдХреБрдЫ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рд╕рд╛рдЭрд╛ рдХрд░реВрдБрдЧрд╛ рддрд╛рдХрд┐ рдЖрдкрдХрд╛ рдХрдВрдЯреЗрдирд░рд╛рдЗрдЬрд╝реНрдб PostgreSQL рд╕реЗрдЯрдЕрдк рднрд░реЛрд╕реЗрдордВрдж, рд╕реБрд░рдХреНрд╖рд┐рдд, рдФрд░ рдЙрджреНрдпреЛрдЧ рдорд╛рдирдХреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛред

рдирд┐рдпрдорд┐рдд рдмреИрдХрдЕрдк рд╕реЗ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦреЗрдВ

рдЖрдк PostgreSQL рдЬреИрд╕реЗ рднреА рдЪрд▓рд╛рдПрдБ, рдирд┐рдпрдорд┐рдд рдмреИрдХрдЕрдк рдЬрд╝рд░реВрд░реА рд╣реИрдВред рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рдЦрдВрдб рдореЗрдВ рдмреИрдХрдЕрдк рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рджреЗрддрд╛ рд╣реВрдБред┬а

Docker рдореЗрдВ рдЪрд▓ рд░рд╣реЗ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмреИрдХрдЕрдк pg_dump рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

docker exec -t postgres-db pg_dump -U myuser mydatabase > backup.sql

Image 14 - PostgreSQL backup

рдЫрд╡рд┐ 14 - PostgreSQL рдмреИрдХрдЕрдк

рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕тАФрд░реЛрд▓реНрд╕ рдФрд░ рдЯреЗрдмрд▓рд╕реНрдкреЗрд╕реЗрдЬрд╝ рд╕рд╣рд┐рддтАФрдХрд╛ рдкреВрд░рд╛ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП pg_dumpall рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

docker exec -t postgres-db pg_dumpall -U myuser > full_backup.sql

Image 15 - Full PostgreSQL database backup

рдЫрд╡рд┐ 15 - рдкреВрд░реНрдг PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдмреИрдХрдЕрдк

рдпрд╣ рдЫрд╡рд┐ рдХреЗрд╡рд▓ рдХреБрдЫ рдмреИрдХрдЕрдк рдХрдорд╛рдВрдбреНрд╕ рджрд┐рдЦрд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реА рдЪреАрдЬрд╝ рд╕реНрдХреНрд░реАрди рдореЗрдВ рд╕рдорд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВред

рдмреИрдХрдЕрдк рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реЗ cron рд╕реЗ рдЪрд▓рд╛рдПрдБ:

#!/bin/bash
# backup.sh
TIMESTAMP=$(date +"%Y%m%d")
BACKUP_DIR="/Users/dradecic/Documents/pg-backups"

# Make sure the backup directory exists
mkdir -p $BACKUP_DIR

# Create the backup
docker exec postgres-db pg_dumpall -U myuser | gzip > $BACKUP_DIR/postgres_$TIMESTAMP.sql.gz

# Remove backups older than 30 days
find $BACKUP_DIR -name "postgres_*.sql.gz" -mtime +30 -delete

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ executable рдмрдирд╛рдПрдБ рдФрд░ рдЪрд▓рд╛рдПрдБ:

chmod +x backup.sh

bash backup.sh

Image 16 - Running a PostgreSQL database backup script

рдЫрд╡рд┐ 16 - PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдирд╛

рдмреИрдХрдЕрдк рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдкрдиреА crontab рдореЗрдВ рд░реЛрдЬрд╝ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝реЗрдВ:

0 3 * * * /path/to/backup.sh

рдпрд╣ рд╢реЗрдбреНрдпреВрд▓ рд╣рд░ рд░реЛрдЬрд╝ рд╕реБрдмрд╣ 3 рдмрдЬреЗ рдмреИрдХрдЕрдк рдЪрд▓рд╛рддрд╛ рд╣реИтАФрдЖрдк рдЕрдкрдиреА рдЬрд╝рд░реВрд░рдд рдХреЗ рдореБрддрд╛рдмрд┐рдХрд╝ рд╕рдордп рдФрд░ рдЕрдВрддрд░рд╛рд▓ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред┬а

>рдореЗрд░реА cron jobs рдкрд░ рдкреВрд░реА рдЧрд╛рдЗрдб рджреЗрдЦреЗрдВтАФрдЗрд╕ рдЙрдкрдпреЛрдЧреА рдСрдЯреЛрдореЗрд╢рди рдЯреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдПред

рдкреНрд░реЛрдбрдХреНрд╢рди рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдмреИрдХрдЕрдкреНрд╕ рдХреЛ рдСрдлрд╝-рд╕рд╛рдЗрдЯ рдпрд╛ рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд░рдЦрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдбрд┐рдЬрд╝рд╛рд╕реНрдЯрд░ рд░рд┐рдХрд╡рд░реА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛред

рдбреЗрдЯрд╛ рдкрд░рд╕рд┐рд╕реНрдЯреЗрдВрд╕ рдХреЗ рд▓рд┐рдП рдирд╛рдорд┐рдд рд╡реЙрд▓реНрдпреВрдореНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╡реЙрд▓реНрдпреВрдореНрд╕ рдХрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЬрд╝рд┐рдХреНрд░ рдХрд┐рдпрд╛тАФрдпрд╣рд╛рдБ рдЙрдиреНрд╣реЗрдВ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВред

рдЖрдо рдирд┐рдпрдо рдХреЗ рддреМрд░ рдкрд░, рдЖрдкрдХреЛ рдХрднреА рднреА Docker рдореЗрдВ PostgreSQL рдмрд┐рдирд╛ рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдирд╣реАрдВ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд░рдирд╛ рдХрдВрдЯреЗрдирд░ рд╣рдЯрдиреЗ рдпрд╛ Docker рдХреА рдХреНрд▓реАрдирдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рдЦреЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдирд╛рдо рд╡реЙрд▓реНрдпреВрдореНрд╕ рдХреА рдмрдЬрд╛рдп рдирд╛рдорд┐рдд рд╡реЙрд▓реНрдпреВрдореНрд╕ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рд╕реЗ рдмреИрдХрдЕрдк рдФрд░ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:

# Create a named volume
docker volume create postgres-data

# Use it when running the container
docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -v postgres-data:/var/lib/postgresql/data \
  -d postgres

рдпрд╣рд╛рдБ рдХреБрдЫ рдирдпрд╛ рдирд╣реАрдВред

рдирд╛рдорд┐рдд рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдирд╛ рднреА рдЖрд╕рд╛рди рд╣реИред рдкреВрд░реЗ рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдмреИрдХрдЕрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

docker run --rm -v postgres-data:/data -v $(pwd):/backup alpine tar czf /backup/postgres-data-backup.tar.gz /data

рдЗрд╕рд╕реЗ рдЙрд╕реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ postgres-data-backup.tar.gz рдлрд╝рд╛рдЗрд▓ рдмрди рдЬрд╛рдПрдЧреА рдЬрд╣рд╛рдБ рд╕реЗ рдЖрдкрдиреЗ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдпрд╛ред

рдЕрдм, рдЗрд╕ рд╡реЙрд▓реНрдпреВрдо рдХреЛ рд░реАрд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЪрд▓рд╛рдПрдБ:

docker run --rm -v postgres-data:/data -v $(pwd):/backup alpine sh -c "cd /data && tar xzf /backup/postgres-data-backup.tar.gz --strip 1"

рдмрд╕ рдЗрддрдирд╛ рд╣реА!

Docker рдореЗрдВ PostgreSQL рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдХрднреА рдмрд╛рдж рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЙрдкрдЦрдВрдб рдЖрдкрдХреЗ PostgreSQL рдХрдВрдЯреЗрдирд░ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЬрд╝рд░реВрд░реА рдЕрднреНрдпрд╛рд╕ рдмрддрд╛рдПрдЧрд╛ред

рдордЬрдмреВрдд рдФрд░ рдпреВрдирд┐рдХ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдпрд╛ рдХрдордЬрд╝реЛрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рдмрдЪреЗрдВред PostgreSQL рд╕реБрдкрд░рдпреВрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдордЬрд╝рдмреВрдд, рд░реИрдВрдбрдо рдкрд╛рд╕рд╡рд░реНрдб рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ:

export POSTGRES_PASSWORD=$(openssl rand -base64 32)
echo "$POSTGRES_PASSWORD" > postgres-password.txt

docker run --name postgres-db \
  -e POSTGRES_PASSWORD="$POSTGRES_PASSWORD" \
  -v postgres-data:/var/lib/postgresql/data \
  -d postgres

Image 17 - Using a secure password

рдЫрд╡рд┐ 17 - рд╕реБрд░рдХреНрд╖рд┐рдд рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ

рдЗрд╕ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд░рдЦреЗрдВтАФрдкрд╛рд╕рд╡рд░реНрдб рдореИрдиреЗрдЬрд░ рдореЗрдВ рдпрд╛ рдРрд╕реЗ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛ рд╡рд░реНрдЬрд╝рди рдХрдВрдЯреНрд░реЛрд▓ рдореЗрдВ рдЪреЗрдХ-рдЗрди рди рд╣реЛред

рдиреЗрдЯрд╡рд░реНрдХ рдПрдХреНрд╕реЗрд╕ рд╕реАрдорд┐рдд рдХрд░реЗрдВ

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, Docker PostgreSQL рдкреЛрд░реНрдЯ рдХреЛ рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕реЗрдЬрд╝ рдкрд░ рдПрдХреНрд╕рдкреЛрдЬрд╝ рдХрд░рддрд╛ рд╣реИред рдЦрд╛рд╕рдХрд░ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╕реЗрд╕ рдХреЛ localhost рддрдХ рд╕реАрдорд┐рдд рдХрд░реЗрдВ:

docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -p 127.0.0.1:5432:5432 \
  -v postgres-data:/var/lib/postgresql/data \
  -d postgres

рдХрд╕реНрдЯрдо PostgreSQL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЬреИрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд PostgreSQL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдБ:

# Require SSL
ssl = on
ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem'
ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'

# Limit connection attempts
max_connections = 100
authentication_timeout = 1min

# Restrict access
listen_addresses = 'localhost'

рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ:

docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -v ./pg_hba.conf:/var/lib/postgresql/data/pg_hba.conf \
  -v ./postgresql.conf:/var/lib/postgresql/data/postgresql.conf \
  -v postgres-data:/var/lib/postgresql/data \
  -d postgres

рдЕрдкрдирд╛ PostgreSQL рдЗрдореЗрдЬ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдирд╡реАрдирддрдо рд╕реБрд░рдХреНрд╖рд╛ рдкреИрдЪ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ PostgreSQL рд╡рд░реНрдЬрд╝рди рдЕрдкрдбреЗрдЯ рд░рдЦреЗрдВ:

docker pull postgres:latest
docker stop postgres-db
docker rm postgres-db
# Then recreate with the latest image

рдпреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ Docker рдореЗрдВ PostgreSQL рдХрд╛ рдЕрдзрд┐рдХ рднрд░реЛрд╕реЗрдордВрдж рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреНрд░реЛрдбрдХреНрд╢рдитАФрджреЛрдиреЛрдВ рдЙрдкрдпреЛрдЧ-рдХреЗрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛред

рдЕрдЧрд▓реЗ рдЦрдВрдб рдореЗрдВ, рдореИрдВ Docker рдореЗрдВ PostgreSQL рдЪрд▓рд╛рддреЗ рд╕рдордп рдЖрдиреЗ рд╡рд╛рд▓реА рдЖрдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЯреНрд░рдмрд▓рд╢реВрдЯрд┐рдВрдЧ рдмрддрд╛рдКрдБрдЧрд╛ред

Docker рдореЗрдВ PostgreSQL рдХрд╛ рдЯреНрд░рдмрд▓рд╢реВрдЯрд┐рдВрдЧ

рдЬрд▓реНрджреА рдпрд╛ рджреЗрд░, Docker рдореЗрдВ PostgreSQL рдЪрд▓рд╛рддреЗ рд╕рдордп рдХреБрдЫ рди рдХреБрдЫ рд╕рдорд╕реНрдпрд╛ рдЖрдПрдЧреА рд╣реАред рдЗрд╕ рдЦрдВрдб рдореЗрдВ рдореИрдВ рдЖрдо рд╕рдорд╕реНрдпрд╛рдПрдБ рдФрд░ рдЙрдирдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╡рд░ рдХрд░реВрдБрдЧрд╛тАФрдЬреЛ рд╕рдордп рдФрд░ рдЭреБрдВрдЭрд▓рд╛рд╣рдЯ рджреЛрдиреЛрдВ рдмрдЪрд╛рдПрдБрдЧреЗред

PostgreSQL рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рдЖрдо рд╕рдорд╕реНрдпрд╛рдПрдБ

рдПрдХ рдЖрдо рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реА рддреБрд░рдВрдд рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдХрд╛рд░рдг рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧреНрд╕ рджреЗрдЦреЗрдВ:

docker logs postgres-db

рдЖрдкрдХреА рддреНрд░реБрдЯрд┐ рдорд╛рдЙрдВрдЯ рдХрд┐рдП рдЧрдП рд╡реЙрд▓реНрдпреВрдореНрд╕ рдкрд░ рдкрд░рдорд┐рд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛ рд╕рдХрддреА рд╣реИред рдРрд╕реЗ рдореЗрдВ рдЖрдкрдХреЛ рдРрд╕рд╛ рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рджрд┐рдЦреЗрдЧрд╛:

initdb: could not change permissions of directory "/var/lib/postgresql/data": Operation not permitted

рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП, рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдУрдирд░рд╢рд┐рдк рдФрд░ рдкрд░рдорд┐рд╢рди рдЬрд╛рдБрдЪреЗрдВ рдФрд░ рдЬрд╝рд░реВрд░рдд рдкрдбрд╝реЗ рддреЛ рдареАрдХ рдХрд░реЗрдВ:

# Check the ownership
docker run --rm -v postgres-data:/data alpine ls -la /data

# Fix the permissions
docker run --rm -v postgres-data:/data alpine chmod 700 /data

рдПрдХ рдФрд░ рдЖрдо рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЖрд╡рд╢реНрдпрдХ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╛ рдорд┐рд╕ рд╣реЛрдирд╛ред рддрдм рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

Database is uninitialized and superuser password is not specified

рдЗрд╕реЗ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЖрд╡рд╢реНрдпрдХ POSTGRES_PASSWORDтАФрдпрд╛ рдХреЛрдИ рдЕрдиреНрдптАФрдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -v postgres-data:/var/lib/postgresql/data \
  -d postgres

тАЬрдбреЗрдЯрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ рдкрд░ PostgreSQL рдлрд╝рд╛рдЗрд▓реЗрдВ рдЧрд╛рдпрдм рд╣реИрдВтАЭ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐ рднреА рдЖрдо рд╣реИред рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рджрд┐рдЦрддрд╛ рд╣реИ:

PostgreSQL Database directory appears to contain a database; Skipping initialization

рдЗрд╕рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЛ рд▓реЗрдХрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдЖрддреА рд╣реИрдВред

рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдиреЗ рдРрд╕рд╛ рд╡реЙрд▓реНрдпреВрдо рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рд╣реЛ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рддреЛ рд╣реЛрдВ рд▓реЗрдХрд┐рди рдорд╛рдиреНрдп PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рди рд╣реЛред рдЖрдкрдХреЛ рдирдП рд╡реЙрд▓реНрдпреВрдо рд╕реЗ рджреЛрдмрд╛рд░рд╛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ:

docker volume create postgres-data-new
docker run --name postgres-db \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -v postgres-data-new:/var/lib/postgresql/data \
  -d postgres

рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди

рдпрджрд┐ рдЖрдк рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рдкрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХрдВрдЯреЗрдирд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ:

docker ps | grep postgres-db

рдпрджрд┐ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрддрд╛, рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛ рд╣реЛред рдКрдкрд░ рдмрддрд╛рдП рдЕрдиреБрд╕рд╛рд░ рд▓реЙрдЧреНрд╕ рдЬрд╛рдБрдЪреЗрдВред

рдпрджрд┐ рд╕реВрдЪреА рдореЗрдВ рд╣реИ, рдлрд┐рд░ рднреА рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛, рддреЛ рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ:

docker port postgres-db

рдЖрдкрдХреЛ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

Image 18 - Container port mapping

рдЫрд╡рд┐ 18 - рдХрдВрдЯреЗрдирд░ рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ

рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдкрдХреА рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ рдЧрд▓рдд рд╣реЛ рд╕рдХрддреА рд╣реИред рд╕рд╣реА -p рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдХрдВрдЯреЗрдирд░ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдБред

рдпрджрд┐ рдлрд┐рд░ рднреА рдХрдиреЗрдХреНрдЯ рди рд╣реЛ, рддреЛ рдЕрдкрдиреА рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬрд╛рдБрдЪреЗрдВред рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рджреЗрдЦреЗрдВ:

  • Hostname: localhost рдпрд╛ 127.0.0.1 (рдХрдВрдЯреЗрдирд░ рдХрд╛ рдирд╛рдо рдирд╣реАрдВ)ред
  • Port: рдЖрдкрдХреА рдореИрдкрд┐рдВрдЧ рдореЗрдВ рд╣реЛрд╕реНрдЯ рдХрд╛ рдкреЛрд░реНрдЯ (рдЖрдо рддреМрд░ рдкрд░ 5432)ред
  • Username: POSTGRES_USER рдХрд╛ рдорд╛рди (рдбрд┐рдлрд╝реЙрд▓реНрдЯ "postgres")ред
  • Password: POSTGRES_PASSWORD рдХрд╛ рдорд╛рдиред
  • Database: POSTGRES_DB рдХрд╛ рдорд╛рди (рдбрд┐рдлрд╝реЙрд▓реНрдЯ POSTGRES_USER рдЬреИрд╕рд╛)ред

рдЗрдирдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдпрджрд┐ рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣реЗ, рддреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВ:

docker exec -it postgres-db psql -U postgres

рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдЖрдкрдХреА рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ рдпрд╛ рдмрд╛рд╣рд░реА рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╣реИред

рдЕрдВрдд рдореЗрдВ, рдЖрдк рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╕рдорд╕реНрдпрд╛рдПрдБ рдЬрд╛рдБрдЪ рд╕рдХрддреЗ рд╣реИрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЖрдкрдХрд╛ рд╕рд┐рд╕реНрдЯрдо рдлрд╝рд╛рдпрд░рд╡реЙрд▓ PostgreSQL рдкреЛрд░реНрдЯ рдкрд░ рдХрдиреЗрдХреНрд╢рди рдмреНрд▓реЙрдХ рдХрд░ рд░рд╣рд╛ рд╣реЛ, рдЗрд╕рд▓рд┐рдП рддрд╕реНрджреАрдХ рдХрд░реЗрдВ:

# Linux
sudo iptables -L | grep 5432

# macOS
sudo pfctl -sr | grep 5432

рдЗрди рдЖрдо рдмрд╛рддреЛрдВ рдХреА рдЬрд╛рдБрдЪ рд╕реЗ рдЖрдк Docker рдореЗрдВ PostgreSQL рд╕реЗ рдЬреБрдбрд╝реА рдЕрдзрд┐рдХрддрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдФрд░ рд╕рдорд╛рдзрд╛рди рдХрд░ рдкрд╛рдПрдБрдЧреЗред рдпрджрд┐ рдлрд┐рд░ рднреА рдЕрдЯрдХреЗрдВ, рддреЛ PostgreSQL рдФрд░ Docker рдХрд╛ рдкреНрд░рд▓реЗрдЦрди рд╡ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдлрд╝реЛрд░рдо рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреНрд░рдмрд▓рд╢реВрдЯрд┐рдВрдЧ рдХреЗ рдЙрддреНрдХреГрд╖реНрдЯ рд╕рдВрд╕рд╛рдзрди рд╣реИрдВред

Docker рдореЗрдВ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рд╕рдорд╛рдкрди

рд▓реАрдЬрд┐рдПтАФDocker рдореЗрдВ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдВрддрд┐рдо рдЧрд╛рдЗрдб! рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрддреА рдХрдВрдЯреЗрдирд░ рд╕реЗрдЯрдЕрдк рд╕реЗ рд▓реЗрдХрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдХрдиреЗрдХреНрд╢рди, рдФрд░ рдореИрдиреЗрдЬрдореЗрдВрдЯ рддрдХтАФрд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдЬрд╝рд░реВрд░реА рд╣рд░ рдмрд╛рдд рдХрд╡рд░ рдХреА рд╣реИред┬а

рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╡рд┐рдХрд▓реНрдктАФрдЬреИрд╕реЗ рд▓реЛрдХрд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдпрд╛ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдкреНрд░реЛрд╡рд┐рдЬрд╝рдирд┐рдВрдЧтАФрд╡рд┐рдХрд╛рд╕ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╛ рддреЛ рдХрдорддрд░ рд╣реИрдВ рдпрд╛ рдорд╣рдБрдЧреЗред Docker рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рдкрд╛рдЯрддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рд▓реЛрдХрд▓ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ, рдЯреЗрд╕реНрдЯрд┐рдВрдЧ, рдпрд╛ рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдкреНрд░реЛрдбрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВтАФрдХрдВрдЯреЗрдирд░рд╛рдЗрдЬрд╝реНрдб PostgreSQL рд▓рдЪреАрд▓рд╛рдкрди рдФрд░ рдПрдХрд░реВрдкрддрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдорд╛рдд рджреЗрдирд╛ рдХрдард┐рди рд╣реИред

рдЕрдм рдЖрдк рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ Dockerized Postgres рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рддреИрдпрд╛рд░ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдФрд░ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ DataCamp рдХреЗ рдпреЗ рдХреЛрд░реНрд╕ рд╕реБрдЭрд╛рддрд╛ рд╣реВрдБ:

FAQs

рдореБрдЭреЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдмрдЬрд╛рдп Docker рдореЗрдВ PostgreSQL рдХреНрдпреЛрдВ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

Docker рдореЗрдВ PostgreSQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд╕рд╛рди рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╢реАрдиреЛрдВ рдкрд░ рдПрдХрд╕рдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг, рдФрд░ рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рд╕реЗ рдЕрд▓рдЧрд╛рд╡ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдмрд┐рдирд╛ рдЯрдХрд░рд╛рд╡ рдХреЗ PostgreSQL рдХреЗ рдХрдИ рд╡рд░реНрдЬрд╝рди рд╕рд╛рде рдЪрд▓рд╛рдиреЗ, рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб/рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ, рдФрд░ рд╡рд┐рдХрд╛рд╕ рд╡ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рддреЗрдЬрд╝ рд╕реЗрдЯрдЕрдк-рдЯрд┐рдпрд░рдбрд╛рдЙрди рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред Docker рдХрдВрдЯреЗрдирд░ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

Docker рдореЗрдВ рдЪрд▓ рд░рд╣реЗ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдореИрдВ рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реВрдБ?

рдЖрдк Docker рдореЗрдВ рдЪрд▓ рд░рд╣реЗ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ docker exec -it postgres-db psql -U myuser -d mydatabase рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдХрдВрдЯреЗрдирд░ рдХреЗ рднреАрддрд░ рд╕реАрдзреЗ psql рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЯреВрд▓ рдПрдХреНрд╕реЗрд╕ рдХрд░рдХреЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк pgAdmin, DBeaver, рдпрд╛ TablePlus рдЬреИрд╕реЗ GUI рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВтАФlocalhost (рдпрд╛ 127.0.0.1) рдкрд░ рдЙрд╕ рдкреЛрд░реНрдЯ (рдЖрдо рддреМрд░ рдкрд░ 5432) рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдореИрдк рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рд╣реБрдП рдпреВрдЬрд╝рд░рдиреЗрдо рд╡ рдкрд╛рд╕рд╡рд░реНрдб рджреЗрдВред

Docker рдХрдВрдЯреЗрдирд░ рд╣рдЯрд╛рдиреЗ рдкрд░ рдореЗрд░реЗ PostgreSQL рдбреЗрдЯрд╛ рдХрд╛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

рдЬрдм рдЖрдк рдХрд┐рд╕реА Docker рдХрдВрдЯреЗрдирд░ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдбреЗрдЯрд╛ рддрдм рддрдХ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдЖрдкрдиреЗ рд╡реЙрд▓реНрдпреВрдо рд╕реЗрдЯрдЕрдк рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реЛред рдирд╛рдорд┐рдд рд╡реЙрд▓реНрдпреВрдореНрд╕ (рдЬреИрд╕реЗ docker volume create postgres-data) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдбреЗрдЯрд╛ рдХрдВрдЯреЗрдирд░ рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдмрд╛рд╣рд░ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИред рдпрд╛рдиреА рдЖрдк PostgreSQL рдХрдВрдЯреЗрдирд░ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд░реЛрдХ, рд╣рдЯрд╛, рдпрд╛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВтАФрдмрд╕ рдирдпрд╛ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддреЗ рд╕рдордп рд╡рд╣реА рд╡реЙрд▓реНрдпреВрдо рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

Docker рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдореЗрд░реЗ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдмреИрдХрдЕрдк рдХреИрд╕реЗ рд▓реВрдБ?

Docker рдореЗрдВ рдЪрд▓ рд░рд╣реЗ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк pg_dump рдХрдорд╛рдВрдб рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: docker exec -t postgres-db pg_dump -U myuser mydatabase > backup.sqlред рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рд░реЛрд▓реНрд╕ рд╕рд╣рд┐рдд рдкреВрд░реНрдг рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП pg_dumpall рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЖрдк рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдХреНрд░реЛрди рдЬреЙрдмреНрд╕ рд╕реЗ рдЗрд╕реЗ рд╢реЗрдбреНрдпреВрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрдВрдкреНрд░реЗрд╢рди рд╡ рдкреБрд░рд╛рдиреЗ рдмреИрдХрдЕрдк рдШреБрдорд╛рдиреЗ рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

Dario Rade─Нi─З

рд▓реЗрдЦрдХ

Dario Rade─Нi─З

рдХреНрд░реЛрдПрд╢рд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╕реАрдирд┐рдпрд░ рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрдЯрд┐рд╕реНрдЯред 700 рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд╢рд┐рдд рд▓реЗрдЦреЛрдВ рдХреЗ рд╕рд╛рде рдЯреЙрдк рдЯреЗрдХ рд░рд╛рдЗрдЯрд░, рдЬрд┐рдирд╕реЗ 10M+ рд╡реНрдпреВрдЬрд╝ рдкреНрд░рд╛рдкреНрдд рд╣реБрдПред Machine Learning Automation with TPOT рдХреЗ рдкреБрд╕реНрддрдХ рд▓реЗрдЦрдХред

рд╡рд┐рд╖рдп